OCaml的解析器

时间:2015-03-02 20:06:22

标签: parsing types ocaml abstract-syntax-tree typechecking

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

  

要求预先填充标准库函数签名的初始打字环境

可能太多了

不是!查看文件typing/predef.ml(i)

对于stdlib,只使用与编译器相同的一个,除了使用来自Predef的值的pervasive,其余的是普通的OCaml代码,没有任何特殊情况(显然除了bootstraping)。