#include <symbol.h>
Public Methods | |
SymbolTable (bool is_nested) | |
~SymbolTable () | |
void | mark_nodes (void) |
void | reset () |
T | insert (const string &name, T sym) |
T | lookup (const string &name) |
void | print (FILE *out) |
string | insert_unique (const string &root, T sym) |
void | enter_scope () |
void | exit_scope () |
Private Types | |
typedef map< string, T, less< string > > | scope |
typedef scope::iterator | scope_p |
typedef list< scope * > | table |
typedef table::iterator | table_p |
Private Methods | |
virtual void | shadow (T create, T shadowed)=0 |
virtual void | notify_exit_scope (T dead)=0 |
Private Attributes | |
bool | _is_nested |
table | _table |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|