From 0bd4d802383518cfbb43fa02375602abdfb6114f Mon Sep 17 00:00:00 2001 From: Jake Leahy Date: Sun, 17 Dec 2023 19:01:00 +1100 Subject: Allow `parseAll` to parse statements separated by semicolons (#23088) Fixes the second issue listed in #9918. Fixed by replacing the logic used in `parseAll` with just a continious loop to `complexOrSimpleStmt` like what the [normal parser does](https://github.com/nim-lang/Nim/blob/devel/compiler/passes.nim#L143-L146). `complexOrSimpleStmt` [guarantees progress](https://github.com/nim-lang/Nim/blob/devel/compiler/parser.nim#L2541) so we don't need to check progress ourselves. Also allows `nimpretty` to parse more valid Nim code such as ```nim proc foo(); # Would complain about indention here # ... proc foo() = # ... ``` --- tests/macros/ttryparseexpr.nim | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tests/macros/ttryparseexpr.nim') diff --git a/tests/macros/ttryparseexpr.nim b/tests/macros/ttryparseexpr.nim index fc0ee61d0..e6e9e9880 100644 --- a/tests/macros/ttryparseexpr.nim +++ b/tests/macros/ttryparseexpr.nim @@ -18,3 +18,7 @@ const c = test("\"") # bug #2504 echo a, " ", b + +static: + # Issue #9918 + discard parseStmt("echo(1+1);") -- cgit 1.4.1-2-gfad0