объединить camlp4 и camlp5 в строку -pp для ocamlopt? - PullRequest
3 голосов
/ 14 марта 2011

Я хочу объединить BOLT, SEXP и ocamlViz для большого проекта. Проблема в том, что SEXP и BOLT используют CamlP4, а ocamlviz использует camlp5. Но как мне объединить вызовы в одну цепочку для аргумента -pp ocamlc / ocamlopt?

Вот мой призыв к реальному проекту без ocamlviz: ocamlopt.opt -c -I + dynlink -I + болт -I + нити -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' \ '' -уровень 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 ]

1 голос
/ 29 марта 2011

Невозможно предварительно обработать исходный файл двумя разными препроцессорами одновременно по очевидным причинам, и использование одного за другим также невозможно, поскольку первый не распознает синтаксис, предназначенный для второго.Решением является либо использование разных синтаксисов в разных исходных файлах, либо порт ocamlviz для camlp4.

0 голосов
/ 26 марта 2011

Если вы передадите -printer OCaml в Camlp4, он выведет предварительно обработанный файл O'Caml в исходном формате. Затем вы можете снова проанализировать этот файл с помощью Camlp5 на следующем этапе.

...