package org.eclipse.cdt.ui.tests.reducer; import org.eclipse.cdt.core.dom.ast.ASTVisitor; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IProblemBinding; import org.eclipse.cdt.core.parser.util.CharArrayUtils; class ProblemFinder extends ASTVisitor { boolean foundProblem; public ProblemFinder() { shouldVisitNames = true; shouldVisitImplicitNames = true; } public boolean containsProblemBinding(IASTNode node) { foundProblem = false; node.accept(this); return foundProblem; } @Override public int visit(IASTName name) { if (!CharArrayUtils.startsWith(name.getSimpleID(), "__builtin_") && name.resolveBinding() instanceof IProblemBinding) { foundProblem = true; return PROCESS_ABORT; } return PROCESS_CONTINUE; } }