2012-09-13 31 views
1

我想創建一個非常簡單的翻譯器,將由該語言定義的一些源代碼翻譯爲程序集。我已經創建了生成AST的詞法分析器和分析器。我創建了一個遍歷樹的樹語法,並使用動態範圍跟蹤聲明變量等事物。ANTLR:如何在多個樹語法之間保存樹中的數據

問題是我不能簡單地創建一個使用一個樹語法的翻譯器,因爲我需要遍歷多遍的樹。第一遍是語義分析,第二遍是翻譯成彙編。每次通過將是不同的樹語法。

我的問題是,如何從樹中的語義分析過程中保留特定於節點的信息,以便我可以訪問它以獲取翻譯過程?我如何註釋樹?有沒有一種方法可以將信息分配給樹中的各個節點?我是否需要爲此創建自定義樹節點類?

回答