2015-03-02 52 views
1

任何人都可以推荐我一个开源的完整OCaml解析器吗?解析器为OCaml

本质上,我想为OCaml实现我自己的类型检查器。理想情况下,解析器是用OCaml编写的。我只是用它来获取输入程序的AST。 (要求预先填充标准库函数签名的初始打字环境可能太多了)

回答

4

使用compiler-lib与012am下的OCaml一起分发。它拥有创建自己的编译器所需的一切(甚至有some documentation)。 compiler-lib本质上是一个作为库提供的编译器。

否则,您可以使用camlp4来获取分析树,但是您需要从头开始重新实现其他所有功能。但在这种情况下,您不会受限于QPL。

+1

它实际上是有文件记录的[这里](https://bitbucket.org/camlspotter/compiler-libs-hack)。 – Drup 2015-03-02 20:35:37

+0

谢谢!我更新了这篇文章 – ivg 2015-03-02 20:46:21

+1

请注意,编译器库是在相当严格的Q公共许可证下分发的,而camlp4是LGPL。 – PatJ 2015-03-03 13:15:20

2

它可能是过分的要求最初定型环境预填充标准库函数签名

它不是!请参阅文件typing/predef.ml(i)

至于stdlib,除了使用Predef中的值的普遍使用的编译器,其余部分是正常的OCaml代码,没有任何特殊情况(显然除了bootstraping)。