diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | src/ast.c | 2 | ||||
-rw-r--r-- | src/driver.c | 2 |
3 files changed, 4 insertions, 2 deletions
@@ -96,7 +96,7 @@ Control flow: Procedures: - `procedure <ident>(<var>, ... ; <var>, ... ) begin <stm> end` declaration, first argument list are value arguments (vars passed to procedure), second argument list are variable arguments (vars returned from procedure). -- `<ident>(<var>, ... ; <var>, ... )` call +- `<ident>(<aexpr>, ... ; <var>, ... )` call **Expression** @@ -246,4 +246,4 @@ void imp_ast_list_destroy(IMP_ASTNodeList *list) { imp_ast_destroy(list->node); imp_ast_list_destroy(list->next); free(list); -}
\ No newline at end of file +} diff --git a/src/driver.c b/src/driver.c index c43b899..d8cd143 100644 --- a/src/driver.c +++ b/src/driver.c @@ -20,6 +20,7 @@ int imp_driver_interpret_file (IMP_InterpreterContext *context, const char *path yyin = fopen(path, "r"); if (!yyin) return -1; yyrestart(yyin); + ast_root = NULL; if (yyparse()) { imp_ast_destroy(ast_root); fclose(yyin); @@ -37,6 +38,7 @@ int imp_driver_interpret_file (IMP_InterpreterContext *context, const char *path int imp_driver_interpret_str (IMP_InterpreterContext *context, const char *str) { YY_BUFFER_STATE buf = yy_scan_string(str); + ast_root = NULL; if (yyparse()) { imp_ast_destroy(ast_root); yy_delete_buffer(buf); |