2
是否有更简洁的方式将字符串映射到解析器组合器中的Enumeration值?解析器组合器的枚举值
object Mode extends Enumeration {
type Mode = Value
val View, Add, Modify, Delete = Value
}
import Mode._
object ModeParser extends JavaTokenParsers {
def mode: Parser[Mode] = ("^(" + Mode.values.mkString("|") + ")$").r ^^ {
Mode.withName(_)
}
}
一个reduceLeft的解决方案是什么,我试图进行实验,但找不到。谢谢,我会试试看! – warpedjavaguy
'literal(m.toString)'允许“Viewx”和“xView”成功解析。改变它使用'phrase(m.toString)'来修正它。 – warpedjavaguy
我假设你会将它用作ModeParser.parseAll(ModeParser.mode,Viewx),就像@senia的回答暗示 –