如何在 Android 中使用 scala 解析器获取 stackoverflowerror?我正在使用这段代码:
val parseEApply: Parser[EApply] =
("EApply" ~> "(" ~> parseExpression) ~ ("," ~> parseListExpression <~ ")") ^^ {
case e ~ l => EApply(e, l)
}
通过使用不同的括号重写它,我摆脱了错误。有人可以解释一下为什么吗?EApply 是一个可以包含其他表达式的表达式,以及一个表达式列表。
val parseEApply: Parser[EApply] =
"EApply(" ~> parseExpression ~ ("," ~> parseListExpression <~ ")") ^^ {
case e ~ l => EApply(e, l)
}
那么为什么在第一个而不是第二个中可能存在递归错误呢?