Scala Combinator Parser不使用空格

时间:2014-01-29 20:38:23

标签: scala parsing combinators

为什么这个scala组合子解析器的简单示例会失败?

def test: Parser[String] = "&lt; " ~> ident <~ " &gt;"

当我提供以下字符串时:

"&lt; a &gt;"

我收到此错误:

[1.8] failure: ` &gt;' expected but `&' found

&lt; a &gt;
       ^

为什么它在空间上绊倒?

1 个答案:

答案 0 :(得分:2)

您可能正在使用RegexParsers。在documentation中,您可以找到:

  

解析方法调用方法skipWhitespace(默认为true)   并且,如果为true,则在调用每个解析器之前跳过任何空格。

要改变这一点:

object MyParsers extends RegexParsers {
  override def skipWhitespace = false

  //your parsers...
}