I think it's finally time to re-write the Symbol Table implementation used in the compiler of my programming language written in C.

The current Symbol Table implementation is using global variables, mostly because it was convenient when I wrote it.

Also the nesting of the Symbol Tables is currently awkward. It works well during semantic analysis, but during code generation, some of that data is discarded, making it harder to give robust errors when something has gone wrong.