3

我想为一个大型项目结合 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/类型转换 pa_type_conv.cmo pa_sexp_conv.cmo' -o foo.cmx foo.ml

4

2 回答 2

1

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

于 2011-03-29T09:17:22.897 回答
0

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

于 2011-03-26T18:23:17.980 回答