我正在爲實驗語言編寫解釋器。該語言的三個主要結構是定義,陳述和表達式。定義可以包含語句和表達式,語句可以包含定義和表達式,一種表達式可以包含語句。我用聯合類型來表示所有這些,所以我可以很容易地在它們上使用模式匹配。理想情況下,我想將這些代碼放在不同的文件中,但OMake抱怨循環依賴問題。據我所知,跨模塊的循環類型定義是不允許的。處理OCaml中的循環依賴關係
我知道的唯一的辦法來解決,這是一次定義所有三種類型:
type defn = ...
and stmt = ...
and expr = ...
看起來這需要所有的代碼類型是在同一個文件。有沒有辦法解決?你如何處理你的代碼中的循環定義?