nts.interf.base
Interface IVarTable
- All Superinterfaces:
- IVisitable
public interface IVarTable
- extends IVisitable
A hierarchical variable table. There are three kinds of scopes:
the NTS (global) scope (for global variables), a subsystem scope (for local variables)
and a scope for a quantifier-prefixed sub-formula (for logical variables).
Each scope keeps a reference to its parent scope. Note that the TID (thread ID)
is assigned to the global scope.
For each declared variable x with either of
EModifier.NO
,EModifier.IN
,EModifier.OUT
modifier,
there are both unprimed x and primed x' entries in the symbol table.
For each declared variable x with either of
EModifier.PARAM
,EModifier.TID
,EModifier.LOGICAL
modifier,
there is only the unprimed x entry in the symbol table.
get
IVarTableEntry get(java.lang.String aKey)
- Returns:
- an entry for a given key
parent
IVarTable parent()
- Returns:
- variable table for the parent scope
scope
IScope scope()
- Returns:
- the scope to which this variable table belongs
visible
java.util.List<IVarTableEntry> visible()
- Returns:
- all entries across variable table hierarchy (both primed and unprimed)
visibleUnprimed
java.util.List<IVarTableEntry> visibleUnprimed()
- Returns:
- all unprimed entries across variable table hierarchy
innermost
java.util.List<IVarTableEntry> innermost()
- Returns:
- entries in the innermost scope (both primed and unprimed)
innermostUnprimed
java.util.List<IVarTableEntry> innermostUnprimed()
- Returns:
- unprimed entries in the innermost scope