0

我目前正在手动遍历树,而不是使用 ANTLR/CommonTree 进行树语法。我已经做了一些转换,我想将其中一些移到那棵树的父级。它也可能发生在根源上。

例子:

说这个 AST,我想将 BLOCK 内的所有 VARDECL 语句移动到树的根部。 在此处输入图像描述

这样做:我得到一个例外

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

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

4

1 回答 1

1

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

于 2013-07-18T07:54:41.443 回答