Написание парсера для DSL в OCaml с использованием ppx и точки расширения

Недавно в официальном github OCaml было объявлено, что Camlp4 заменяется ppx rewriters and extension points ( https://github.com/ocaml/camlp4):

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам