summaryrefslogtreecommitdiff
path: root/lexer.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-05-09 18:59:23 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-05-09 18:59:23 +0000
commite425895a315d65ff9ca1e2d7911c2fd21d49fe5e (patch)
tree7622287d299dbf3edad7679841a59ac47348f1f5 /lexer.c
parent0f547edbd76814f7a8299f5e1647cd0816276ba8 (diff)
Fix some nasty bugs with empty lines in dfns, and with stranding of ⍺ and ⍵.
Diffstat (limited to 'lexer.c')
-rw-r--r--lexer.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lexer.c b/lexer.c
index 4e9a4e4..9ce251a 100644
--- a/lexer.c
+++ b/lexer.c
@@ -72,8 +72,14 @@ lexline(InputStream *input, int toplevel)
case L'⋄':
if(stmt->ntoks == 0)
stmt = lexline(input, toplevel);
- else
+ else{
stmt->next = lexline(input, toplevel);
+ if(stmt->next && stmt->next->ntoks == 0){ // Prevent empty statements
+ freestatement(*(stmt->next));
+ free(stmt->next);
+ stmt->next = nil;
+ }
+ }
goto end;
case L'⍝':
while(peek != '\n' && !inputEOF(input))