我是OCaml的初學者,並試圖構建一個解析器,我想要一個列表將所有方法存儲在我的類中。這是我在.mly文件中的一部分。運算符:: OCaml
init_method_list:
{ [] }
| method_list method_decl { List.rev($1) }
;
method_list:
method_decl { [ $1 ] }
| method_list method_decl { $2 :: $1 }
;
任何人都可以解釋到底發生了什麼?特別是::操作。一直在搜索,但無法在文檔中找到運營商。
我得到這個列表可以是空的,或者我們做出正確的遞歸調用來填充它在類中的所有方法。 method_decl
只是查找代表方法的特定標記組合的匹配。
預先加上'$ 2'和'$ 1'? – cchantep
在Ocaml中,運算符'::'用於將''a'類型的元素連接到''list'類型的列表。 – alifirat
好的謝謝,它是否將元素預先列在列表的前面? @alifirat – novalain