1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 01:15:29 +02:00

Visitor interface

This commit is contained in:
Andrew Niefer 2005-02-23 00:36:52 +00:00
parent 24a7dbbeb8
commit f35f1fc070
19 changed files with 470 additions and 370 deletions

View file

@ -372,7 +372,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 13);
ICPPNamespace A = (ICPPNamespace) collector.getName(0).resolveBinding();
@ -402,7 +402,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 6);
IVariable vA = (IVariable) collector.getName(0).resolveBinding();
@ -426,7 +426,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 9);
ICompositeType A = (ICompositeType) collector.getName(0)
@ -456,7 +456,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IFunction f1 = (IFunction) collector.getName(0).resolveBinding();
IFunction f2 = (IFunction) collector.getName(2).resolveBinding();
@ -476,7 +476,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buff.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType anonStruct = (ICPPClassType) collector.getName(0)
.resolveBinding();
ICPPField x = (ICPPField) collector.getName(1).resolveBinding();
@ -501,7 +501,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType A1 = (ICPPClassType) collector.getName(0)
.resolveBinding();
@ -526,7 +526,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType A1 = (ICPPClassType) collector.getName(0)
.resolveBinding();
@ -552,7 +552,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType A1 = (ICPPClassType) collector.getName(0)
.resolveBinding();
@ -573,7 +573,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType x = (ICPPClassType) collector.getName(0).resolveBinding();
@ -589,7 +589,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IFunction f = (IFunction) collector.getName(0).resolveBinding();
IParameter a = (IParameter) collector.getName(1).resolveBinding();
@ -608,7 +608,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IFunction f = (IFunction) collector.getName(0).resolveBinding();
IFunction g = (IFunction) collector.getName(1).resolveBinding();
@ -627,7 +627,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IVariable i = (IVariable) collector.getName(1).resolveBinding();
@ -643,7 +643,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType A = (ICPPClassType) collector.getName(0).resolveBinding();
IField x = (IField) collector.getName(1).resolveBinding();
@ -665,7 +665,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IEnumeration hue = (IEnumeration) collector.getName(0).resolveBinding();
IEnumerator red = (IEnumerator) collector.getName(1).resolveBinding();
@ -689,7 +689,7 @@ public class AST2CPPTests extends AST2BaseTest {
public void testPointerToFunction() throws Exception {
IASTTranslationUnit tu = parse("int (*pfi)();", ParserLanguage.CPP); //$NON-NLS-1$
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IVariable pf = (IVariable) collector.getName(0).resolveBinding();
IPointerType pt = (IPointerType) pf.getType();
assertTrue(pt.getType() instanceof IFunctionType);
@ -697,7 +697,7 @@ public class AST2CPPTests extends AST2BaseTest {
tu = parse(
"struct A; int (*pfi)( int, struct A * );", ParserLanguage.CPP); //$NON-NLS-1$
collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
ICPPClassType A = (ICPPClassType) collector.getName(0).resolveBinding();
pf = (IVariable) collector.getName(1).resolveBinding();
pt = (IPointerType) pf.getType();
@ -820,7 +820,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IFunction f = (IFunction) collector.getName(0).resolveBinding();
ICPPNamespace A = (ICPPNamespace) collector.getName(1).resolveBinding();
@ -846,7 +846,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IFunction f = (IFunction) collector.getName(1).resolveBinding();
IFunction g = (IFunction) collector.getName(8).resolveBinding();
@ -869,7 +869,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
IProblemBinding x = (IProblemBinding) collector.getName(12)
.resolveBinding();
@ -889,7 +889,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 15);
@ -920,7 +920,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 15);
@ -954,7 +954,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector collector = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 6);
@ -1029,7 +1029,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 8);
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -1056,7 +1056,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
IVariable p = (IVariable) col.getName(1).resolveBinding();
@ -1077,7 +1077,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
@ -1094,7 +1094,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 7);
@ -1108,7 +1108,7 @@ public class AST2CPPTests extends AST2BaseTest {
public void testBug84266_2() throws Exception {
IASTTranslationUnit tu = parse("struct s f(void);", ParserLanguage.CPP); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
@ -1117,7 +1117,7 @@ public class AST2CPPTests extends AST2BaseTest {
tu = parse("struct s f(void){}", ParserLanguage.CPP); //$NON-NLS-1$
col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
@ -1135,7 +1135,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 13);
@ -1163,7 +1163,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 9);
@ -1211,7 +1211,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPNamespace Y = (ICPPNamespace) col.getName(0).resolveBinding();
ICPPNamespace A = (ICPPNamespace) col.getName(3).resolveBinding();
@ -1242,7 +1242,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 9);
@ -1263,7 +1263,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 11);
@ -1289,7 +1289,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 17);
@ -1348,7 +1348,7 @@ public class AST2CPPTests extends AST2BaseTest {
public void testBug84710() throws Exception {
IASTTranslationUnit tu = parse("class T { T(); };", ParserLanguage.CPP); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPConstructor T = (ICPPConstructor) col.getName(1).resolveBinding();
assertTrue(CharArrayUtils.equals(T.getNameCharArray(),
"T".toCharArray())); //$NON-NLS-1$
@ -1368,7 +1368,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPNamespace NS = (ICPPNamespace) col.getName(0).resolveBinding();
ICPPClassType T = (ICPPClassType) col.getName(1).resolveBinding();
@ -1398,7 +1398,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction fref = (IFunction) col.getName(14).resolveBinding();
IFunction f1 = (IFunction) col.getName(1).resolveBinding();
@ -1429,7 +1429,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(17, col.size());
@ -1458,7 +1458,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(8, col.size());
@ -1480,7 +1480,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(9, col.size());
}
@ -1489,7 +1489,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse("struct S; int S::* pm;", //$NON-NLS-1$
ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(4, col.size());
@ -1514,7 +1514,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IBinding ref = col.getName(11).resolveBinding();
IVariable pm = (IVariable) col.getName(5).resolveBinding();
@ -1535,7 +1535,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPClassType S = (ICPPClassType) col.getName(0).resolveBinding();
IVariable pm = (IVariable) col.getName(8).resolveBinding();
@ -1568,7 +1568,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
}
public void testFindTypeBinding_1() throws Exception {
@ -1631,7 +1631,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f = (IFunction) col.getName(15).resolveBinding();
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -1659,7 +1659,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f = (IFunction) col.getName(16).resolveBinding();
ICPPNamespace N = (ICPPNamespace) col.getName(0).resolveBinding();
@ -1687,7 +1687,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f = (IFunction) col.getName(27).resolveBinding();
ICPPNamespace M = (ICPPNamespace) col.getName(0).resolveBinding();
@ -1715,7 +1715,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
IFunction set = (IFunction) col.getName(1).resolveBinding();
@ -1737,7 +1737,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPClassType B = (ICPPClassType) col.getName(2).resolveBinding();
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -1759,7 +1759,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
ICPPClassType N = (ICPPClassType) col.getName(5).resolveBinding();
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -1782,7 +1782,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction helper = (IFunction) col.getName(2).resolveBinding();
assertSame( helper.getScope(), tu.getScope() );
@ -1807,7 +1807,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f1 = (IFunction) col.getName(0).resolveBinding();
IFunction f2 = (IFunction) col.getName(2).resolveBinding();
@ -1831,7 +1831,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f1 = (IFunction) col.getName(0).resolveBinding();
IFunction f2 = (IFunction) col.getName(2).resolveBinding();
@ -1854,7 +1854,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f1 = (IFunction) col.getName(0).resolveBinding();
IFunction f2 = (IFunction) col.getName(2).resolveBinding();
@ -1874,7 +1874,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f1 = (IFunction) col.getName(0).resolveBinding();
IFunction f2 = (IFunction) col.getName(2).resolveBinding();
@ -1893,7 +1893,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IVariable g = (IVariable) col.getName(3).resolveBinding();
assertInstances( col, g, 3 );
@ -1916,7 +1916,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IASTName name = col.getName(11);
IBinding [] bs = CPPSemantics.prefixLookup( name );
@ -1930,7 +1930,7 @@ public class AST2CPPTests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IFunction f = (IFunction) col.getName(1).resolveBinding();
assertTrue( f.isStatic() );

View file

@ -78,7 +78,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.parser.c.CFunction;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor;
import org.eclipse.cdt.internal.core.parser.ParserException;
/**
@ -1137,7 +1136,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 3);
IFunction function = (IFunction) collector.getName(0).resolveBinding();
@ -2503,7 +2502,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IVariable a = (IVariable) col.getName(1).resolveBinding();
assertNotNull(a);
@ -2524,7 +2523,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
IVariable a = (IVariable) col.getName(1).resolveBinding();
IFunction g = (IFunction) col.getName(2).resolveBinding();
@ -2547,7 +2546,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 9);
IField x = (IField) col.getName(1).resolveBinding();
@ -2569,7 +2568,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 6);
IEnumerator one = (IEnumerator) col.getName(1).resolveBinding();
@ -2616,7 +2615,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
ILabel end = (ILabel) col.getName(1).resolveBinding();
@ -2633,7 +2632,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 5);
IEnumeration col = (IEnumeration) collector.getName(0).resolveBinding();
@ -2647,7 +2646,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(
"struct s { int a; } ss = { .a = 1 }; \n", ParserLanguage.C); //$NON-NLS-1$
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit(tu, collector);
tu.getVisitor().visitTranslationUnit( collector);
assertEquals(collector.size(), 4);
IField a = (IField) collector.getName(1).resolveBinding();
@ -2673,7 +2672,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
IEnumeration e = (IEnumeration) col.getName(0).resolveBinding();
@ -2693,7 +2692,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
IVariable p = (IVariable) col.getName(1).resolveBinding();
@ -2714,7 +2713,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
@ -2745,7 +2744,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 7);
@ -2765,7 +2764,7 @@ public class AST2Tests extends AST2BaseTest {
public void testBug84266_2() throws Exception {
IASTTranslationUnit tu = parse("struct s f(void);", ParserLanguage.C); //$NON-NLS-1$
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
@ -2774,7 +2773,7 @@ public class AST2Tests extends AST2BaseTest {
tu = parse("struct s f(void){}", ParserLanguage.C); //$NON-NLS-1$
col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 3);
@ -2794,7 +2793,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 6);
@ -2821,7 +2820,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 11);
@ -2850,7 +2849,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.C);
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 13);
@ -2900,7 +2899,7 @@ public class AST2Tests extends AST2BaseTest {
IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP);
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit( col);
assertEquals(col.size(), 26);

View file

@ -215,7 +215,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 1 );
assertTrue( col.getName(0).resolveBinding() instanceof ICPPNamespace );
@ -225,7 +225,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { } namespace A { }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 2 );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -236,7 +236,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { namespace B { } }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 2 );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -249,7 +249,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 1 );
assertTrue( col.getName(0).resolveBinding() instanceof ICPPClassType );
@ -259,7 +259,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; class B : public A { };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -278,7 +278,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace N { class A { }; } class B : protected virtual N::A { };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
ICPPNamespace N = (ICPPNamespace) col.getName(0).resolveBinding();
@ -301,7 +301,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "int x;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 1 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -315,7 +315,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; A x;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -329,7 +329,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace N { class A { }; } N::A x;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
ICPPNamespace N = (ICPPNamespace) col.getName(0).resolveBinding();
@ -346,7 +346,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; A x, y, z;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -364,7 +364,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { double x; };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 2 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -380,7 +380,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { namespace B { int x; class C { static int y = 5; }; } } \n using namespace A::B;\n using A::B::x;using A::B::C;using A::B::C::y;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 21 );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -400,7 +400,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { enum E { e1, e2, e3 }; E varE;}"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -422,7 +422,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "void foo( void );"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 2 );
IFunction foo = (IFunction) col.getName(0).resolveBinding();
@ -437,7 +437,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { public: \n class B { }; }; const A::B & foo( A * myParam );"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 8 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -464,7 +464,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { void foo(); };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 2 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -477,7 +477,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class U { }; class A { U foo( U areDumb ); };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
ICPPClassType U = (ICPPClassType) col.getName(0).resolveBinding();
@ -496,7 +496,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace N { int foo(void); } class A { static int bar(void); }; using N::foo; using ::A::bar;" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 12 );
ICPPNamespace N = (ICPPNamespace) col.getName(0).resolveBinding();
@ -514,7 +514,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "extern \"C\" { int foo(); }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 1 );
IFunction foo = (IFunction) col.getName(0).resolveBinding();
@ -526,7 +526,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { namespace B { enum e1{e_1,e_2}; int x; class C { static int y = 5; }; }} "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 8 );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -551,7 +551,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace N{ class A {}; } using namespace N; class B: public A{};"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICPPNamespace N = (ICPPNamespace) col.getName(0).resolveBinding();
@ -569,7 +569,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "typedef int myInt;\n myInt var;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ITypedef myInt = (ITypedef) col.getName(0).resolveBinding();
@ -584,7 +584,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A{ }; typedef A ** A_DOUBLEPTR;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -626,7 +626,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { } \n class A::B { };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
ICPPClassType B = (ICPPClassType) col.getName(1).resolveBinding();
@ -649,7 +649,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A; class A * a;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -663,7 +663,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A; A * anA;class A { };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -683,7 +683,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "void foo();\n void foo( int );\n"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
IFunction foo1 = (IFunction) col.getName(0).resolveBinding();
@ -696,7 +696,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "int x; int y = x;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -709,7 +709,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "int x = 5; void foo( int sub = x ) { }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -720,7 +720,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "namespace A { int x = 666; } int y = A::x;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
@ -733,7 +733,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "int x = 5;\n class A \n{ public : \n int a; \n A() : a( x ) { } };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -748,7 +748,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "const int x = 5; int y [ x ]; "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -763,7 +763,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; A * anA;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -777,7 +777,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; void foo( void ) throw ( A );"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -788,7 +788,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "typedef int A; int B; int C; int D; int P; int*p = new (P) (A)[B][C][D];" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 11 );
ITypedef A = (ITypedef) col.getName(0).resolveBinding();
@ -817,7 +817,7 @@ public class CompleteParser2Tests extends TestCase {
// assertNotNull( dtor.getInitializer() );
//
// CPPNameCollector col = new CPPNameCollector();
// CPPVisitor.visitTranslationUnit( tu, col );
// tu.getVisitor().visitTranslationUnit( col );
//
// assertEquals( col.size(), 3 );
// IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -830,7 +830,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "const int max = 5;\n int * x = new int[max];"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
IVariable max = (IVariable) col.getName(0).resolveBinding();
@ -842,7 +842,7 @@ public class CompleteParser2Tests extends TestCase {
// Used to cause AST Semantic exception
IASTTranslationUnit tu = parse( "class A{ class B{ class C { public: int cMethod(); }; }; }; \n int A::B::C::cMethod() {}; \n" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 9 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -864,7 +864,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A{ public: A(); }; \n A::A() {}; \n" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -878,7 +878,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A{ public: ~A(); }; \n A::~A() {}; \n" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -892,7 +892,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; namespace N { class B : public A { struct A {}; }; }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -912,7 +912,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { int f1(); }; const int x = 4; int f() { return x; } int A::f1() { return x; }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 9 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -929,7 +929,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "const int FIVE = 5; void f() { int x = 0; for( int i = 0; i < FIVE; ++i ) { x += i; } }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 9 );
IVariable FIVE = (IVariable) col.getName(0).resolveBinding();
@ -945,7 +945,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "union{ int v; char a; } id;" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
@ -978,7 +978,7 @@ public class CompleteParser2Tests extends TestCase {
assertTrue( ifstmt.getElseClause() instanceof IASTCompoundStatement );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
@ -990,7 +990,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "const bool T = true; void foo() { int x = 0; while( T ) { ++x; if( x == 100 ) break; } }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
IVariable T = (IVariable) col.getName(0).resolveBinding();
@ -1014,7 +1014,7 @@ public class CompleteParser2Tests extends TestCase {
" blah : ; " + //$NON-NLS-1$
"} "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -1030,7 +1030,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "const int x = 3; int counter = 0; void foo() { do { ++counter; } while( counter != x ); } "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 6 );
IVariable x = (IVariable) col.getName(0).resolveBinding();
@ -1043,7 +1043,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { }; void foo() throw ( A ) { throw A; throw; } "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
ICompositeType A = (ICompositeType) col.getName(0).resolveBinding();
@ -1055,7 +1055,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "void foo() { int x = 3; if( x == 1 ) { int x = 4; } else int x = 2; }"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
IVariable x1 = (IVariable) col.getName(1).resolveBinding();
@ -1071,7 +1071,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "enum E { e1, e2, e3 }; E anE = e1;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
IEnumeration E = (IEnumeration) col.getName(0).resolveBinding();
@ -1091,7 +1091,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "void foo(); void foo() { } class SearchMe { };"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
IFunction foo = (IFunction) col.getName(0).resolveBinding();
@ -1103,7 +1103,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "struct B {}; struct D : B {}; void foo(D* dp) { B* bp = dynamic_cast<B*>(dp); }" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 10 );
ICompositeType B = (ICompositeType) col.getName(0).resolveBinding();
@ -1116,7 +1116,7 @@ public class CompleteParser2Tests extends TestCase {
public void testBug43503A() throws Exception {
IASTTranslationUnit tu = parse("class SD_01 { void f_SD_01() {}}; int main(){ SD_01 * a = new SD_01(); a->f_SD_01(); } "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 8 );
ICPPClassType SD_01 = (ICPPClassType) col.getName(0).resolveBinding();
@ -1143,7 +1143,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( code.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 12 );
ICompositeType OperatorOverload = (ICompositeType) col.getName(0).resolveBinding();
@ -1161,7 +1161,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class A { static int x; }; int A::x = 5;" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICompositeType A = (ICompositeType) col.getName(0).resolveBinding();
@ -1175,7 +1175,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "const int w = 2; int x[ 5 ]; int y = sizeof ( x[w] );" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
IVariable w = (IVariable) col.getName(0).resolveBinding();
@ -1214,7 +1214,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buff.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 17 );
ICompositeType SD_02 = (ICompositeType) col.getName(0).resolveBinding();
@ -1236,7 +1236,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "struct Sample { int size() const; }; extern const Sample * getSample(); int trouble() { return getSample()->size(); } " ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
ICompositeType sample = (ICompositeType) col.getName(0).resolveBinding();
@ -1252,7 +1252,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "struct Sample{int size() const; }; struct Sample; " ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
ICompositeType sample = (ICompositeType) col.getName(0).resolveBinding();
@ -1266,7 +1266,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "class B{ B(); ~B(); }; B::B(){} B::~B(){}" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 9 );
ICPPClassType B = (ICPPClassType) col.getName(0).resolveBinding();
@ -1281,7 +1281,7 @@ public class CompleteParser2Tests extends TestCase {
public void testBug44342() throws Exception {
IASTTranslationUnit tu = parse("class A { void f(){} void f(int){} }; int main(){ A * a = new A(); a->f();} "); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 10 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -1344,7 +1344,7 @@ public class CompleteParser2Tests extends TestCase {
"void main(){ int i = initialize(); }" ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
IFunction init1 = (IFunction) col.getName(0).resolveBinding();
@ -1364,7 +1364,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buffer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
ICPPClassType myClass = (ICPPClassType) col.getName(0).resolveBinding();
@ -1388,7 +1388,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buffer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 12 );
ICPPClassType A = (ICPPClassType) col.getName(0).resolveBinding();
@ -1420,7 +1420,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buffer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
ICPPClassType s = (ICPPClassType) col.getName(0).resolveBinding();
@ -1444,7 +1444,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buffer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 13 );
ICPPNamespace N = (ICPPNamespace) col.getName(0).resolveBinding();
@ -1468,7 +1468,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buffer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 5 );
IFunction x = (IFunction) col.getName(0).resolveBinding();
@ -1488,7 +1488,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( buffer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
IFunction foo = (IFunction) col.getName(0).resolveBinding();
@ -1500,7 +1500,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( "A anA; int x = c; class A {}; A * anotherA = &anA; int b;", false ); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 9 );
IProblemBinding p = (IProblemBinding) col.getName(0).resolveBinding();
@ -1523,7 +1523,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse ("class A{ int getX() {return x[1];} int x[10];};"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
@ -1548,7 +1548,7 @@ public class CompleteParser2Tests extends TestCase {
writer.write( "void f( char * ){} \n" ); //$NON-NLS-1$
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
IFunction f1 = (IFunction) col.getName(0).resolveBinding();
@ -1567,7 +1567,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
IFunction f1 = (IFunction) col.getName(0).resolveBinding();
@ -1586,7 +1586,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 3 );
@ -1611,7 +1611,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 11 );
IVariable i = (IVariable)col.getName(1).resolveBinding();
@ -1629,7 +1629,7 @@ public class CompleteParser2Tests extends TestCase {
parse( writer.toString() );
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 4 );
ICPPField pfi = (ICPPField)col.getName(2).resolveBinding();
@ -1648,7 +1648,7 @@ public class CompleteParser2Tests extends TestCase {
{
IASTTranslationUnit tu = parse( "typedef struct blah sb;"); //$NON-NLS-1$
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 2 );
@ -1680,7 +1680,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 10 );
@ -1704,7 +1704,7 @@ public class CompleteParser2Tests extends TestCase {
writer.write( "void X::f( T ) { } " ); //$NON-NLS-1$
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 10 );
ICPPClassType X = (ICPPClassType) col.getName(0).resolveBinding();
@ -1724,7 +1724,7 @@ public class CompleteParser2Tests extends TestCase {
writer.write( "class AltG3 : AltG2 { int x;};"); //$NON-NLS-1$
IASTTranslationUnit tu = parse( writer.toString() );
CPPNameCollector col = new CPPNameCollector();
CPPVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 7 );
ICPPClassType G2 = (ICPPClassType) col.getName(0).resolveBinding();
@ -1746,7 +1746,7 @@ public class CompleteParser2Tests extends TestCase {
IASTTranslationUnit tu = parse( writer.toString(), true, ParserLanguage.C );
CNameCollector col = new CNameCollector();
CVisitor.visitTranslationUnit( tu, col );
tu.getVisitor().visitTranslationUnit( col );
assertEquals( col.size(), 9 );
ICompositeType A = (ICompositeType) col.getName(0).resolveBinding();

View file

@ -25,7 +25,6 @@ import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.IVariable;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
/**
* @author aniefer
@ -52,7 +51,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 33 );
ICompositeType x = (ICompositeType) collector.getName( 0 ).resolveBinding();
@ -93,7 +92,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 5 );
IFunction f = (IFunction) collector.getName( 0 ).resolveBinding();
@ -120,7 +119,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 12 );
@ -158,7 +157,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 16 );
IVariable loop1 = (IVariable) collector.getName( 0 ).resolveBinding();
@ -192,7 +191,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 11 );
IVariable nResult = (IVariable) collector.getName( 1 ).resolveBinding();
@ -220,7 +219,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 11 );
IVariable f = (IVariable) collector.getName( 0 ).resolveBinding();
@ -250,7 +249,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 19 );
IFunction buggy = (IFunction) collector.getName(0).resolveBinding();
@ -285,7 +284,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 7 );
IVariable winds = (IVariable) collector.getName( 1 ).resolveBinding();
@ -311,7 +310,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 15 );
ITypedef uint64 = (ITypedef) collector.getName( 0 ).resolveBinding();
@ -349,7 +348,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 34 );
IVariable aa = (IVariable) collector.getName( 0 ).resolveBinding();
@ -391,7 +390,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 11 );
IVariable i = (IVariable) collector.getName( 0 ).resolveBinding();
@ -420,7 +419,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 14 );
IFunction f = (IFunction) collector.getName( 0 ).resolveBinding();
@ -460,7 +459,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 36 );
IField y = (IField) collector.getName( 1 ).resolveBinding();
@ -505,7 +504,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 43 );
IFunction f = (IFunction) collector.getName( 0 ).resolveBinding();
@ -551,7 +550,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 10 );
IField node = (IField) collector.getName( 3 ).resolveBinding();
@ -580,7 +579,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 25 );
ICompositeType foo = (ICompositeType) collector.getName( 0 ).resolveBinding();
@ -622,7 +621,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 6 );
IFunction sub = (IFunction) collector.getName( 0 ).resolveBinding();
@ -664,7 +663,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 95 );
IFunction f = (IFunction) collector.getName( 0 ).resolveBinding();
@ -704,7 +703,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 22 );
ICompositeType s1 = (ICompositeType) collector.getName( 0 ).resolveBinding();
@ -742,7 +741,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 27 );
ICompositeType F = (ICompositeType) collector.getName( 0 ).resolveBinding();
@ -780,7 +779,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 14 );
ICompositeType F = (ICompositeType) collector.getName( 0 ).resolveBinding();
@ -811,7 +810,7 @@ public class GCCTests extends AST2BaseTest {
IASTTranslationUnit tu = parse( buffer.toString(), ParserLanguage.C );
CNameCollector collector = new CNameCollector();
CVisitor.visitTranslationUnit( tu, collector );
tu.getVisitor().visitTranslationUnit( collector );
assertEquals( collector.size(), 11 );
IEnumeration foo = (IEnumeration) collector.getName( 0 ).resolveBinding();

View file

@ -74,5 +74,7 @@ public interface IASTTranslationUnit extends IASTNode {
public IASTProblem[] getPreprocesorProblems();
public String getUnpreprocessedSignature( IASTNodeLocation [] locations );
public IASTVisitor getVisitor();
}

View file

@ -0,0 +1,66 @@
/*******************************************************************************
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/*
* Created on Feb 22, 2005
*/
package org.eclipse.cdt.core.dom.ast;
import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator;
/**
* @author aniefer
*/
public interface IASTVisitor {
public static abstract class BaseVisitorAction {
public boolean processNames = false;
public boolean processDeclarations = false;
public boolean processInitializers = false;
public boolean processParameterDeclarations = false;
public boolean processDeclarators = false;
public boolean processDeclSpecifiers = false;
public boolean processExpressions = false;
public boolean processStatements = false;
public boolean processTypeIds = false;
public boolean processEnumerators = false;
/**
* @return continue to continue visiting, abort to stop, skip to not descend into this node.
*/
public final static int PROCESS_SKIP = 1;
public final static int PROCESS_ABORT = 2;
public final static int PROCESS_CONTINUE = 3;
public int processName( IASTName name ) { return PROCESS_CONTINUE; }
public int processDeclaration( IASTDeclaration declaration ){ return PROCESS_CONTINUE; }
public int processInitializer( IASTInitializer initializer ){ return PROCESS_CONTINUE; }
public int processParameterDeclaration( IASTParameterDeclaration parameterDeclaration ) { return PROCESS_CONTINUE; }
public int processDeclarator( IASTDeclarator declarator ) { return PROCESS_CONTINUE; }
public int processDeclSpecifier( IASTDeclSpecifier declSpec ){return PROCESS_CONTINUE; }
public int processExpression( IASTExpression expression ) { return PROCESS_CONTINUE; }
public int processStatement( IASTStatement statement ) { return PROCESS_CONTINUE; }
public int processTypeId( IASTTypeId typeId ) { return PROCESS_CONTINUE; }
public int processEnumerator( IASTEnumerator enumerator ) { return PROCESS_CONTINUE; }
}
public void visitTranslationUnit( BaseVisitorAction action );
public boolean visitDeclaration( IASTDeclaration declaration, BaseVisitorAction action );
public boolean visitName( IASTName name, BaseVisitorAction action );
public boolean visitDeclSpecifier( IASTDeclSpecifier declSpecifier, BaseVisitorAction action );
public boolean visitDeclarator( IASTDeclarator declarator, BaseVisitorAction action );
public boolean visitStatement( IASTStatement statement, BaseVisitorAction action );
public boolean visitExpression( IASTExpression expression, BaseVisitorAction action );
public boolean visitTypeId( IASTTypeId typeId, BaseVisitorAction action );
public boolean visitInitializer( IASTInitializer initializer, BaseVisitorAction action );
public boolean visitEnumerator( IASTEnumerator enumerator, BaseVisitorAction action );
public boolean visitParameterDeclaration( IASTParameterDeclaration parameterDeclaration, BaseVisitorAction action );
}

View file

@ -0,0 +1,31 @@
/*******************************************************************************
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/*
* Created on Feb 22, 2005
*/
package org.eclipse.cdt.core.dom.ast.c;
import org.eclipse.cdt.core.dom.ast.IASTVisitor;
/**
* @author aniefer
*/
public interface ICASTVisitor extends IASTVisitor {
public static abstract class CBaseVisitorAction extends BaseVisitorAction {
public boolean processDesignators = false;
public int processDesignator( ICASTDesignator designator ) { return PROCESS_CONTINUE; }
}
public boolean visitDesignator( ICASTDesignator designator, BaseVisitorAction action );
}

View file

@ -0,0 +1,39 @@
/*******************************************************************************
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/*
* Created on Feb 22, 2005
*/
package org.eclipse.cdt.core.dom.ast.cpp;
import org.eclipse.cdt.core.dom.ast.IASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
/**
* @author aniefer
*/
public interface ICPPASTVisitor extends IASTVisitor {
public static abstract class CPPBaseVisitorAction extends BaseVisitorAction{
public boolean processBaseSpecifiers = false;
public boolean processNamespaces = false;
public boolean processTemplateParameters = false;
public int processBaseSpecifier(ICPPASTBaseSpecifier specifier) { return PROCESS_CONTINUE; }
public int processNamespace( ICPPASTNamespaceDefinition namespace) { return PROCESS_CONTINUE; }
public int processTemplateParameter( ICPPASTTemplateParameter parameter) { return PROCESS_CONTINUE; }
}
public boolean visitNamespaceDefinition( ICPPASTNamespaceDefinition namespace, BaseVisitorAction action );
public abstract boolean visitBaseSpecifier( ICPPASTBaseSpecifier specifier, BaseVisitorAction action );
public abstract boolean visitTemplateParameter( ICPPASTTemplateParameter parameter, BaseVisitorAction action );
}

View file

@ -12,14 +12,15 @@ package org.eclipse.cdt.internal.core.dom.parser.c;
import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTNodeLocation;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorIncludeStatement;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement;
import org.eclipse.cdt.core.dom.ast.IASTProblem;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTVisitor;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.internal.core.dom.parser.IRequiresLocationInformation;
@ -37,6 +38,7 @@ public class CASTTranslationUnit extends CASTNode implements IASTTranslationUnit
//Binding
private CScope compilationUnit = null;
private CVisitor visitor = null;
private ILocationResolver resolver;
private static final IASTPreprocessorStatement[] EMPTY_PREPROCESSOR_STATEMENT_ARRAY = new IASTPreprocessorStatement[0];
private static final IASTNodeLocation[] EMPTY_PREPROCESSOR_LOCATION_ARRAY = new IASTNodeLocation[0];
@ -227,4 +229,14 @@ public class CASTTranslationUnit extends CASTNode implements IASTTranslationUnit
if( resolver == null ) return EMPTY_STRING;
return new String( resolver.getUnpreprocessedSignature(locations) );
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getVisitor()
*/
public IASTVisitor getVisitor() {
if( visitor == null )
visitor = new CVisitor( this );
return visitor;
}
}

View file

@ -21,9 +21,9 @@ import org.eclipse.cdt.core.dom.ast.ILabel;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.c.ICFunctionScope;
import org.eclipse.cdt.core.dom.ast.c.ICScope;
import org.eclipse.cdt.core.dom.ast.c.ICASTVisitor.CBaseVisitorAction;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayObjectMap;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction;
/**
* Created on Nov 8, 2004
@ -85,7 +85,8 @@ public class CFunctionScope implements ICFunctionScope {
public ILabel[] getLabels(){
FindLabelsAction action = new FindLabelsAction();
CVisitor.visitDeclaration( function, action );
function.getTranslationUnit().getVisitor().visitDeclaration( function, action );
ILabel [] result = null;
if( action.labels != null ){

View file

@ -90,6 +90,7 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTPointer;
import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypeIdInitializerExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICASTVisitor;
import org.eclipse.cdt.core.dom.ast.c.ICCompositeTypeScope;
import org.eclipse.cdt.core.dom.ast.c.ICFunctionScope;
import org.eclipse.cdt.core.dom.ast.c.ICScope;
@ -100,46 +101,12 @@ import org.eclipse.cdt.core.parser.util.CharArrayUtils;
import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunctionType;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.CPPBaseVisitorAction;
/**
* Created on Nov 5, 2004
* @author aniefer
*/
public class CVisitor {
public static abstract class CBaseVisitorAction {
public boolean processNames = false;
public boolean processDeclarations = false;
public boolean processInitializers = false;
public boolean processParameterDeclarations = false;
public boolean processDeclarators = false;
public boolean processDeclSpecifiers = false;
public boolean processExpressions = false;
public boolean processStatements = false;
public boolean processTypeIds = false;
public boolean processEnumerators = false;
public boolean processDesignators = false;
/**
* @return true to continue visiting, abort to stop, skip to not descend into this node.
*/
public final static int PROCESS_SKIP = 1;
public final static int PROCESS_ABORT = 2;
public final static int PROCESS_CONTINUE = 3;
public int processName( IASTName name ) { return PROCESS_CONTINUE; }
public int processDeclaration( IASTDeclaration declaration ){ return PROCESS_CONTINUE; }
public int processInitializer( IASTInitializer initializer ){ return PROCESS_CONTINUE; }
public int processParameterDeclaration( IASTParameterDeclaration parameterDeclaration ) { return PROCESS_CONTINUE; }
public int processDeclarator( IASTDeclarator declarator ) { return PROCESS_CONTINUE; }
public int processDeclSpecifier( IASTDeclSpecifier declSpec ){return PROCESS_CONTINUE; }
public int processExpression( IASTExpression expression ) { return PROCESS_CONTINUE; }
public int processStatement( IASTStatement statement ) { return PROCESS_CONTINUE; }
public int processTypeId( IASTTypeId typeId ) { return PROCESS_CONTINUE; }
public int processEnumerator( IASTEnumerator enumerator ) { return PROCESS_CONTINUE; }
public int processDesignator( ICASTDesignator designator ) { return PROCESS_CONTINUE; }
}
public class CVisitor implements ICASTVisitor {
public static class ClearBindingAction extends CBaseVisitorAction {
{
processNames = true;
@ -1364,32 +1331,37 @@ public class CVisitor {
}
public static void clearBindings( IASTTranslationUnit tu ){
visitTranslationUnit( tu, new ClearBindingAction() );
tu.getVisitor().visitTranslationUnit( new ClearBindingAction() );
}
public static void visitTranslationUnit( IASTTranslationUnit tu, CBaseVisitorAction action ){
private IASTTranslationUnit tu = null;
public CVisitor( IASTTranslationUnit tu ) {
this.tu = tu;
}
public void visitTranslationUnit( BaseVisitorAction action ){
IASTDeclaration[] decls = tu.getDeclarations();
for( int i = 0; i < decls.length; i++ ){
if( !visitDeclaration( decls[i], action ) ) return;
}
}
public static boolean visitName( IASTName name, CBaseVisitorAction action ){
public boolean visitName( IASTName name, BaseVisitorAction action ){
if( action.processNames ) {
switch( action.processName( name ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
return true;
}
public static boolean visitDeclaration( IASTDeclaration declaration, CBaseVisitorAction action ){
public boolean visitDeclaration( IASTDeclaration declaration, BaseVisitorAction action ){
if( action.processDeclarations ) {
switch( action.processDeclaration( declaration ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1409,11 +1381,11 @@ public class CVisitor {
}
return true;
}
public static boolean visitDeclarator( IASTDeclarator declarator, CBaseVisitorAction action ){
public boolean visitDeclarator( IASTDeclarator declarator, BaseVisitorAction action ){
if( action.processDeclarators ){
switch( action.processDeclarator( declarator ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1462,14 +1434,14 @@ public class CVisitor {
return true;
}
public static boolean visitInitializer( IASTInitializer initializer, CBaseVisitorAction action ){
public boolean visitInitializer( IASTInitializer initializer, BaseVisitorAction action ){
if( initializer == null )
return true;
if( action.processInitializers ){
switch( action.processInitializer( initializer ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1491,11 +1463,11 @@ public class CVisitor {
}
return true;
}
public static boolean visitDesignator( ICASTDesignator designator, CBaseVisitorAction action ){
if( action.processDesignators ){
switch( action.processDesignator( designator ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
public boolean visitDesignator( ICASTDesignator designator, BaseVisitorAction action ){
if( action instanceof CBaseVisitorAction && ((CBaseVisitorAction)action).processDesignators ){
switch( ((CBaseVisitorAction)action).processDesignator( designator ) ){
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1509,11 +1481,11 @@ public class CVisitor {
}
return true;
}
public static boolean visitParameterDeclaration( IASTParameterDeclaration parameterDeclaration, CBaseVisitorAction action ){
public boolean visitParameterDeclaration( IASTParameterDeclaration parameterDeclaration, BaseVisitorAction action ){
if( action.processParameterDeclarations ){
switch( action.processParameterDeclaration( parameterDeclaration ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1523,11 +1495,11 @@ public class CVisitor {
return true;
}
public static boolean visitDeclSpecifier( IASTDeclSpecifier declSpec, CBaseVisitorAction action ){
public boolean visitDeclSpecifier( IASTDeclSpecifier declSpec, BaseVisitorAction action ){
if( action.processDeclSpecifiers ){
switch( action.processDeclSpecifier( declSpec ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1554,11 +1526,11 @@ public class CVisitor {
}
return true;
}
public static boolean visitEnumerator( IASTEnumerator enumerator, CBaseVisitorAction action ){
public boolean visitEnumerator( IASTEnumerator enumerator, BaseVisitorAction action ){
if( action.processEnumerators ){
switch( action.processEnumerator( enumerator ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1569,12 +1541,12 @@ public class CVisitor {
return true;
}
private static boolean visitIfStatement( IASTIfStatement ifStatement, CBaseVisitorAction action ){
private boolean visitIfStatement( IASTIfStatement ifStatement, BaseVisitorAction action ){
while( ifStatement != null ){
if( action.processStatements ){
switch( action.processStatement( ifStatement ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1592,15 +1564,15 @@ public class CVisitor {
}
return true;
}
public static boolean visitStatement( IASTStatement statement, CBaseVisitorAction action ){
public boolean visitStatement( IASTStatement statement, BaseVisitorAction action ){
//handle if's in a non-recursive manner to avoid stack overflows in case of huge number of elses
if( statement instanceof IASTIfStatement )
return visitIfStatement( (IASTIfStatement) statement, action );
if( action.processStatements ){
switch( action.processStatement( statement ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1645,11 +1617,11 @@ public class CVisitor {
}
return true;
}
public static boolean visitTypeId( IASTTypeId typeId, CBaseVisitorAction action ){
public boolean visitTypeId( IASTTypeId typeId, BaseVisitorAction action ){
if( action.processTypeIds ){
switch( action.processTypeId( typeId ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1658,13 +1630,13 @@ public class CVisitor {
if( !visitDeclSpecifier( typeId.getDeclSpecifier(), action ) ) return false;
return true;
}
public static boolean visitExpression( IASTExpression expression, CBaseVisitorAction action ){
public boolean visitExpression( IASTExpression expression, BaseVisitorAction action ){
if (expression == null) return true;
if( action.processExpressions ){
switch( action.processExpression( expression ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1950,14 +1922,14 @@ public class CVisitor {
public static IASTProblem[] getProblems(IASTTranslationUnit tu) {
CollectProblemsAction action = new CollectProblemsAction();
visitTranslationUnit(tu, action);
tu.getVisitor().visitTranslationUnit(action);
return action.getProblems();
}
public static IASTName[] getDeclarations(IASTTranslationUnit tu, IBinding binding) {
CollectDeclarationsAction action = new CollectDeclarationsAction(binding);
visitTranslationUnit(tu, action);
tu.getVisitor().visitTranslationUnit(action);
return action.getDeclarationNames();
}
@ -1969,7 +1941,7 @@ public class CVisitor {
*/
public static IASTName[] getReferences(IASTTranslationUnit tu, IBinding binding) {
CollectReferencesAction action = new CollectReferencesAction( binding );
visitTranslationUnit( tu, action );
tu.getVisitor().visitTranslationUnit(action);
return action.getReferences();
}

View file

@ -20,9 +20,11 @@ import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement;
import org.eclipse.cdt.core.dom.ast.IASTProblem;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTVisitor;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
import org.eclipse.cdt.internal.core.dom.parser.IRequiresLocationInformation;
@ -38,6 +40,8 @@ public class CPPASTTranslationUnit extends CPPASTNode implements
private ICPPNamespace binding = null;
private ICPPScope scope = null;
private ICPPASTVisitor visitor = null;
private static final int DEFAULT_CHILDREN_LIST_SIZE = 8;
@ -257,4 +261,13 @@ public class CPPASTTranslationUnit extends CPPASTNode implements
if( resolver == null ) return EMPTY_STRING;
return new String( resolver.getUnpreprocessedSignature(locations) );
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getVisitor()
*/
public IASTVisitor getVisitor() {
if( visitor == null )
visitor = new CPPVisitor( this );
return visitor;
}
}

View file

@ -26,7 +26,6 @@ import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IField;
import org.eclipse.cdt.core.dom.ast.IProblemBinding;
@ -37,6 +36,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
@ -160,22 +160,18 @@ public class CPPClassType implements ICPPClassType, ICPPBinding {
private void checkForDefinition(){
FindDefinitionAction action = new FindDefinitionAction();
IASTNode node = CPPVisitor.getContainingBlockItem( getPhysicalNode() ).getParent();
ICPPASTVisitor visitor = (ICPPASTVisitor) node.getTranslationUnit().getVisitor();
if( node instanceof ICPPASTNamespaceDefinition ){
CPPVisitor.visitNamespaceDefinition( (ICPPASTNamespaceDefinition) node, action );
visitor.visitNamespaceDefinition( (ICPPASTNamespaceDefinition) node, action );
definition = action.result;
} else if( node instanceof IASTCompoundStatement ){
//a local class, nowhere else to look if we don't find it here...
CPPVisitor.visitStatement( (IASTStatement) node, action );
visitor.visitStatement( (IASTStatement) node, action );
definition = action.result;
return;
}
if( definition == null ){
IASTTranslationUnit tu = null;
while( !(node instanceof IASTTranslationUnit) ) {
node = node.getParent();
}
tu = (IASTTranslationUnit) node;
CPPVisitor.visitTranslationUnit( tu, action );
visitor.visitTranslationUnit( action );
definition = action.result;
}

View file

@ -22,8 +22,10 @@ import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IASTVisitor.BaseVisitorAction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
@ -91,11 +93,12 @@ public class CPPNamespace implements ICPPNamespace, ICPPBinding {
ICPPASTNamespaceDefinition nsDef = (ICPPASTNamespaceDefinition) namespaceName.getParent();
IASTNode node = nsDef.getParent();
ICPPASTVisitor visitor = (ICPPASTVisitor) node.getTranslationUnit().getVisitor();
if( node instanceof IASTTranslationUnit )
CPPVisitor.visitTranslationUnit( (IASTTranslationUnit) node, collector );
visitor.visitTranslationUnit( collector );
else if( node instanceof ICPPASTNamespaceDefinition ){
collector.processResult = CPPVisitor.CPPBaseVisitorAction.PROCESS_CONTINUE;
CPPVisitor.visitNamespaceDefinition( (ICPPASTNamespaceDefinition) node, collector );
collector.processResult = BaseVisitorAction.PROCESS_CONTINUE;
visitor.visitNamespaceDefinition( (ICPPASTNamespaceDefinition) node, collector );
}
int size = collector.namespaces.size();

View file

@ -85,7 +85,6 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.IVariable;
import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator;
import org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier;
@ -111,10 +110,12 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeConstructorExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTryBlockStatement;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypenameExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBasicType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
@ -135,7 +136,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
/**
* @author aniefer
*/
public class CPPVisitor {
public class CPPVisitor implements ICPPASTVisitor {
/**
* @param name
@ -681,41 +682,6 @@ public class CPPVisitor {
return null;
}
public static abstract class CPPBaseVisitorAction {
public boolean processNames = false;
public boolean processDeclarations = false;
public boolean processInitializers = false;
public boolean processParameterDeclarations = false;
public boolean processDeclarators = false;
public boolean processDeclSpecifiers = false;
public boolean processExpressions = false;
public boolean processStatements = false;
public boolean processTypeIds = false;
public boolean processEnumerators = false;
public boolean processBaseSpecifiers = false;
public boolean processNamespaces = false;
/**
* @return true to continue visiting, return false to stop
*/
public final static int PROCESS_SKIP = 1;
public final static int PROCESS_ABORT = 2;
public final static int PROCESS_CONTINUE = 3;
public int processName( IASTName name ) { return PROCESS_CONTINUE; }
public int processDeclaration( IASTDeclaration declaration ){ return PROCESS_CONTINUE; }
public int processInitializer( IASTInitializer initializer ){ return PROCESS_CONTINUE; }
public int processParameterDeclaration( IASTParameterDeclaration parameterDeclaration ) { return PROCESS_CONTINUE; }
public int processDeclarator( IASTDeclarator declarator ) { return PROCESS_CONTINUE; }
public int processDeclSpecifier( IASTDeclSpecifier declSpec ){return PROCESS_CONTINUE; }
public int processExpression( IASTExpression expression ) { return PROCESS_CONTINUE; }
public int processStatement( IASTStatement statement ) { return PROCESS_CONTINUE; }
public int processTypeId( IASTTypeId typeId ) { return PROCESS_CONTINUE; }
public int processEnumerator( IASTEnumerator enumerator ) { return PROCESS_CONTINUE; }
public int processBaseSpecifier(ICPPASTBaseSpecifier specifier) { return PROCESS_CONTINUE; }
public int processNamespace( ICPPASTNamespaceDefinition namespace) { return PROCESS_CONTINUE; }
}
public static class CollectProblemsAction extends CPPBaseVisitorAction {
{
processDeclarations = true;
@ -974,7 +940,6 @@ public class CPPVisitor {
case KIND_OBJ_FN:
if( prop == IASTIdExpression.ID_NAME ||
prop == IASTFieldReference.FIELD_NAME ||
prop == ICASTFieldDesignator.FIELD_NAME ||
prop == ICPPASTUsingDirective.QUALIFIED_NAME ||
prop == ICPPASTUsingDeclaration.NAME ||
prop == IASTFunctionCallExpression.FUNCTION_NAME ||
@ -1017,19 +982,23 @@ public class CPPVisitor {
}
}
private IASTTranslationUnit tu = null;
public CPPVisitor( ICPPASTTranslationUnit tu ){
this.tu = tu;
}
public static void visitTranslationUnit( IASTTranslationUnit tu, CPPBaseVisitorAction action ){
public void visitTranslationUnit( BaseVisitorAction action ){
IASTDeclaration [] decls = tu.getDeclarations();
for( int i = 0; i < decls.length; i++ ){
if( !visitDeclaration( decls[i], action ) ) return;
}
}
public static boolean visitNamespaceDefinition( ICPPASTNamespaceDefinition namespace, CPPBaseVisitorAction action ){
if( action.processNamespaces ){
switch( action.processNamespace( namespace ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
public boolean visitNamespaceDefinition( ICPPASTNamespaceDefinition namespace, BaseVisitorAction action ){
if( action instanceof CPPBaseVisitorAction && ((CPPBaseVisitorAction)action).processNamespaces ){
switch( ((CPPBaseVisitorAction)action).processNamespace( namespace ) ){
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1046,14 +1015,14 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitDeclaration(IASTDeclaration declaration, CPPBaseVisitorAction action) {
public boolean visitDeclaration(IASTDeclaration declaration, BaseVisitorAction action) {
if( declaration instanceof ICPPASTNamespaceDefinition )
return visitNamespaceDefinition( (ICPPASTNamespaceDefinition) declaration, action );
if( action.processDeclarations ) {
switch( action.processDeclaration( declaration ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1101,11 +1070,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitName(IASTName name, CPPBaseVisitorAction action) {
public boolean visitName(IASTName name, BaseVisitorAction action) {
if( action.processNames ){
switch( action.processName( name ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1126,11 +1095,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitDeclSpecifier(IASTDeclSpecifier declSpecifier, CPPBaseVisitorAction action) {
public boolean visitDeclSpecifier(IASTDeclSpecifier declSpecifier, BaseVisitorAction action) {
if( action.processDeclSpecifiers ){
switch( action.processDeclSpecifier( declSpecifier ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1170,11 +1139,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitDeclarator(IASTDeclarator declarator, CPPBaseVisitorAction action) {
public boolean visitDeclarator(IASTDeclarator declarator, BaseVisitorAction action) {
if( action.processDeclarators ){
switch( action.processDeclarator( declarator ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1237,12 +1206,12 @@ public class CPPVisitor {
return true;
}
private static boolean visitIfStatement( IASTIfStatement ifStatement, CPPBaseVisitorAction action ){
private boolean visitIfStatement( IASTIfStatement ifStatement, BaseVisitorAction action ){
while( ifStatement != null ){
if( action.processStatements ){
switch( action.processStatement( ifStatement ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1265,15 +1234,15 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitStatement(IASTStatement statement, CPPBaseVisitorAction action) {
public boolean visitStatement(IASTStatement statement, BaseVisitorAction action) {
//handle if's in a non-recursive manner to avoid stack overflows in case of huge number of elses
if( statement instanceof IASTIfStatement )
return visitIfStatement( (IASTIfStatement) statement, action );
if( action.processStatements ){
switch( action.processStatement( statement ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1333,11 +1302,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitExpression(IASTExpression expression, CPPBaseVisitorAction action) {
public boolean visitExpression(IASTExpression expression, BaseVisitorAction action) {
if( action.processExpressions ){
switch( action.processExpression( expression ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1404,11 +1373,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitTypeId(IASTTypeId typeId, CPPBaseVisitorAction action) {
public boolean visitTypeId(IASTTypeId typeId, BaseVisitorAction action) {
if( action.processTypeIds ){
switch( action.processTypeId( typeId ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1422,11 +1391,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitInitializer(IASTInitializer initializer, CPPBaseVisitorAction action) {
public boolean visitInitializer(IASTInitializer initializer, BaseVisitorAction action) {
if( action.processInitializers ){
switch( action.processInitializer( initializer ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1449,11 +1418,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitEnumerator(IASTEnumerator enumerator, CPPBaseVisitorAction action) {
public boolean visitEnumerator(IASTEnumerator enumerator, BaseVisitorAction action) {
if( action.processEnumerators ){
switch( action.processEnumerator( enumerator ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1469,11 +1438,11 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitBaseSpecifier(ICPPASTBaseSpecifier specifier, CPPBaseVisitorAction action) {
if( action.processBaseSpecifiers ){
switch( action.processBaseSpecifier( specifier ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
public boolean visitBaseSpecifier(ICPPASTBaseSpecifier specifier, BaseVisitorAction action) {
if( action instanceof CPPBaseVisitorAction && ((CPPBaseVisitorAction)action).processBaseSpecifiers ){
switch( ((CPPBaseVisitorAction)action).processBaseSpecifier( specifier ) ){
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1482,11 +1451,11 @@ public class CPPVisitor {
return true;
}
public static boolean visitParameterDeclaration( IASTParameterDeclaration parameterDeclaration, CPPBaseVisitorAction action ){
public boolean visitParameterDeclaration( IASTParameterDeclaration parameterDeclaration, BaseVisitorAction action ){
if( action.processParameterDeclarations ){
switch( action.processParameterDeclaration( parameterDeclaration ) ){
case CPPBaseVisitorAction.PROCESS_ABORT : return false;
case CPPBaseVisitorAction.PROCESS_SKIP : return true;
case BaseVisitorAction.PROCESS_ABORT : return false;
case BaseVisitorAction.PROCESS_SKIP : return true;
default : break;
}
}
@ -1501,7 +1470,7 @@ public class CPPVisitor {
* @param action
* @return
*/
public static boolean visitTemplateParameter(ICPPASTTemplateParameter parameter, CPPBaseVisitorAction action) {
public boolean visitTemplateParameter(ICPPASTTemplateParameter parameter, BaseVisitorAction action) {
return true;
}
@ -1857,7 +1826,7 @@ public class CPPVisitor {
public static IASTProblem[] getProblems(IASTTranslationUnit tu) {
CollectProblemsAction action = new CollectProblemsAction();
visitTranslationUnit(tu, action);
tu.getVisitor().visitTranslationUnit(action);
return action.getProblems();
}
@ -1869,13 +1838,13 @@ public class CPPVisitor {
*/
public static IASTName[] getReferences(IASTTranslationUnit tu, IBinding binding) {
CollectReferencesAction action = new CollectReferencesAction( binding );
visitTranslationUnit( tu, action );
tu.getVisitor().visitTranslationUnit( action );
return action.getReferences();
}
public static IASTName[] getDeclarations( IASTTranslationUnit tu, IBinding binding ){
CollectDeclarationsAction action = new CollectDeclarationsAction( binding );
visitTranslationUnit( tu, action );
tu.getVisitor().visitTranslationUnit( action );
return action.getDeclarations();
}
}

View file

@ -37,8 +37,8 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionTryBlockDeclarator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisitor.CPPBaseVisitorAction;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.CPPBaseVisitorAction;
import org.eclipse.cdt.internal.core.parser.scanner2.LocationMap.ASTInclusionStatement;
import org.eclipse.core.runtime.IProgressMonitor;

View file

@ -32,8 +32,8 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator;
import org.eclipse.cdt.core.dom.ast.c.ICASTDesignator;
import org.eclipse.cdt.core.dom.ast.c.ICASTVisitor.CBaseVisitorAction;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction;
import org.eclipse.cdt.internal.core.parser.scanner2.LocationMap.ASTInclusionStatement;
import org.eclipse.core.runtime.IProgressMonitor;

View file

@ -32,8 +32,10 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
import org.eclipse.cdt.core.dom.ast.c.ICASTDesignator;
import org.eclipse.cdt.core.dom.ast.c.ICASTVisitor.CBaseVisitorAction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisitor.CPPBaseVisitorAction;
import org.eclipse.cdt.core.filetype.ICFileType;
import org.eclipse.cdt.core.filetype.ICFileTypeConstants;
import org.eclipse.cdt.core.model.CModelException;
@ -41,10 +43,6 @@ import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.core.parser.ParserUtil;
import org.eclipse.cdt.core.parser.ast.IASTEnumerator;
import org.eclipse.cdt.core.resources.FileStorage;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.CPPBaseVisitorAction;
import org.eclipse.cdt.internal.ui.editor.CEditor;
import org.eclipse.cdt.internal.ui.util.EditorUtility;
import org.eclipse.cdt.ui.actions.CustomFiltersActionGroup;
@ -358,10 +356,10 @@ public class DOMAST extends ViewPart {
start=System.currentTimeMillis();
if (lang == ParserLanguage.CPP) {
action = new CPPPopulateASTViewAction(tu, monitor);
CPPVisitor.visitTranslationUnit(tu, (CPPBaseVisitorAction) action);
tu.getVisitor().visitTranslationUnit( (CPPBaseVisitorAction) action);
} else {
action = new CPopulateASTViewAction(tu, monitor);
CVisitor.visitTranslationUnit(tu, (CBaseVisitorAction) action);
tu.getVisitor().visitTranslationUnit( (CBaseVisitorAction) action);
}
monitor.worked(2);
System.out.println("[DOM AST View] done " + GENERATING_INITIAL_TREE + ": " + (System.currentTimeMillis()- start) );

View file

@ -276,11 +276,11 @@ public class FindIASTNameTarget implements IFindReplaceTarget, IFindReplaceTarge
if (matchingNames == null && tu != null) {
if (lang == ParserLanguage.CPP) {
CPPNameCollector col = new CPPNameCollector(findString, caseSensitive, wholeWord, regExSearch);
CPPVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit(col);
matchingNames = col.getNameArray(tu.getAllPreprocessorStatements());
} else {
CNameCollector col = new CNameCollector(findString, caseSensitive, wholeWord, regExSearch);
CVisitor.visitTranslationUnit(tu, col);
tu.getVisitor().visitTranslationUnit(col);
matchingNames = col.getNameArray(tu.getAllPreprocessorStatements());
}
}