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.


Method Summary
 IVarTableEntry get(java.lang.String aKey)
           
 java.util.List<IVarTableEntry> innermost()
           
 java.util.List<IVarTableEntry> innermostUnprimed()
           
 IVarTable parent()
           
 IScope scope()
           
 java.util.List<IVarTableEntry> visible()
           
 java.util.List<IVarTableEntry> visibleUnprimed()
           
 
Methods inherited from interface nts.interf.base.IVisitable
accept
 

Method Detail

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