2016-03-07 120 views
0

我正在使用GumTree將Java文件解析爲ITree,這是GumTree的數據結構,它代表AST。然後,我通過對它執行操作來修改ITree,它是GumTree對插入,更新(重命名等),刪除和移動的表示。然後我想解開最後修改後的ITree。換句話說,我正試圖漂亮地打印AST。我已經查看了ITree方法(core/src/gumtreediff/tree)並嘗試使用PrettyString,但是它返回的是字符串「15」,它是樹的頂部AST節點(編譯單元)的type, 。如何漂亮地打印GumTreeDiff ITree?

GitHub上的GumTree wiki沒有提到解析或漂亮打印。谷歌搜索沒有幫助,因爲我認爲GumTree太模糊了。想知道如果我應該「只」寫我自己的unparser。

我正在使用GumTree 2.0.0版本。

+0

目前正在實施unparser。我希望很快將這個功能添加到GumTree中。 – pillravi

回答

0

不知道這是你在找什麼,但有一個內置的方法

toTreeString() 

將返回樹的多層次的縮進版本。

+0

謝謝,但那不是我要找的。我查看了所有提供的API,並且我想要的不存在。我一直與主要的Gumtree開發人員聯繫,並且正在努力實現我需要的解析器功能。 – pillravi

+0

哦,我明白了。你正試圖將ITree變成一個看起來像人類可讀代碼的東西。你能用簡單的後序遍歷來完成嗎?我想這不是那麼簡單。好吧,祝你好運! – nullromo

+0

謝謝;我正在做一個遍歷,但是這不是那麼簡單。我必須重新添加所有終端字符,並且發現解析不明確。但到目前爲止,我的解決方案適用於很多情況 – pillravi