我有以下简单的 Scala 解析器:
object MainTest extends JavaTokenParsers {
def line: Parser[String] = "A"
def main(args: Array[String]): Unit = {
println(parseAll(line, """AB""".stripMargin))
}
}
我希望它处理一行(在本例中为“AB”)并在该行不等于“A”(或我给出的任何其他模式)时返回错误。
不幸的是,这失败了:
[1.2] failure: string matching regex `\z' expected but `B' found
AB
^
问题是即使未到达行尾,也匹配“A”。我想让所有'AB'行的解析器都失败,这样如果我将输入分成几行,整行要么匹配要么不匹配。
可能吗?