net.sourceforge.webcompmath.data
Class SymbolTable

java.lang.Object
  extended by net.sourceforge.webcompmath.data.SymbolTable
All Implemented Interfaces:
java.io.Serializable

public class SymbolTable
extends java.lang.Object
implements java.io.Serializable

A symbol table contains MathObjects, associating them with their names. To support scoping (for example), a symbol table can have a parent symbol table. If a symbol is not found in the table itself, the search procedes to its parent. MathObjects in the parent are hidden by MathObjects of the same name in a SymbolTable. Note that a NullPointerException error will occur if an attempt is made to add a MathObject with a null name to a SymbolTable. A MathObject should not be renamed while it is registered in a SymbolTable. Note that a Parser has an associated SymbolTable. I expect SymbolTables to be used only through Parsers.

See Also:
Serialized Form

Method Summary
 void add(MathObject sym)
          Adds sym to the SymbolTable, associating it with its name.
 void add(java.lang.String name, MathObject sym)
          Adds the given MathObject, sym, to the symbol table, associating it with the given name (which is probably the name of the symbol or that name transformed to lower case, but it doesn't have to be).
 MathObject get(java.lang.String name)
          Look up the object with the given name, if any.
 void remove(java.lang.String name)
          Remove the object with the given name from the symbol table, but NOT from the parent symbol table.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

get

public MathObject get(java.lang.String name)
Look up the object with the given name, if any. If not found, return null. (If the name is not found in the HashTable, symbols, the search is delegated to the parent.) If the name is null, then null is returned.

Parameters:
name - name of object to look up
Returns:
mathobject

add

public void add(MathObject sym)
Adds sym to the SymbolTable, associating it with its name.

Parameters:
sym - mathobject to add to table

add

public void add(java.lang.String name,
                MathObject sym)
Adds the given MathObject, sym, to the symbol table, associating it with the given name (which is probably the name of the symbol or that name transformed to lower case, but it doesn't have to be). If the same name is already in use in the HashTable then the new object replaces the current object. Note that if the name is defined in the parent symbol table, then the old object is hidden, not removed from the parent. If sym is null or if sym's name is null, than a NullPointerException is thrown.

Parameters:
name - name of mathobject to add
sym - mathobject to add

remove

public void remove(java.lang.String name)
Remove the object with the given name from the symbol table, but NOT from the parent symbol table. No error occurs if the name is not in the table or if name is null. If an object of the same name occurs in the parent, this routine will un-hide it.

Parameters:
name - name of mathobject to remove