2015-05-03 12 views
7

kullanırken Menhir'in dökümü/açıklaması dosyaları oluşturuldu Menhir'in --dump ve --explain seçeneklerini sağladığını ve çok fazla hata ayıklamaya yardımcı olduğunu keşfettim. Ama bu seçenekleri ocamlbuild altında nasıl etkinleştirebilirim ki Menhir her zaman derleme zamanında döküm dosyaları üretir mi? ocamlbuild

aşağıda gibi özel etiket menhir_dump taşıma myocamlbuild dosyayı yazmaya çalıştı:

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

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

     | _ ->() 
    ); 
    dispatch_default 
    ] 
) 

Ama derlediğinde, seçenekler alt komuta içine yerleştirilir ve derleme ocamlc aşamasında başarısız olur.

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

Herhangi bir öneriniz var mı?

cevap

3

Kendime cevap veriyorum.

Elbette bunun için yerleşik bir ocamlbuild seçeneği vardır. Aşağıdaki gibi explain'u _tags içine koyun.

true: use_menhir, explain 

Sen ocamlbuild -documentation kullanarak yerleşik seçenekleri arama olabilir.

+1

Bazen ocamlbuild'in dokümantasyonda bu kadar fakir olabileceğini merak ediyorum. Ayrıca, toplum myocamlbuild modüllerinin nasıl bir şey elde edemedikleri ... Bu, bu tür bir belgeyi yerleştirmek için en iyi yer olabilir. –