首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ocamlbuild生成Menhir的转储/解释文件

使用ocamlbuild生成Menhir的转储/解释文件
EN

Stack Overflow用户
提问于 2015-05-03 08:01:57
回答 1查看 651关注 0票数 7

我发现Menhir提供了转储和解释选项,这对调试非常有帮助。但是,如何在ocamlbuild下启用这些选项,以便Menhir总是在编译时生成转储文件?

我试图编写myocamlbuild文件,处理自定义标记menhir_dump,如下所示:

代码语言:javascript
复制
... snip ...
(* OASIS_STOP *)

Ocamlbuild_plugin.dispatch (
  MyOCamlbuildBase.dispatch_combine [
    (function
      | After_rules ->
          flag ["menhir_dump"] (S [A "--dump"; A "--explain"])

      | _ -> ()
    );
    dispatch_default
  ]
)

但是当它编译时,这些选项被插入到子命令中,并且编译在ocamlc阶段失败。

代码语言:javascript
复制
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...

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-27 05:07:20

我自己接。

当然,这有一个内置的ocamlbuild选项。只需将explain放在_tags中,如下所示。

代码语言:javascript
复制
true: use_menhir, explain

您可以使用ocamlbuild -documentation查找内置选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30011551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档