Package ptolemy.data.expr
Class NestedScope
- java.lang.Object
-
- ptolemy.data.expr.NestedScope
-
- All Implemented Interfaces:
ParserScope
public class NestedScope extends java.lang.Object implements ParserScope
An implementation of ParserScope that consists of a list of nested scopes. A lookup starts from the first scope in the list, and proceeds through the list until a mapping is found.- Since:
- Ptolemy II 2.1
- Version:
- $Id$
- Author:
- Xiaojun Liu
- Pt.AcceptedRating:
- Red (liuxj)
- Pt.ProposedRating:
- Red (liuxj)
-
-
Constructor Summary
Constructors Constructor Description NestedScope(java.util.List scopeList)
Construct a new scope that consists of the given list of scopes.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Token
get(java.lang.String name)
Look up and return the value with the specified name in the scope.Type
getType(java.lang.String name)
Look up and return the type of the value with the specified name in the scope.InequalityTerm
getTypeTerm(java.lang.String name)
Look up and return the type term for the specified name in the scope.java.util.Set
identifierSet()
Return the list of identifiers within the scope.
-
-
-
Method Detail
-
get
public Token get(java.lang.String name) throws IllegalActionException
Look up and return the value with the specified name in the scope. Start from the first scope in the list supplied to the constructor. If a value is found, return the value, otherwise continue to look up through the list. Return null if no mapping is defined in any scope in the list.- Specified by:
get
in interfaceParserScope
- Parameters:
name
- The name of the variable to be looked up.- Returns:
- The token associated with the given name in the scope.
- Throws:
IllegalActionException
- If a value in the scope exists with the given name, but cannot be evaluated.
-
getType
public Type getType(java.lang.String name) throws IllegalActionException
Look up and return the type of the value with the specified name in the scope. Return null if the name is not defined in this scope.- Specified by:
getType
in interfaceParserScope
- Parameters:
name
- The name of the variable to be looked up.- Returns:
- The token associated with the given name in the scope.
- Throws:
IllegalActionException
- If a value in the scope exists with the given name, but cannot be evaluated.
-
getTypeTerm
public InequalityTerm getTypeTerm(java.lang.String name) throws IllegalActionException
Look up and return the type term for the specified name in the scope. Return null if the name is not defined in this scope, or is a constant type.- Specified by:
getTypeTerm
in interfaceParserScope
- Parameters:
name
- The name of the variable to be looked up.- Returns:
- The InequalityTerm associated with the given name in the scope.
- Throws:
IllegalActionException
- If a value in the scope exists with the given name, but cannot be evaluated.
-
identifierSet
public java.util.Set identifierSet() throws IllegalActionException
Return the list of identifiers within the scope.- Specified by:
identifierSet
in interfaceParserScope
- Returns:
- The union of the identifierSets of the contained scopes.
- Throws:
IllegalActionException
- If the identifierSet() method of a contained scope throws it.
-
-