#ifndef PARSE #define PARSE /* keyword hashes */ #define VAR_H 2317739966u #define DEFINE_H 1788839250 typedef enum SymbolProvince { NO_PROVINCE, KEY_REF, LITERAL } prov_t; typedef struct Symbol { prov_t province; void* name; struct Symbol** args; int argCount; } sym_t; typedef struct SymbolSet { sym_t** symbols; int count; } symset_t; void symbol_add_arg(sym_t* symbol, sym_t* arg); void symset_add_symbol(symset_t* symbolSet, sym_t* symbol); symset_t* parse_symbols(char** str); sym_t* parse_symbol_final(char* str); void write_symbol_visual(sym_t* symbol, int offset); #endif