sirthias / parboiled2

A macro-based PEG parser generator for Scala 2.10+
Other
717 stars 86 forks source link

Example JSON parser failed on [] #70

Closed lihaoyi closed 10 years ago

lihaoyi commented 10 years ago

Input:

[]

Output:

Multiple main classes detected, select one to run:

 [1] org.parboiled2.examples.ABCParser
 [2] org.parboiled2.examples.Calculator1
 [3] org.parboiled2.examples.JsonParser
 [4] org.parboiled2.examples.Calculator2

Enter number: 3

[info] Running org.parboiled2.examples.JsonParser
[error] (run-main-0) scala.MatchError: ] (of class java.lang.Character)
scala.MatchError: ] (of class java.lang.Character)
    at org.parboiled2.examples.JsonParser.Value(JsonParser.scala:44)
    at org.parboiled2.examples.JsonParser.rec$10(JsonParser.scala:62)
    at org.parboiled2.examples.JsonParser.JsonArray(JsonParser.scala:62)
    at org.parboiled2.examples.JsonParser.Value(JsonParser.scala:48)
    at org.parboiled2.examples.JsonParser.Json(JsonParser.scala:31)
    at org.parboiled2.examples.JsonParser$$anonfun$1$$anonfun$apply$1.apply(JsonParser.scala:110)
    at org.parboiled2.examples.JsonParser$$anonfun$1$$anonfun$apply$1.apply(JsonParser.scala:110)
    at org.parboiled2.Parser.runRule$1(Parser.scala:164)
    at org.parboiled2.Parser.__run(Parser.scala:189)
    at org.parboiled2.examples.JsonParser$$anonfun$1.apply(JsonParser.scala:110)
    at org.parboiled2.examples.JsonParser$$anonfun$1.apply(JsonParser.scala:109)
    at scala.collection.immutable.Range.foreach(Range.scala:141)
    at org.parboiled2.examples.JsonParser$delayedInit$body.apply(JsonParser.scala:109)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
    at scala.App$class.main(App.scala:71)
    at org.parboiled2.examples.JsonParser$.main(JsonParser.scala:108)
    at org.parboiled2.examples.JsonParser.main(JsonParser.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
[trace] Stack trace suppressed: run last examples/compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
    at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last examples/compile:run for the full output.
[error] (examples/compile:run) Nonzero exit code: 1
[error] Total time: 160 s, completed Apr 15, 2014 11:31:37 PM

I haven't managed to puzzle through why it's blowing up, since it seems zeroOrMore should be able to handle the empty case just fine.

sirthias commented 10 years ago

Thanks for reporting!