0
で失敗します。Sbtのパーサは、私がこれまでパーサ似たものが含まれているのsbtプラグインを持っているのOutOfMemoryException
package sbtpin
import sbt.complete._
import DefaultParsers._
object InputParser {
private lazy val dotParser: Parser[Char] = '.'
private lazy val objectId = identifier(Letter, IDChar | dotParser)
private lazy val addCommand1 = "add" ~> Space.+ ~> objectId ~ (Space.+ ~> NotSpace.+).? map(p => AddCommand1(p._1, p._2))
private lazy val addCommand2 = "add -n" ~> Space.+ ~> objectId ~ (Space.+ ~> NotSpace.+).? map(p => AddCommand1(p._1, p._2))
private lazy val addCommand2 = "add -l" ~> Space.+ ~> objectId ~ (Space.+ ~> NotSpace.+).? map(p => AddCommand1(p._1, p._2))
lazy val parser: Parser[Command] = Space.* ~> (addCommand1 | addCommand2 | addCommand3)
}
このパーサーでテストを実行しようとすると、それは「java.lang.OutOfMemoryErrorをして失敗します。Javaのヒープスペース "
at scala.collection.mutable.StringBuilder.<init>(StringBuilder.scala:46)
at scala.collection.mutable.StringBuilder.<init>(StringBuilder.scala:51)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:286)
at scala.collection.AbstractTraversable.mkString(Traversable.scala:105)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:288)
at scala.collection.AbstractTraversable.mkString(Traversable.scala:105)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:290)
at scala.collection.AbstractTraversable.mkString(Traversable.scala:105)
at sbt.complete.ParserMain$$anon$3$$anonfun$string$1.apply(Parser.scala:313)
at sbt.complete.ParserMain$$anon$3$$anonfun$string$1.apply(Parser.scala:313)
at sbt.complete.Parser$Value.map(Parser.scala:161)
at sbt.complete.MapParser.resultEmpty$lzycompute(Parser.scala:704)
at sbt.complete.MapParser.resultEmpty(Parser.scala:704)
at sbt.complete.Repeat.derive(Parser.scala:834)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
at sbt.complete.HomParser.derive(Parser.scala:632)
コンパイルにも時間がかかりますが、予期しないことです。