summaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-02-15 19:36:22 -0800
committerKai Stevenson <kai@kaistevenson.com>2023-02-15 19:36:22 -0800
commit012a218e3f25f4712e6eb9a197e4473f0617eaed (patch)
tree4f90af84f5b2caed80e66e93d8dee4d429c76a7d /parse.c
parentf5985c65df468e49109febcad2a3937aea801b89 (diff)
added reading from files, fixed some bugs
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/parse.c b/parse.c
index d8a06d0..c174c23 100644
--- a/parse.c
+++ b/parse.c
@@ -63,7 +63,7 @@ symset_t* parse_symbols(char** str) {
/* TODO: float */
/* string */
if (isalpha(symbolName[0])) {
- symbolName = realloc(symbolName, i * sizeof(char));
+ //symbolName = realloc(symbolName, i * sizeof(char));
symbol->name = symbolName;
symbol->litType = STRING;
}
@@ -110,6 +110,7 @@ sym_t* parse_symbol_final(char* str) {
sym_t* root = malloc(sizeof(sym_t));
root->name = "root";
root->province = KEY_REF;
+ root->argCount = 0;
for (int s = 0; s < finalSymset->count; s++) {
symbol_add_arg(root, finalSymset->symbols[s]);
}
@@ -119,7 +120,7 @@ void write_symbol_visual(sym_t* symbol, int offset) {
for (int o = 0; o < offset; o++) {
printf(" ");
}
- printf("%s (%s)\n", (char*)(symbol->name), symbol->province == 1 ? "KEY" : "LITERAL");
+ printf("%s (%s)\n", (char*)(symbol->name), symbol->province == KEY_REF ? "KEY" : "LITERAL");
for (int i = 0; i < symbol->argCount; i++) {
write_symbol_visual(symbol->args[i], offset + 4);
}