implemented a basic symbol table (using uthash, which is a nice,
generic macro-based hash table solution I found)