Skip to content

Commit 27d7770

Browse files
committed
Merge pull request #20 from nimishgupta/master
SI-4824 Fix stack overflow bug when parsing long multiline comments
2 parents 636bf32 + f326847 commit 27d7770

File tree

2 files changed

+33
-3
lines changed

2 files changed

+33
-3
lines changed

Diff for: src/main/scala/scala/util/parsing/combinator/lexical/StdLexical.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ class StdLexical extends Lexical with StdTokens {
5959
)
6060

6161
protected def comment: Parser[Any] = (
62-
'*' ~ '/' ^^ { case _ => ' ' }
63-
| chrExcept(EofCh) ~ comment
64-
)
62+
rep (chrExcept (EofCh, '*')) ~ '*' ~ '/' ^^ { case _ => ' ' }
63+
| rep (chrExcept (EofCh, '*')) ~ '*' ~ comment ^^ { case _ => ' ' }
64+
)
6565

6666
/** The set of reserved identifiers: these will be returned as `Keyword`s. */
6767
val reserved = new mutable.HashSet[String]

Diff for: src/test/scala/scala/util/parsing/combinator/PackratParsersTest.scala

+30
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,36 @@ class PackratParsersTest {
3030
check(4, "8/2")
3131
check(37, "4*9-0/7+9-8*1")
3232
check(9, "(1+2)*3")
33+
check(3, """/* This is a
34+
long long long long long
35+
long long long long long
36+
long long long long long
37+
long long long long long
38+
long long long long long
39+
long long long long long
40+
long long long long long
41+
long long long long long
42+
long long long long long
43+
long long long long long
44+
long long long long long
45+
long long long long long
46+
long long long long long
47+
long long long long long
48+
long long long long long
49+
long long long long long
50+
long long long long long
51+
long long long long long
52+
long long long long long
53+
long long long long long
54+
long long long long long
55+
long long long long long
56+
long long long long long
57+
long long long long long
58+
long long long long long
59+
long long long long long
60+
long long long long long
61+
comment */
62+
1+2""")
3363
}
3464

3565
@Test

0 commit comments

Comments
 (0)