任何人都可以向我推荐一个开源的完整OCaml解析器吗?
基本上,我想为OCaml实现自己的类型检查器。理想情况下,解析器是用OCaml编写的。我只是用它来获取输入程序的AST。 (要求预先填充标准库函数签名的初始打字环境可能太多了)
答案 0 :(得分:4)
使用QPL license下与OCaml一起分发的compiler-lib
。它拥有创建自己的编译器所需的一切(甚至还有some documentation)。 compiler-lib
本质上是一个作为库提供的编译器。
否则,您可以使用camlp4获取分析树,但是您需要从头开始重新实现其他所有内容。但在这种情况下,您不受QPL的限制。
答案 1 :(得分:2)
要求预先填充标准库函数签名的初始打字环境
可能太多了
不是!查看文件typing/predef.ml(i)
。
对于stdlib,只使用与编译器相同的一个,除了使用来自Predef
的值的pervasive,其余的是普通的OCaml代码,没有任何特殊情况(显然除了bootstraping)。