com.jogamp.gluegen.cgram

## Class CSymbolTable

- java.lang.Object
- - com.jogamp.gluegen.cgram.CSymbolTable

-     public class CSymbolTable
      extends Object

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CSymbolTable()`

  - ### Method Summary

    Methods
    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

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 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
      Overrides:
        `toString` in class `Object`