summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-12 18:46:55 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-12 18:46:55 +0000
commitd596e90554816e62d39fbaf68713810ed1eaf764 (patch)
treecf06e3beab322bd261248761a90cf93d4d520bd7 /main.c
parent85aa2ad424c68343ef09e5f6df243ad6499e47d5 (diff)
Add statements separated by ⋄
Diffstat (limited to 'main.c')
-rw-r--r--main.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/main.c b/main.c
index 378f840..784bc25 100644
--- a/main.c
+++ b/main.c
@@ -58,13 +58,18 @@ prompt(Rune *pr)
Datum *
evalline(Rune *line)
{
- int ntoks;
- Datum *tokens = lexline(line, &ntoks, globalsymtab);
- Datum *result = eval(tokens, &ntoks);
- if(ntoks == 1)
+ Statement *stmts = lexline(line, globalsymtab);
+ Datum *result = eval(stmts);
+ if(result)
return result;
else{
- free(tokens);
+ Statement *s = stmts;
+ while(s != nil){
+ Statement *tmp = s;
+ s = s->next;
+ free(tmp->toks);
+ free(tmp);
+ }
return nil;
}
} \ No newline at end of file