私は OCaml の初心者で、パーサーを作成しようとしています。クラスのすべてのメソッドを格納するリストが必要です。これは、.mly ファイルにある一部です。
init_method_list:
{ [] }
| method_list method_decl { List.rev($1) }
;
method_list:
method_decl { [ $1 ] }
| method_list method_decl { $2 :: $1 }
;
ここで何が起こっているのかを正確に説明できる人はいますか? 特に :: 操作。グーグルで検索しましたが、ドキュメントでオペレーターを見つけることができませんでした。
リストが空である可能性があること、またはクラス内のすべてのメソッドでリストを埋めるために適切な再帰呼び出しを行うことがわかりました。method_decl
メソッドを表す特定のトークンの組み合わせの一致を探すだけです。