blob: 27ce44431e20cc336cfd9f95fd15d2723172665f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#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 enum LiteralType {
NO_TYPE,
INT,
FLOAT,
STRING
} litType_t;
typedef struct Symbol {
prov_t province;
litType_t litType;
void* name;
struct Symbol** args;
int argCount;
} sym_t;
typedef struct SymbolSet {
sym_t** symbols;
int count;
} symset_t;
int symtoi(sym_t* symbol);
float symtof(sym_t* symbol);
char* symtos(sym_t* symbol);
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
|