使用 ppx 和扩展点在 OCaml 中为 DSL 编写解析器

Writing a parser for a DSL in OCaml using ppx and extension point

最近OCaml官方github宣布Camlp4ppx rewriters and extension points取代(https://github.com/ocaml/camlp4):

Camlp4 was part of the official OCaml distribution until its version 4.01.0. Since then it has been replaced by a simpler system which is easier to maintain and to learn: ppx rewriters and extension points.

我一直在使用 Camlp4 为 DSL(与 OCaml 分离的语法)编写解析器。

那么,请问ppx rewriters工具是否可以做同样的事情?

感谢您花时间阅读我的问题!

没有。 PPX 专门用于扩展 OCaml 语言功能,保持其语法,可能使用属性和扩展点。它不提供像 CamlP4 这样的解析器生成器。如果您要构建与 OCaml 完全不同的语法,请坚持使用 P4。 PPX帮不了你

CamlP4 并未停产。它成为 OCaml 编译器的一个独立工具:https://github.com/ocaml/camlp4 你应该也可以使用 opam install camlp4.

安装它