Scala (kiama) でミニ Java コンパイラを作成しています。「tipe」と呼ばれるコード ブロックの 1 つにエラーが表示され、Scala の初歩的な知識だけでは解読できません。
これは私のコードです(やや不完全ですが、エラーが発生しているとは思いません)
lazy val tipe : PackratParser[Type] =
"bool"|
"int" |
"obj" |
tipe ~("->" ~> tipe) |
("(" ~> tipe <~")")
プログラムをコンパイルしようとすると、次のエラーが発生します。
タイプの不一致が見つかりました:
見つかった : SyntaxAnalysis.this.Parser[オブジェクト]
必須: SyntaxAnalysis.this.PackratParser[funjs.FunJSTree.type]
ヒント ~ ( "->" ~> ヒント ) |
| を指す矢印付き
私はScalaが初めてで、これは私にとってかなり複雑です。