小编Seu*_*ung的帖子

使用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 …
Run Code Online (Sandbox Code Playgroud)

ocaml ocamlbuild menhir

7
推荐指数
1
解决办法
524
查看次数

标签 统计

menhir ×1

ocaml ×1

ocamlbuild ×1