我使用--compile-errors
功能menhir
,我很滿意。我還使用ocamlbuild
來管理我的項目的編譯。由於該項目非常基礎,迄今爲止,構建基礎設施仍然微不足道。如何使用通過OCamlbuild生成Menhir錯誤消息?
我有一個_tags
文件和一個簡單的Makefile
在項目的根。我還沒有myocamlbuild.ml
文件。該_tags
文件只包含一個行:
<src/*>: package(ppx_deriving.std)
在Makefile中的相關部分是
all: src/ParsingErrors.ml
ocamlbuild $(OPTIONS) src/Main.native
src/ParsingErrors.ml: src/Handcrafted.messages src/Parser.mly
menhir --compile-errors src/Handcrafted.messages src/Parser.mly > src/ParsingErrors.ml
OPTIONS = -j 4 -use-menhir -use-ocamlfind -yaccflag --table -pkgs menhirLib,str,unix
OCamlbuild和巨石通常是很好的整合,但--compile-errors
似乎是一個相當新的功能。我的設置並不理想,因爲我不喜歡在我的源代碼目錄中生成自動生成的文件src/ParsingErrors.ml
,而不是生成目錄。向OCamlbuild解釋我希望Menhir生成此錯誤消息文件的最佳方式是什麼?更改我的文件的命名約定(例如,src/Parser.messages
和src/Parser.ml
)如果它簡化了事情,則不會打擾我。
注意:雖然我在其他項目中有myocamlbuild.ml
文件,但我從在線資源中複製它們。我發現他們很難破譯,我真的不知道如何寫這些東西。
除了'!Options.ocamlyacc'是空字符串,所以我不得不用'A「menhir」'替換它。你會猜測爲什麼? – Abdallah