【发布时间】:2014-02-05 19:18:24
【问题描述】:
exactIntegerLiteral 与 exactDoubleLiteral 一样成功解析,但是当它们在 ExectNumericLiteral 中组合在一起时,它们不适用于相同的输入 -1234.4。可能是什么原因?
def exactIntegerLiteral: Parser[IntegerLiteral] =
"[-+]?\\d+(?!\\.)".r ^^ { parsed => IntegerLiteral(parsed.toLong) }
def exactDoubleLiteral: Parser[DoubleLiteral] =
"[-+]?\\d+(\\.\\d+)?".r ^^ { parsed => DoubleLiteral(parsed.toDouble) }
def exactNumericLiteral: Parser[NumericLiteral] =
exactIntegerLiteral | exactDoubleLiteral
|||这个方法可以工作,但是我不明白这个行为。
【问题讨论】:
标签: scala parsing integer double parser-combinators