问题标签 [camlp4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1519 浏览

ocaml - 将 OCaml AST 打印为 OCaml 代码

我有这段代码,其中包含一个camlp4 引用。

通过运行它之后camlp4of,它会产生这个:

我的问题是,是否有打印生成的 ocaml 代码?我应该使用什么camlp4of命令或选项来显示代码?我希望从上面的例子中看到的是:

那可能吗?原因是因为我想做一些调试,看看生成的 ocaml 代码是什么样子的。

0 投票
4 回答
871 浏览

functional-programming - `[< >]` 在 OCaml 中是什么意思?

我看过一些源代码

我能知道[< >]里面是什么吗?谷歌搜索这种迹象太难了。

0 投票
1 回答
489 浏览

stream - Ocaml 词法分析器/解析器规则

我在 ocaml 中编写了一个程序,给定一个像 1 + 2 这样的中缀表达式,输出前缀表示法:+ 1 2

我的问题是我没有找到一种方法来制定如下规则:所有值、运算符和括号应始终至少用一个空格分隔:1+1 将是错误的 1 + 1 ok。我不想使用 ocamlp4 语法。

这是代码:

另外,如果您对代码有一些提示,或者如果您发现一些 prog 风格的错误,那么我将很感激您让我知道。谢谢 !

0 投票
1 回答
561 浏览

ocaml - 在带有 ocamlbuild 的 Camlp4 中使用 OCaml 语法扩展

我在我的 camlp4 解析器中使用deriving-ocsigen语法扩展时遇到问题。我的解析器被称为pa_debug.ml

这是标签文件:

编译时使用

我收到以下错误:

错误发生在这段代码的第二行:

在代码中,我正在键入以在引用中使用派生语法。但似乎预处理器不理解引用中“<”和“>”比较运算符的存在。如果我Show.show<int>在另一个文件中使用不带引号的语法,它编译时不会出错。

我已经看到了解决问题的解决方案,-pp overrides the effect of -syntax但我不明白。有人可以向我解释一下或提出其他解决方法吗?

0 投票
2 回答
513 浏览

ocaml - camlp4 语法扩展,解析器错误

我创建了一个语法扩展,允许将类型定义为

能够直接从 json 文件构建记录值。语法扩展插入一个模块和必要的功能。到这里为止,没问题。语法扩展正是我想要的。

如果我想在我的代码中的其他地方使用“yjson”(即:函数参数),我开始遇到一些问题。

这是我尝试过的:

这是我使用“yjson”作为函数参数时得到的错误

我真的不明白这里发生了什么。似乎规则不匹配,那么为什么会出现解析错误?

0 投票
1 回答
350 浏览

ocaml - 我如何用 Pgocaml 编译一些东西

我正在尝试在我的应用程序中使用Pgocaml进行数据库交互。

这是我要编译的文件:

这就是我试图编译它的方式:

这是我得到的错误:

为什么我会收到此错误?

提前致谢!

0 投票
1 回答
679 浏览

ocaml - 代码注释中的预处理错误

使用以下代码编译代码时出现此错误corebuild

违规行是这样的:

这怎么可能?我认为camlp4应该忽略代码注释中的引号?

0 投票
0 回答
418 浏览

parsing - OCaml parser and structure of the grammar

I have been developing a parser for a tiny language whose syntax is the following

Here is the code that i have written in Ocaml camlp4

But unfortunately the parser doesn't parse strings like

becouse the rule for the WAIT construct expects a proc as the first argument.

How can i fix this?

0 投票
1 回答
63 浏览

ocaml - 安装旧的活动网络语言计划

有人可以帮我解释一下吗?我正在尝试安装 PLAN(活动网络的数据包语言)。从我在 Mac OS X 10.8.4 上的终端:

0 投票
1 回答
1137 浏览

ocaml - OCaml 的 -ppx 语法扩展的状态如何?

一年多前,Lexifi的Alain Frisch 提出了一个替代 camlp4 的建议,用于编写使用OCaml 4.00 中添加的 -ppx 标志的 sytnax 扩展。当时他提到还有一些工作要做(属性、引用等),但已经有点用了。OCaml 4.01 是否改进了对这种写作风格的语法扩展的支持?现在有人使用这种机制而不是camlp4,还是camlp4仍然是为OCaml编写语法扩展的推荐方法?