From ca75036d4324da0526ba55da3b632ada2cd7e49c Mon Sep 17 00:00:00 2001 From: Peter Rice Date: Tue, 16 Sep 2025 03:31:59 -0400 Subject: [PATCH] handle comments before eof --- lox/scanner.janet | 2 +- test/test_scanner.janet | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lox/scanner.janet b/lox/scanner.janet index d13d959..7f54683 100644 --- a/lox/scanner.janet +++ b/lox/scanner.janet @@ -31,7 +31,7 @@ :number (<- (* :d+ (? (* "." :d+)))) :string (* `"` (+ (<- (to `"`)) (error (constant "unterminated string"))) `"`) :main (any (+ :s - (* "//" (to "\n")) + (* "//" (any (if-not "\n" 1))) ,;(seq [[str tok] :pairs double-operators] (token0 str tok)) ,;(seq [[str tok] :pairs single-operators] (token0 str tok)) ,(token1 :keyword-or-ident get-keyword) diff --git a/test/test_scanner.janet b/test/test_scanner.janet index 364cfd0..5407ebd 100644 --- a/test/test_scanner.janet +++ b/test/test_scanner.janet @@ -36,3 +36,19 @@ {:line 1 :token [:nil]} {:line 1 :token [:semicolon]} {:line 1 :token [:right-brace]}]) +(test (scan `var a = 1 + 2; + // commented + a = 4;`) + @[{:line 1 :token [:var]} + {:line 1 :token [:ident "a"]} + {:line 1 :token [:eq]} + {:line 1 :token [:num 1]} + {:line 1 :token [:plus]} + {:line 1 :token [:num 2]} + {:line 1 :token [:semicolon]} + {:line 3 :token [:ident "a"]} + {:line 3 :token [:eq]} + {:line 3 :token [:num 4]} + {:line 3 :token [:semicolon]}]) +(test (scan "// var a = 1 + 2;") + @[]) -- 2.51.2