1 package net.sourceforge.pmd.ast;
2
3 import java.util.Iterator;
4 import java.util.List;
5
6 public class DiscardableNodeCleaner {
7
8 private static final Class[] clazzes = new Class[]{
9 ASTEqualityExpression.class,
10 ASTAndExpression.class,
11 ASTInstanceOfExpression.class,
12 ASTUnaryExpression.class,
13 ASTShiftExpression.class,
14 ASTConditionalOrExpression.class,
15 ASTInclusiveOrExpression.class,
16 ASTExclusiveOrExpression.class,
17 ASTConditionalExpression.class,
18 ASTRelationalExpression.class,
19 ASTUnaryExpression.class,
20 ASTUnaryExpressionNotPlusMinus.class,
21 ASTPostfixExpression.class,
22 ASTMultiplicativeExpression.class,
23 ASTAdditiveExpression.class,
24 ASTConditionalAndExpression.class,
25 ASTModifiers.class
26 };
27
28 public void clean(ASTCompilationUnit root) {
29 for (int i = 0; i < clazzes.length; i++) {
30 List nodes = root.findChildrenOfType(clazzes[i]);
31 for (Iterator i1 = nodes.iterator(); i1.hasNext();) {
32 SimpleNode n = (SimpleNode) i1.next();
33 n.discardIfNecessary();
34 }
35 }
36 }
37
38 }