我正在做 Cay Horstmann 的组合解析器练习,我想知道在匹配语句中区分表示数字的字符串和表示变量的字符串的最佳方法:
def factor: Parser[ExprTree] = (wholeNumber | "(" ~ expr ~ ")" | ident) ^^ {
case a: wholeNumber => Number(a.toInt)
case a: String => Variable(a)
}
第二行,“case a: wholeNumber”是不合法的。我想过一个正则表达式,但还没有找到一种方法让它与“案例”一起工作。