我有以下fastparse解析器名为"变量":
val alphabet = 'A' to 'z'
val variable: Parser[String] = P(CharsWhileIn(alphabet).!)
我希望这个解析器在特定的单词上失败,例如" end", 同时仍然返回一个Parser [String]。
答案 0 :(得分:2)
val alphabet = 'A' to 'Z'
val variable: P[String] = P(!"end" ~ CharIn(alphabet).rep(min = 1)).!
这将成功:
println( variable.parse("ABCend") ) // Success(ABC,3)
但这不会:
println( variable.parse("endABC") ) // Failure(!("end"):1:4 ..."ABC")