The functions in this module implement a general purpose symbol table handling.
Generally a symbol table is a binding functionality that associates symbols with attributes. Symbols in this implementation is a zero terminated string, and the attribute is a void * pointer. This is a general approach that can be used to store and retrieve any kind of symbols.
The symbol table handling functions usually always return a void ** that can be modified to point to the actual structure storing the attributes of the symbol.
The internal structure of a symbol table is a hash table of PRIME elements (211). Each hash stores a binary table sorting the symbols.