6
我做礁HORSTMANN的组合符解析器练习,我想知道的是代表数字和代表在比赛声明变量字符串字符串来区分的最好方式:斯卡拉组合子解析器 - 数字字符串和变量字符串区分
def factor: Parser[ExprTree] = (wholeNumber | "(" ~ expr ~ ")" | ident) ^^ {
case a: wholeNumber => Number(a.toInt)
case a: String => Variable(a)
}
那里的第二行“case a:wholeNumber”不合法。我想过一个正则表达式,但还没有找到一种方法让它与“case”一起工作。
非常好!因为我得到了“错误:缺少扩展函数的参数类型”,所以必须将{Number(_。toInt)}更改为{x:String => Number(x)},然后它就像魅力一样工作。 仍然好奇,如果有一个案例类的方式来解决它虽然。 – 2008-11-03 07:15:53