这些解析有什么问题吗?
def role : Parser[Role] = ~> protocolID <~ "(" ~> roleName <~ ")" ~ "{" ~> statements <~ "}" ^^ {
它在第一个括号中返回错误:';'可以,但是找到了字符串文字。
谢谢
答案 0 :(得分:5)
您的代码是这样解析的。
~>.protocolID(<~) "("...
这显然没有任何意义。解析器在看到该字符串文字"("
后将退出工作。除非在第一个方法调用;
之后会有~>.protocolID(<~)
,否则在该位置不可能有字符串文字。这就是告诉你的。
您犯的错误是尝试使用中缀运算符~>
作为前缀运算符。