aboutsummaryrefslogtreecommitdiff
path: root/interpreter
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter')
-rw-r--r--interpreter/Makefile2
-rw-r--r--interpreter/eval.c8
2 files changed, 2 insertions, 8 deletions
diff --git a/interpreter/Makefile b/interpreter/Makefile
index c8bfeb7..5288c88 100644
--- a/interpreter/Makefile
+++ b/interpreter/Makefile
@@ -15,4 +15,4 @@ $(EXE): $(OBJ)
$(CC) -c -o $@ $< $(CFLAGS)
clean:
- $(RM) -v $(OBJ) $(EXE)
+ $(RM) $(OBJ) $(EXE)
diff --git a/interpreter/eval.c b/interpreter/eval.c
index fb07e92..8e9b04f 100644
--- a/interpreter/eval.c
+++ b/interpreter/eval.c
@@ -81,8 +81,6 @@ unsigned match_expr(fuspel* rules, expression* to_match, expression* expr,
switch (to_match->kind) {
case EXPR_NAME:
*repls = push_replacement(to_match->var1, expr, *repls);
- free_expression(expr);
- my_free(expr);
return 1;
case EXPR_INT:
matches = eq_expression(to_match, expr);
@@ -205,10 +203,6 @@ expression* eval(fuspel* rules, expression* expr) {
expression* result = my_calloc(1, sizeof(expression));
replacements** repls = my_calloc(1, sizeof(replacements*));
- printf("Evaluating: ");
- print_expression(expr);
- printf("\n");
-
switch (expr->kind) {
case EXPR_INT:
cpy_expression(result, expr);
@@ -221,7 +215,7 @@ expression* eval(fuspel* rules, expression* expr) {
expression* old_result = result;
cpy_expression(result, &_rules->rule.rhs);
replace_all(*repls, result);
- result = eval(rules, old_result);
+ result = eval(rules, result);
free_expression(old_result);
my_free(old_result);
free_replacements(*repls);