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