File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed
main/scala/scala/util/parsing/combinator
test/scala/scala/util/parsing/combinator Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -436,9 +436,9 @@ trait Parsers {
436
436
437
437
/** Returns a parser that repeatedly parses what this parser parses.
438
438
*
439
- * @return rep (this)
439
+ * @return rep1 (this)
440
440
*/
441
- def * = rep (this )
441
+ def * = rep1 (this )
442
442
443
443
/** Returns a parser that repeatedly parses what this parser parses,
444
444
* interleaved with the `sep` parser. The `sep` parser specifies how
@@ -884,7 +884,7 @@ trait Parsers {
884
884
if (in1.atEnd)
885
885
s
886
886
else
887
- lastNoSuccessVar.value filterNot { _.next.pos < in1.pos } getOrElse Failure (" end of input expected" , in1)
887
+ lastNoSuccessVar.value filterNot { _.next.pos < in1.pos } getOrElse Failure (" end of input expected" , in1)
888
888
case ns => lastNoSuccessVar.value.getOrElse(ns)
889
889
}
890
890
}
Original file line number Diff line number Diff line change @@ -55,4 +55,28 @@ class JavaTokenParsersTest {
55
55
parseFailure(" with space" , 6 )
56
56
}
57
57
58
+ @ Test
59
+ def repeatedlyParsesTest : Unit = {
60
+ object TestTokenParser extends JavaTokenParsers
61
+ import TestTokenParser ._
62
+ val p = ident ~ " (?i)AND" .r.*
63
+
64
+ val parseResult = parseAll(p, " start start" )
65
+ parseResult match {
66
+ case e @ Failure (message, next) =>
67
+ assertEquals(next.pos.column, 7 )
68
+ assert(message.endsWith(" string matching regex `(?i)AND' expected but `s' found" ))
69
+ case _ => sys.error(parseResult.toString)
70
+ }
71
+
72
+ val parseResult2 = parseAll(p, " start AND AND" )
73
+ parseResult2 match {
74
+ case Success (r, _) =>
75
+ assertEquals(" start" , r._1)
76
+ assertEquals(" AND AND" , r._2.mkString(" " ))
77
+ case _ => sys.error(parseResult.toString)
78
+ }
79
+ }
80
+
81
+
58
82
}
You can’t perform that action at this time.
0 commit comments