2015-03-02 50 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)。