将camlp4和camlp5组合在-pp字符串中用于ocamlopt?

时间:2011-03-14 14:34:27

标签: ocaml camlp4

我想将BOLT,SEXP和ocamlViz结合起来用于大型项目。问题是,SEXP和BOLT正在使用CamlP4而ocamlviz正在使用camlp5。但是我怎样才能将调用组合成一个链,用于ocamlc / ocamlopt的-pp参数?

这是我对没有ocamlviz的实际项目的要求: ocamlopt.opt -c -I + dynlink -I + bolt -I + threads -I + lablgtk2 -I + extlib -I + pcre -I + netsys -I + netstring -I + json-wheel -I + num -I + nums -I + sexplib -I + zip -I + xml-light -I + xmlrpc-light -I + equeue -I + netclient -g -annot -p -thread -pp'camlp4o / usr / lib / ocaml / bolt / bolt_pp.cmo -logger'\''foo.native'\'' - level DEBUG - -I / usr / lib / ocaml / sexplib -I / usr / lib / ocaml / type-conv pa_type_conv.cmo pa_sexp_conv.cmo' -o foo.cmx foo.ml

2 个答案:

答案 0 :(得分:1)

由于显而易见的原因,不可能同时由两个不同的预处理器预处理源文件,并且一个接一个地使用也是不可能的,因为第一个不能识别用于第二个的语法。解决方案是在不同的源文件中使用不同的语法或将端口ocamlviz用于camlp4。

答案 1 :(得分:0)

如果您将-printer OCaml传递给Camlp4,它将以源格式输出预处理的O'Caml文件。然后,您可以在另一个步骤中使用Camlp5再次解析此文件。