Class CSymbolTable

  • public class CSymbolTable
    extends Object
    • Constructor Detail

      • CSymbolTable

        public CSymbolTable()
    • Method Detail

      • pushScope

        public void pushScope​(String s)
        push a new scope onto the scope stack.
      • popScope

        public void popScope()
        pop the last scope off the scope stack.
      • currentScopeAsString

        public String currentScopeAsString()
        return the current scope as a string
      • addCurrentScopeToName

        public String addCurrentScopeToName​(String name)
        given a name for a type, append it with the current scope.
      • addScopeToName

        public String addScopeToName​(String scope,
                                     String name)
        given a name for a type, append it with the given scope. MBZ
      • removeOneLevelScope

        public String removeOneLevelScope​(String scopeName)
        remove one level of scope from name MBZ
      • add

        public TNode add​(String name,
                         TNode node)
        add a node to the table with it's key as the current scope and the name
      • lookupScopedName

        public TNode lookupScopedName​(String scopedName)
        lookup a fully scoped name in the symbol table
      • lookupNameInCurrentScope

        public TNode lookupNameInCurrentScope​(String name)
        lookup an unscoped name in the table by prepending the current scope. MBZ -- if not found, pop scopes and look again
      • toString

        public String toString()
        convert this table to a string
        toString in class Object