1

こんにちは、タイプである nano.ml と、paser および lexer ファイルの 3 つのファイルがあります。パーサーのルールを記述する方法がわかりません。ルールを記述しようとしましたが、引数を受け入れないというエラーが表示されます。
コンパイルしようとすると、これが表示されます

:File "nanoParse.mly", line 31: $1 refers to terminal `LET', which has no argument
Compiling (to byte code) OCAML module nanoLex.ml
ocamlc -dtypes -c nanoLex.ml -o nanoLex.cmo
File "nanoLex.mll", line 10, characters 32-37:
Error: The constructor LET expects 1 argument(s),
but is here applied to 0 argument(s)

そして、プログラムは次のようなことをすることを想定しています:

4

1 に答える 1

1

{Let($2, $3, $5)}の代わりに欲しいと思います{Let($1, $2, $3)}。ただし、これは調べる必要のあるコードがたくさんあります。小さな例から始めて、そこから作業を進めることができます。

于 2013-02-15T04:07:05.657 に答える