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 |
| ... | | | | |
+---------------+ +--------+ +--------+