public class CSymbolTable extends Object
Constructor and Description |
---|
CSymbolTable() |
Modifier and Type | Method and Description |
---|---|
TNode |
add(String name,
TNode node)
add a node to the table with it's key as
the current scope and the name
|
String |
addCurrentScopeToName(String name)
given a name for a type, append it with the
current scope.
|
String |
addScopeToName(String scope,
String name)
given a name for a type, append it with the
given scope.
|
String |
currentScopeAsString()
return the current scope as a string
|
TNode |
lookupNameInCurrentScope(String name)
lookup an unscoped name in the table by prepending
the current scope.
|
TNode |
lookupScopedName(String scopedName)
lookup a fully scoped name in the symbol table
|
void |
popScope()
pop the last scope off the scope stack.
|
void |
pushScope(String s)
push a new scope onto the scope stack.
|
String |
removeOneLevelScope(String scopeName)
remove one level of scope from name MBZ
|
String |
toString()
convert this table to a string
|
public void pushScope(String s)
public void popScope()
public String currentScopeAsString()
public String addCurrentScopeToName(String name)
public String addScopeToName(String scope, String name)
public String removeOneLevelScope(String scopeName)
public TNode add(String name, TNode node)
public TNode lookupScopedName(String scopedName)
public TNode lookupNameInCurrentScope(String name)