symbol table in compiler design example