0

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)
}

では、なぜ最初の再帰エラーが発生し、2 番目のエラーが発生しないのでしょうか?

4

1 に答える 1