为什么这个scala组合子解析器的简单示例会失败?
def test: Parser[String] = "< " ~> ident <~ " >"
当我提供以下字符串时:
"< a >"
我收到此错误:
[1.8] failure: ` >' expected but `&' found
< a >
^
为什么它在空间上绊倒?
答案 0 :(得分:2)
您可能正在使用RegexParsers
。在documentation中,您可以找到:
解析方法调用方法skipWhitespace(默认为true) 并且,如果为true,则在调用每个解析器之前跳过任何空格。
要改变这一点:
object MyParsers extends RegexParsers {
override def skipWhitespace = false
//your parsers...
}