org.erights.e.elang.scope
Class ScopeMapBase

java.lang.Object
  |
  +--org.erights.e.elang.scope.ScopeMap
        |
        +--org.erights.e.elang.scope.ScopeMapBase

class ScopeMapBase
extends ScopeMap

A single contour ScopeMap.

Author:
E. Dean Tribble, some mods by Mark S. Miller

Field Summary
private  ConstMap myBindings
           
 
Fields inherited from class org.erights.e.elang.scope.ScopeMap
EMPTY
 
Constructor Summary
(package private) ScopeMapBase(ConstMap bindings)
           
 
Method Summary
(package private)  void addNamesTo(FlexSet names)
          Adds all the names mapped by this ScopeMap to 'names'
 void assertShadowable(String name)
          Enabled: Throw an exception is the varName may not be shadowed because it is already defined in the current (i.e.
 boolean contains(String name)
          Enabled: Is 'varName' in scope?
 NounExpr getNoun(String name)
          Enabled: Gets the NounExpr which will retrieve the Slot/value of the variable named 'varName' from a corresponding EvalContext.
 ConstSet namesSet()
          Enabled: Return the set of all names mapped by this ScopeMap.
 
Methods inherited from class org.erights.e.elang.scope.ScopeMap
make, nested, with
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myBindings

private final ConstMap myBindings
Constructor Detail

ScopeMapBase

ScopeMapBase(ConstMap bindings)
Method Detail

getNoun

public NounExpr getNoun(String name)
Description copied from class: ScopeMap
Enabled: Gets the NounExpr which will retrieve the Slot/value of the variable named 'varName' from a corresponding EvalContext.

Specified by:
getNoun in class ScopeMap

contains

public boolean contains(String name)
Description copied from class: ScopeMap
Enabled: Is 'varName' in scope?

Specified by:
contains in class ScopeMap

namesSet

public ConstSet namesSet()
Description copied from class: ScopeMap
Enabled: Return the set of all names mapped by this ScopeMap.

Overrides:
namesSet in class ScopeMap

addNamesTo

void addNamesTo(FlexSet names)
Description copied from class: ScopeMap
Adds all the names mapped by this ScopeMap to 'names'

Specified by:
addNamesTo in class ScopeMap

assertShadowable

public void assertShadowable(String name)
Description copied from class: ScopeMap
Enabled: Throw an exception is the varName may not be shadowed because it is already defined in the current (i.e. innermost) contour.

If varName may not be shadowed because it is reserved, this is caught in org.erights.e.elang.evm.NounPattern rather than here.

Specified by:
assertShadowable in class ScopeMap


comments?