Scala解析错误';' 预期,但字符串文字发现

may*_*aya 2 scala

这些解析有什么问题?

def role : Parser[Role] = ~> protocolID <~ "(" ~> roleName <~ ")" ~ "{" ~>      statements <~ "}" ^^ {
Run Code Online (Sandbox Code Playgroud)

它在第一个括号中返回错误:';' 预期,但字符串文字发现.

谢谢,

Jas*_*r-M 5

您的代码将被解析为这样.

~>.protocolID(<~) "("...
Run Code Online (Sandbox Code Playgroud)

这显然没有任何意义.一旦看到字符串文字,解析器就会退出"(".除非你;在第一次方法调用之后有一个字符串文字,否则不可能在该位置有一个字符串文字~>.protocolID(<~).这就是它告诉你的.

您犯的错误是尝试使用中缀运算符~>作为前缀运算符.