2015-05-03 16 views
7

Ho scoperto che Menhir fornisce opzioni --dump e --explain e aiuta molto il debugging. Ma come posso abilitare queste opzioni in ocamlbuild in modo che Menhir generi sempre file di dump in fase di compilazione?Genera dump/spiega i file di Menhir quando si utilizza ocamlbuild

ho cercato di scrivere il file myocamlbuild gestione tag personalizzato menhir_dump come di seguito:

... snip ... 
(* OASIS_STOP *) 

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

     | _ ->() 
    ); 
    dispatch_default 
    ] 
) 

Ma quando si compila, le opzioni sono inseriti in sotto-comando e la compilazione non riesce durante ocamlc palco.

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... 

Qualche suggerimento?

risposta

3

Rispondo io stesso.

C'è, ovviamente, un'opzione ocamlbuild integrata per questo. Basta inserire explain in _tags come il seguente.

true: use_menhir, explain 

Si può occhiata opzioni built-in utilizzando ocamlbuild -documentation.

+1

a volte mi chiedo come ocamlbuild possa essere così povero di documentazione eppure così ricco di dettagli. Inoltre, come i moduli della comunità myocamlbuild non sono riusciti a essere una cosa ... Questo potrebbe essere il posto migliore per mettere questo tipo di documento –