2016-06-14 5 views
9

Недавно было объявлено в OCaml официальном GitHub, что Camlp4 заменяется ppx rewriters and extension points (https://github.com/ocaml/camlp4):Дать парсер для DSL в OCaml с помощью ППК и расширения точки

Camlp4 был частью официального дистрибутива OCaml до его версия 4.01.0. С тех пор он был заменен более простой системой, которую легче поддерживать и изучать: ppx-перезаписывающие устройства и точки расширения.

Я использую Camlp4 для написания парсеров для DSL (отдельный синтаксис из OCaml).

Итак, я хотел бы спросить, может ли инструмент ppx rewriters сделать то же самое?

Спасибо, что нашли время, чтобы прочитать мой вопрос!

ответ

6

№ PPX специализируется на расширении функциональности OCaml, сохраняя свой синтаксис, возможно используя атрибуты и точки расширения. Он не обеспечивает генератор парсеров, как CamlP4. Если вы создаете синтаксис, отличный от OCaml, просто придерживайтесь P4. PPX вам не поможет.

CamlP4 не прекращается. Он стал независимым инструментом компилятора OCaml: https://github.com/ocaml/camlp4 Вы также можете установить его с помощью opam install camlp4.

+0

Спасибо за подробный ответ! Он очищает мои сомнения относительно Camlp4 и PPX! –