From 983c721e83bb43d77f3a9bf091cea96c94b637e9 Mon Sep 17 00:00:00 2001 From: z7zmey Date: Wed, 11 Apr 2018 00:58:57 +0300 Subject: [PATCH] scanner: fix scanning empty inline comment --- scanner/scanner.go | 5 ++-- scanner/scanner.l | 7 +++--- scanner/scanner_test.go | 54 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 7 deletions(-) diff --git a/scanner/scanner.go b/scanner/scanner.go index 59b1847..fde9daf 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -8358,12 +8358,11 @@ yyrule127: // ([/][*])|([/][*][*]) if c == -1 { break // TODO: Unterminated comment starting line %d } - p := c - c = l.Next() - if rune(p) == '*' && rune(c) == '/' { + if l.Prev.Rune == '*' && l.Last.Rune == '/' { c = l.Next() break } + c = l.Next() } lval.Token(l.newToken(l.Token())) if is_doc_comment { diff --git a/scanner/scanner.l b/scanner/scanner.l index 2fa0d22..e3a105b 100644 --- a/scanner/scanner.l +++ b/scanner/scanner.l @@ -307,13 +307,12 @@ NEW_LINE (\r|\n|\r\n) break; // TODO: Unterminated comment starting line %d } - p := c - c = l.Next() - - if rune(p) == '*' && rune(c) == '/' { + if l.Prev.Rune == '*' && l.Last.Rune == '/' { c = l.Next() break; } + + c = l.Next() } lval.Token(l.newToken(l.Token())) diff --git a/scanner/scanner_test.go b/scanner/scanner_test.go index 8dbc2d2..12b1bbd 100644 --- a/scanner/scanner_test.go +++ b/scanner/scanner_test.go @@ -955,3 +955,57 @@ func TestCommentWithPhpEndTag(t *testing.T) { assertEqual(t, expected, actual) } + +func TestInlineComment(t *testing.T) { + src := `