aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/main.c b/src/main.c
index d41809e..4fddea9 100644
--- a/src/main.c
+++ b/src/main.c
@@ -5,20 +5,17 @@
int main() {
int ret = -1;
Interp interp;
- Parser parser;
Interp_init(&interp);
- Parser_init(&parser);
- parser.ctx = &interp;
- Parser_set_readline(&parser);
+ Parser_set_readline(interp.parser);
SExpRef sexp, res;
ParseResult parse_result;
while (1) {
- parse_result = parse_sexp(&parser);
+ parse_result = parse_sexp(interp.parser);
if (parse_result.errmsg != NULL) {
- if (Parser_peek(&parser) == EOF) goto end;
+ if (Parser_peek(interp.parser) == EOF) goto end;
fprintf(stderr, "Parsing error: %s", parse_result.errmsg);
- free((void*)parser.string);
- Parser_set_readline(&parser);
+ free((void*)interp.parser->string);
+ Parser_set_readline(interp.parser);
continue;
}
@@ -36,7 +33,6 @@ int main() {
lisp_print(&interp, res, stdout);
}
end:
- Parser_free(&parser);
Interp_free(&interp);
return 0;
}