From f91a5f5c9a5426ced951c373ad5613db0b55013d Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Sat, 22 Jan 2022 17:35:48 +0000 Subject: Fix lexing of nested dfn's --- lexer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lexer.c') diff --git a/lexer.c b/lexer.c index 303951d..3be2359 100644 --- a/lexer.c +++ b/lexer.c @@ -45,10 +45,15 @@ lexline(Rune *line, int toplevel) stmt->guard = lexline(buf, toplevel); stmt->ntoks--; }else if(line[offset] == '{'){ + int unclosed = 1; Rune buf[MAX_LINE_LENGTH]; Rune *p = buf; offset++; - while(line[offset] != '}' && offset < len){ + while((line[offset] != '}' || unclosed > 1) && offset < len){ + if(line[offset] == '{') + unclosed++; + else if(line[offset] == '}') + unclosed--; *p = line[offset]; p++; offset++; -- cgit v1.2.3