AST_*: the AST node type.
SYMBOL_*: the symbol type in the symbol table (identifier, integer literal, real literal, character literal, string literal)ID_*: the "nature" of the identifier (variable, vector, function)TP_*: the data type of the identifier (byte, short, long, float, double)
struct hashmap
size: how many bucketsused: how many itemsload_factor: maximum used/size ratio before resizingvalue_size: size of the value stored in itemsbuckets: array of pointers to items
+---------------+
| buckets | +--------+ +--------+
+---------------+ zoom | item | | item |
| item_address +-----------> +--------+ +---> +--------+
| NULL | | ... | | | ... |
| item_address | | | | | |
| item_address | | | | | |
| NULL | | next +------+ | NULL |
| ... | | | | |
+---------------+ +--------+ +--------+