Seu*_*ung 7 ocaml ocamlbuild menhir
我发现Menhir提供了--dump和--explain选项,它有助于调试很多.但是如何在ocamlbuild下启用这些选项,以便Menhir始终在编译时生成转储文件?
我试着编写处理自定义标签的myocamlbuild文件menhir_dump,如下所示:
... snip ...
(* OASIS_STOP *)
Ocamlbuild_plugin.dispatch (
MyOCamlbuildBase.dispatch_combine [
(function
| After_rules ->
flag ["menhir_dump"] (S [A "--dump"; A "--explain"])
| _ -> ()
);
dispatch_default
]
)
Run Code Online (Sandbox Code Playgroud)
但是当它编译时,选项被插入到子命令中,并且编译在ocamlc阶段期间失败.
menhir --dump --explain --raw-depend --ocamldep 'ocamlfind ocamldep -modules' src/parser.mly > src/parser.mly.depends
menhir --ocamlc 'ocamlfind ocamlc -g -annot -bin-annot --dump --explain -I src -package cmdliner -package menhirLib -I src' --dump --explain --infer src/parser.mly
+ menhir --ocamlc 'ocamlfind ocamlc -g -annot -bin-annot --dump --explain -I src -package cmdliner -package menhirLib -I src' --dump --explain --infer src/parser.mly
^^^^^^^^^^^^^^^^
ocamlc: unknown option '--dump'.
...snip...
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我自己回答。
当然,有一个内置的 ocamlbuild 选项可以实现此目的。只需像下面这样explain输入即可。_tags
true: use_menhir, explain
Run Code Online (Sandbox Code Playgroud)
您可以使用 查找内置选项ocamlbuild -documentation。
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |