- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有来自 Alain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extensions making use of the -ppx flag 的提议在 OCaml 4.00 中添加。当时他提到还有一些工作要做(属性,引用等),但它已经有点可用了。 OCaml 4.01 是否改进了对这种编写语法扩展风格的支持?现在有没有人使用这种机制而不是camlp4 或者camlp4 仍然是为OCaml 编写语法扩展的推荐方式?
最佳答案
关于“(属性、引用等)”的工作由 Alain 以 OCaml 编译器源代码分支的形式完成,名为扩展点。公众广泛讨论了该分支的进展wg-camlp4邮件列表,但未在 4.01 中集成。自4.01发布以来,它已经集成在trunk(编译器的引用开发分支)中,因此它应该适用于4.02(注意目前主要版本倾向于每年发布)。
Alain 在 trunk/experimental/frisch/extension_points.txt 中维护了一种扩展点的文档形式。 .它显然没有涵盖 Camlp4 的所有用例,但仍然涵盖其中的很大一部分。您是否愿意使用它是个人决定; promise 是稍微笨拙的语法使您更容易部署和与工具和其他扩展的互操作性。
截至 4.00 或 4.01,-ppx
不适用于语法扩展,您只能处理(并且可能过滤/转换)语法上有效的 OCaml 代码。在技术上可以颠覆现有的 OCaml 语法来添加新的含义,但我建议不要这样做。如果您想将其用于语法扩展,您应该等待 4.02。
关于ocaml - OCaml 的 -ppx 语法扩展的状态如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19307750/
在许多使用 ReasonML 的项目中,缩写词 PPX 经常被使用,但很少解释。 什么是 PPX? 为什么 ReasonML 需要它们? 最佳答案 PPX(预处理器扩展)是一种抽象语法树 (AST)
在许多使用 ReasonML 的项目中,缩写词 PPX 经常被使用,但很少解释。 什么是 PPX? 为什么 ReasonML 需要它们? 最佳答案 PPX(预处理器扩展)是一种抽象语法树 (AST)
我需要生成一个与我传递的类型不同的值。这是我第一次写类似 ocaml 的东西,例如,在熟悉的 me haskell 中我会使用 Data.Generics。我是如何理解我需要使用装饰器和 ppx 的。
我正在编写我的第一个 ppx 扩展。这个想法是支持多态 print功能,类似于show在 Haskell 中。 (我知道还有其他更强大的解决方案,但我希望了解更多有关其工作原理的信息。) 我采用的方法
我正在编写 PPX 重写器来简化 Lenses 的定义.让我为普通读者记忆一下镜头是什么。 关于镜头 与记录字段相关联的镜头是允许提取记录并对其进行更新的一对函数。这是一个例子: module Len
有来自 Alain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extension
我如何推导 to_string使用带有 jbuilder 的 ppx 的数据类型的方法? 例如,我正在尝试使用 @@deriving show 导出 show_*数据类型的方法。我有一个简单的 mai
我正在将我的应用程序从 OCaml 4.02.3 移植到 4.03.0。 假设您在 lexer.ml 中有以下内容: type t = T [@@deriving sexp] let () = s
我正在尝试使用 ppx 派生在 OCaml 中漂亮地打印包含哈希表(使用基础标准库)的自定义记录类型,但我需要实现 Hashtbl.pp 才能使其工作。 我试过在网上查看例子,我发现最好的例子是 ht
安装后npm和 node , 用 js_of_ocaml 编译 OCaml 文件给出了错误,因此我做了 opam switch reinstall system : :testweb $ opam s
我是一名优秀的程序员,十分优秀!