summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/.ast.h.swpbin12288 -> 0 bytes
-rw-r--r--src/parser.c2
-rw-r--r--src/visitor.c10
3 files changed, 11 insertions, 1 deletions
diff --git a/src/include/.ast.h.swp b/src/include/.ast.h.swp
deleted file mode 100644
index 355bb9f..0000000
--- a/src/include/.ast.h.swp
+++ /dev/null
Binary files differ
diff --git a/src/parser.c b/src/parser.c
index 92e9ccf..7f174a5 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -212,6 +212,8 @@ ast_t *parse_all(parser_t *parser) {
int i = 0;
while (t != NULL) {
cur = parse_expr(parser);
+ if (cur == NULL)
+ continue;
i++;
asts = realloc(asts, i * sizeof(ast_t *));
asts[i - 1] = cur;
diff --git a/src/visitor.c b/src/visitor.c
index 6eb29a2..1e14c2e 100644
--- a/src/visitor.c
+++ b/src/visitor.c
@@ -64,6 +64,14 @@ ast_t *eval_expr(visitor_t *v, ast_t *e) {
}
}
-ast_t *eval(visitor_t *v) {}
+ast_t *eval(visitor_t *v) {
+ ast_t *cur;
+ ast_t *root;
+ ast_t **eval_nodes;
+ int j = 0;
+ for (int i = 0; i < v->root->root_size; i++) {
+ cur = eval_expr(v, v->root->subnodes[i]);
+ }
+}
void eval_error(visitor_t *v, ast_t *e) { exit(1); }