aboutsummaryrefslogtreecommitdiff
path: root/interpreter/fuspelc.c
diff options
context:
space:
mode:
authorCamil Staps2016-08-26 12:21:10 +0200
committerCamil Staps2016-08-26 12:21:10 +0200
commitf899f1b9d4ccd792dfc92c840e7e3d355cf858fe (patch)
tree8e09c474fc775112f04fad3bd91f7d409c9ae32f /interpreter/fuspelc.c
parentAdded code construct to grammar (diff)
Added eval_main
Diffstat (limited to 'interpreter/fuspelc.c')
-rw-r--r--interpreter/fuspelc.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/interpreter/fuspelc.c b/interpreter/fuspelc.c
index 4450486..c885e06 100644
--- a/interpreter/fuspelc.c
+++ b/interpreter/fuspelc.c
@@ -10,7 +10,7 @@
int main(void) {
token_list* tokens;
fuspel* pgm;
- expression to_eval, *evaled;
+ expression* result;
tokens = NULL;
@@ -32,7 +32,7 @@ int main(void) {
pgm = parse(tokens);
free_token_list(tokens);
- free(tokens);
+ my_free(tokens);
if (!pgm) {
fprintf(stderr, "Couldn't parse program.");
@@ -43,22 +43,17 @@ int main(void) {
print_fuspel(pgm);
printf("\n\n");
- to_eval.kind = EXPR_NAME;
- to_eval.var1 = my_calloc(1, 5);
- strcpy(to_eval.var1, "main");
-
- evaled = eval(pgm, &to_eval);
- free_expression(&to_eval);
- if (evaled) {
- print_expression(evaled);
+ result = eval_main(pgm);
+ if (result) {
+ print_expression(result);
printf("\n");
- free_expression(evaled);
- free(evaled);
+ free_expression(result);
+ my_free(result);
}
free_fuspel(pgm);
- free(pgm);
+ my_free(pgm);
return 0;
}