summaryrefslogtreecommitdiff
path: root/parse.h
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-02-15 15:53:33 -0800
committerKai Stevenson <kai@kaistevenson.com>2023-02-15 15:53:33 -0800
commitf5985c65df468e49109febcad2a3937aea801b89 (patch)
tree6c3d9bd1074c972f013f628d72a91374b8d98f5a /parse.h
parent7e696a40e51aa35b003aa9c3fc72139b34cddc71 (diff)
types. eq() internal function
Diffstat (limited to 'parse.h')
-rw-r--r--parse.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/parse.h b/parse.h
index 44d1c0e..27ce444 100644
--- a/parse.h
+++ b/parse.h
@@ -10,8 +10,15 @@ typedef enum SymbolProvince {
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;
@@ -20,6 +27,10 @@ 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);