将子树添加到主树?

时间:2013-07-17 11:54:21

标签: tree antlr antlr3 abstract-syntax-tree

我目前正在手动走树,而不是使用ANTLR / CommonTree进行树语法。我做了一些转换,我想将其中一些转移到该树的父级。它也可能是根源。

示例:

说这个AST,我想将BLOCK中的所有VARDECL语句移动到树的根目录。 enter image description here

这样做:我得到一个例外

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.util.ArrayList$Itr.next(Unknown Source)

知道如何解决这个问题?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这听起来像是一个Java问题。在枚举它时,您似乎正在操作ArrayList(插入/删除)。如果要删除节点,请先在单独的列表中收集候选项。然后迭代该候选列表并从原始列表中删除任何候选者。