在 ocamlopt 的 -pp 字符串中组合 camlp4 和 camlp5?

发布于 2024-10-21 21:00:51 字数 604 浏览 6 评论 0原文

我想将 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

I want to combine BOLT, SEXP and ocamlViz for a large project. The problem is, that SEXP and BOLT are using CamlP4 and ocamlviz is using camlp5. But how could I combine the calls to one chain for the -pp argument of ocamlc/ocamlopt?

Here is my call for actual project without 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

随波逐流 2024-10-28 21:00:51

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

It is impossible to preprocess source file by two different preprocessors simultaneously for obvious reasons, and using one after another is also impossible because the first one will not recognize the syntax intended for the second one. The solution is either to use different syntaxes in different source files or port ocamlviz to camlp4.

清风夜微凉 2024-10-28 21:00:51

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

If you pass -printer OCaml to Camlp4, it will output the pre-processed O'Caml file in source format. You can then parse this file again with Camlp5 in another step.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文