scalaのパーサーコンビネーターのorでハマった
import scala.util.parsing.combinator._ object Main extends App with RegexParsers { def aor = a | aa def a = "a" def aa = "aa" println(parseAll(aor, "a")) println(parseAll(aor, "aa")) }
こんな感じのを書くと・・・
[1.2] parsed: a [1.2] failure: end of input expected aa ^
失敗する。
def aor = aa | a
こうか、
def aor = a ||| aa
こう書くと
[1.2] parsed: a [1.3] parsed: aa
成功する。
Scala 2.12.0
"scala-parser-combinators" % "1.0.4"