edu.mit.ai.psg.jevaES
Interface IEnv

All Known Implementing Classes:
EnvBase, EnvLocalStore, EnvEnd

public abstract interface IEnv

IEnv: Interface to objects in which names can be looked up. Environments are implemented as a chain, so each can pass the request on to the next if the queryName is not found.

Author:
CarlManning, caroma@ai.mit.edu
Copyright (c) 1997, 1998, 1999 Massachusetts Institute of Technology

Method Summary
 IEnv getNext()
          get next env in chain; used by lookup methods
 int getOptionBits()
          get option bits
 Class lookupClass(String queryName)
          find class with this simple name (fully qualified class names are found from package; nested class names found from parent).
 IPackage lookupEnclosingPackage()
          return enclosing package
 IStatementNode lookupLabel(String queryName, boolean isForContinue)
          if label found, return node of statement it labels; stops at method or initializer boundary.
 IStore lookupLocal(String queryName)
          lookup restricted to local variables and parameters, used for checking if a local variable name is already in use.
 IPackage lookupPackage(String rootPackageName)
          find root package with this name; sub-packages found from parent
 Class lookupReturnType()
          return type of enclosing method, or void.class if in a constructor, or null if in a static initializer
 Class[] lookupThrows()
          find checked exceptions declared in throws clause of enclosing method or constructor, or null if not in a method or constructor
 

Method Detail

lookupLocal

public IStore lookupLocal(String queryName)
lookup restricted to local variables and parameters, used for checking if a local variable name is already in use. Local scope may be a method, constructor, field initializer, static initializer, object initializer. [JavaLangSpec1.0sec14.3.2]

lookupLabel

public IStatementNode lookupLabel(String queryName,
                                  boolean isForContinue)
if label found, return node of statement it labels; stops at method or initializer boundary. If label is empty (""), then returns first for, do, while, or switch statement. If isForContinue, then skip unlabeled switch statements.

lookupClass

public Class lookupClass(String queryName)
find class with this simple name (fully qualified class names are found from package; nested class names found from parent).
Throws:
IllegalStateException - if duplicate names discovered.

lookupPackage

public IPackage lookupPackage(String rootPackageName)
find root package with this name; sub-packages found from parent

lookupReturnType

public Class lookupReturnType()
return type of enclosing method, or void.class if in a constructor, or null if in a static initializer

lookupThrows

public Class[] lookupThrows()
find checked exceptions declared in throws clause of enclosing method or constructor, or null if not in a method or constructor

lookupEnclosingPackage

public IPackage lookupEnclosingPackage()
return enclosing package

getOptionBits

public int getOptionBits()
get option bits

getNext

public IEnv getNext()
get next env in chain; used by lookup methods

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-bugs@ai.mit.edu