2016-03-07 79 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