2015-05-03 3 views
7

Я обнаружил, что Menhir предоставляет опции --dump и --explain, и это помогает отлаживать много. Но как включить эти параметры в ocamlbuild, чтобы Menhir всегда генерировал файлы дампа во время компиляции?Создайте файлы дампа/объяснения Menhir при использовании ocamlbuild

Я попытался написать 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 
    ] 
) 

Но при компиляции, параметры вставляются в подкомандой и компиляция терпит неудачу во 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... 

Любые предложения?

ответ

3

Я отвечаю на него сам.

Для этого, конечно, есть встроенная опция ocamlbuild. Просто положите explain в _tags, как показано ниже.

true: use_menhir, explain 

Вы можете LookUp встроенные возможности использования ocamlbuild -documentation.

+1

Иногда мне интересно, как ocamlbuild может быть настолько плохой в документации, но настолько богат деталями. Кроме того, как модули сообщества myocamlbuild не достигли цели ... Это может быть лучшее место для размещения такого документа –