diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/.ast.h.swp (renamed from src/include/.visitor.h.swp) | bin | 12288 -> 12288 bytes | |||
-rw-r--r-- | src/include/visitor.h | 6 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/include/.visitor.h.swp b/src/include/.ast.h.swp Binary files differindex febe477..c3e8ba3 100644 --- a/src/include/.visitor.h.swp +++ b/src/include/.ast.h.swp diff --git a/src/include/visitor.h b/src/include/visitor.h index 6af052b..54f43f0 100644 --- a/src/include/visitor.h +++ b/src/include/visitor.h @@ -2,20 +2,24 @@ #define VISITOR_H #include "./ast.h" #include "./hash_table.h" +#include "./parser.h" #include "./stack.h" typedef struct { hash_table_t *symbol_table; + hash_table_t *eval_table; stack_t *stack_frame; ast_t *root; } visitor_t; void eval_error(visitor_t *v, ast_t *e); -visitor_t *init_visitor(ast_t *root); +visitor_t *init_visitor(parser_t *p); bool is_self_evaluating(ast_t *e); +bool is_built_in(ast_t *e); + ast_t *eval_symbol(visitor_t *v, ast_t *e); ast_t *eval_list(visitor_t *v, ast_t *e); |