diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-12 18:46:55 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-12 18:46:55 +0000 |
commit | d596e90554816e62d39fbaf68713810ed1eaf764 (patch) | |
tree | cf06e3beab322bd261248761a90cf93d4d520bd7 /main.c | |
parent | 85aa2ad424c68343ef09e5f6df243ad6499e47d5 (diff) |
Add statements separated by ⋄
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -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 |