1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Further restructuring.

This commit is contained in:
John Camelon 2003-07-07 13:46:16 +00:00
parent 8b844d54f1
commit 91794dcff9
47 changed files with 369 additions and 243 deletions

View file

@ -1,3 +1,6 @@
2003-07-07 John Camelon
Update ClassDeclarationPatternTests::testBug39652().
2003-07-04 John Camelon 2003-07-04 John Camelon
Moved testBug39652() from failed search tests to ClassDeclarationPatternTests. Moved testBug39652() from failed search tests to ClassDeclarationPatternTests.

View file

@ -17,7 +17,7 @@ import java.util.Map;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.internal.core.parser.ast.full.ASTCompilationUnit; import org.eclipse.cdt.internal.core.parser.ast.full.ASTCompilationUnit;
import org.eclipse.cdt.internal.core.parser.ast.full.IASTFCompilationUnit; import org.eclipse.cdt.internal.core.parser.ast.full.IASTFCompilationUnit;
import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
@ -266,10 +266,10 @@ public class ParserSymbolTableTest extends TestCase {
IDerivableContainerSymbol c = table.newDerivableContainerSymbol("C"); IDerivableContainerSymbol c = table.newDerivableContainerSymbol("C");
IDerivableContainerSymbol a = table.newDerivableContainerSymbol("A"); IDerivableContainerSymbol a = table.newDerivableContainerSymbol("A");
a.addParent( c, true, AccessVisibility.PUBLIC ); a.addParent( c, true, ASTAccessVisibility.PUBLIC );
IDerivableContainerSymbol b = table.newDerivableContainerSymbol("B"); IDerivableContainerSymbol b = table.newDerivableContainerSymbol("B");
b.addParent( c, true, AccessVisibility.PUBLIC ); b.addParent( c, true, ASTAccessVisibility.PUBLIC );
decl.addParent( a ); decl.addParent( a );
decl.addParent( b ); decl.addParent( b );

View file

@ -96,13 +96,13 @@ public class ClassDeclarationPatternTests extends TestCase implements ICSearchCo
initialize( pattern ); initialize( pattern );
matchLocator.locateMatches( new String[] { cppPath }, null, null ); matchLocator.locateMatches( new String[] { cppPath }, null, null );
matches = resultCollector.getMatches(); matches = resultCollector.getMatches();
assertTrue( matches == null ); assertTrue( matches != null );
pattern = CSearchPattern.createPattern( "NS::B::A", TYPE, DECLARATIONS, EXACT_MATCH, true ); pattern = CSearchPattern.createPattern( "NS::B::A", TYPE, DECLARATIONS, EXACT_MATCH, true );
initialize( pattern ); initialize( pattern );
matchLocator.locateMatches( new String[] { cppPath }, null, null ); matchLocator.locateMatches( new String[] { cppPath }, null, null );
matches = resultCollector.getMatches(); matches = resultCollector.getMatches();
assertTrue( matches == null ); assertTrue( matches != null );
} }
public void failingtestMatchStruct(){ public void failingtestMatchStruct(){

View file

@ -9,7 +9,6 @@ import org.eclipse.cdt.core.parser.IToken;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTConstructor;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTField;
@ -1178,13 +1177,6 @@ public class DOMBuilder implements IParserCallback, ISourceElementRequestor
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptConstructor(org.eclipse.cdt.core.parser.ast.IASTConstructor)
*/
public void acceptConstructor(IASTConstructor constructor) {
// TODO Auto-generated method stub
}
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)

View file

@ -13,7 +13,7 @@ package org.eclipse.cdt.internal.core.search.indexing;
import java.io.IOException; import java.io.IOException;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.search.ICSearchConstants; import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.internal.core.index.IDocument; import org.eclipse.cdt.internal.core.index.IDocument;
@ -33,15 +33,15 @@ public abstract class AbstractIndexer implements IIndexer, IIndexConstants, ICSe
} }
public void addClassSpecifier(IASTClassSpecifier classSpecification){ public void addClassSpecifier(IASTClassSpecifier classSpecification){
if (classSpecification.getClassKind().equals(ClassKind.CLASS)) if (classSpecification.getClassKind().equals(ASTClassKind.CLASS))
{ {
this.output.addRef(encodeTypeEntry(classSpecification.getName().toCharArray(),CLASS)); this.output.addRef(encodeTypeEntry(classSpecification.getName().toCharArray(),CLASS));
} }
else if (classSpecification.getClassKind().equals(ClassKind.STRUCT)) else if (classSpecification.getClassKind().equals(ASTClassKind.STRUCT))
{ {
this.output.addRef(encodeTypeEntry(classSpecification.getName().toCharArray(),STRUCT)); this.output.addRef(encodeTypeEntry(classSpecification.getName().toCharArray(),STRUCT));
} }
else if (classSpecification.getClassKind().equals(ClassKind.UNION)) else if (classSpecification.getClassKind().equals(ASTClassKind.UNION))
{ {
this.output.addRef(encodeTypeEntry(classSpecification.getName().toCharArray(),UNION)); this.output.addRef(encodeTypeEntry(classSpecification.getName().toCharArray(),UNION));
} }

View file

@ -23,7 +23,6 @@ import org.eclipse.cdt.core.parser.IToken;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTConstructor;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTField;
@ -254,14 +253,6 @@ public class SourceIndexerRequestor implements IParserCallback,ISourceElementReq
//System.out.println("acceptField"); //System.out.println("acceptField");
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptConstructor(org.eclipse.cdt.core.parser.ast.IASTConstructor)
*/
public void acceptConstructor(IASTConstructor constructor) {
// TODO Auto-generated method stub
//System.out.println("acceptConstructor");
}
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptClassReference(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier, int) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptClassReference(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier, int)
*/ */

View file

@ -1,3 +1,7 @@
2003-07-07 John Camelon
Bug 39652 - AST: Nested Classes incorrectly report null qualified Names
Fuller specification of Field/Method interfaces.
2003-07-04 John Camelon 2003-07-04 John Camelon
Fixed NPE in Parser::declarator(). Fixed NPE in Parser::declarator().
Bug 39652 - AST: Nested Classes incorrectly report null qualified Names Bug 39652 - AST: Nested Classes incorrectly report null qualified Names

View file

@ -13,7 +13,6 @@ package org.eclipse.cdt.core.parser;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTConstructor;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTField;
@ -65,7 +64,6 @@ public interface ISourceElementRequestor {
public void enterMethodBody( IASTMethod method ); public void enterMethodBody( IASTMethod method );
public void exitMethodBody( IASTMethod method ); public void exitMethodBody( IASTMethod method );
public void acceptField( IASTField field ); public void acceptField( IASTField field );
public void acceptConstructor( IASTConstructor constructor );
public void acceptClassReference( IASTClassSpecifier classSpecifier, int referenceOffset ); public void acceptClassReference( IASTClassSpecifier classSpecifier, int referenceOffset );

View file

@ -16,13 +16,13 @@ import org.eclipse.cdt.core.parser.Enum;
* @author jcamelon * @author jcamelon
* *
*/ */
public class AccessVisibility extends Enum { public class ASTAccessVisibility extends Enum {
public static final AccessVisibility PUBLIC = new AccessVisibility( 1 ); public static final ASTAccessVisibility PUBLIC = new ASTAccessVisibility( 1 );
public static final AccessVisibility PROTECTED = new AccessVisibility( 2 ); public static final ASTAccessVisibility PROTECTED = new ASTAccessVisibility( 2 );
public static final AccessVisibility PRIVATE = new AccessVisibility( 3 ); public static final ASTAccessVisibility PRIVATE = new ASTAccessVisibility( 3 );
private AccessVisibility( int constant) private ASTAccessVisibility( int constant)
{ {
super( constant ); super( constant );
} }

View file

@ -16,14 +16,14 @@ import org.eclipse.cdt.core.parser.Enum;
* @author jcamelon * @author jcamelon
* *
*/ */
public class ClassKind extends Enum { public class ASTClassKind extends Enum {
public final static ClassKind CLASS = new ClassKind( 1 ); public final static ASTClassKind CLASS = new ASTClassKind( 1 );
public final static ClassKind STRUCT = new ClassKind( 2 ); public final static ASTClassKind STRUCT = new ASTClassKind( 2 );
public final static ClassKind UNION = new ClassKind( 3 ); public final static ASTClassKind UNION = new ASTClassKind( 3 );
public final static ClassKind ENUM = new ClassKind( 4 ); public final static ASTClassKind ENUM = new ASTClassKind( 4 );
private ClassKind( int value ) private ASTClassKind( int value )
{ {
super( value ); super( value );
} }

View file

@ -0,0 +1,37 @@
/**********************************************************************
* Copyright (c) 2002,2003 Rational Software Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.core.parser.ast;
import org.eclipse.cdt.core.parser.Enum;
/**
* @author jcamelon
*
*/
public class ASTPointerOperator extends Enum
{
public static final ASTPointerOperator REFERENCE = new ASTPointerOperator( 0 );
public static final ASTPointerOperator POINTER = new ASTPointerOperator( 1 );
public static final ASTPointerOperator CONST_POINTER = new ASTPointerOperator( 2 );
public static final ASTPointerOperator VOLATILE_POINTER = new ASTPointerOperator( 3 );
public static final ASTPointerOperator POINTER_TO_FUNCTION = new ASTPointerOperator( 4 );
public static final ASTPointerOperator CONST_POINTER_TO_FUNCTION = new ASTPointerOperator( 5 );
public static final ASTPointerOperator VOLATILE_POINTER_TO_FUNCTION = new ASTPointerOperator( 6 );
/**
* @param enumValue
*/
protected ASTPointerOperator(int enumValue)
{
super(enumValue);
}
}

View file

@ -16,15 +16,15 @@ import org.eclipse.cdt.core.parser.Enum;
* @author jcamelon * @author jcamelon
* *
*/ */
public class TemplateDeclarationType extends Enum { public class ASTTemplateDeclarationType extends Enum {
public static final TemplateDeclarationType CLASS = new TemplateDeclarationType(1); public static final ASTTemplateDeclarationType CLASS = new ASTTemplateDeclarationType(1);
public static final TemplateDeclarationType FUNCTION = new TemplateDeclarationType( 2 ); public static final ASTTemplateDeclarationType FUNCTION = new ASTTemplateDeclarationType( 2 );
public static final TemplateDeclarationType MEMBERCLASS = new TemplateDeclarationType( 3 ); public static final ASTTemplateDeclarationType MEMBERCLASS = new ASTTemplateDeclarationType( 3 );
public static final TemplateDeclarationType METHOD = new TemplateDeclarationType( 4 ); public static final ASTTemplateDeclarationType METHOD = new ASTTemplateDeclarationType( 4 );
public static final TemplateDeclarationType FIELD = new TemplateDeclarationType( 5 ); public static final ASTTemplateDeclarationType FIELD = new ASTTemplateDeclarationType( 5 );
private TemplateDeclarationType( int t ) private ASTTemplateDeclarationType( int t )
{ {
super( t ); super( t );
} }

View file

@ -0,0 +1,23 @@
/**********************************************************************
* Copyright (c) 2002,2003 Rational Software Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.core.parser.ast;
import java.util.List;
/**
* @author jcamelon
*
*/
public interface IASTAbstractDeclarator
{
public IASTTypeSpecifier getTypeSpecifier();
public List getPointerOperators();
}

View file

@ -17,7 +17,7 @@ package org.eclipse.cdt.core.parser.ast;
*/ */
public interface IASTBaseSpecifier { public interface IASTBaseSpecifier {
public AccessVisibility getAccess(); public ASTAccessVisibility getAccess();
public boolean isVirtual(); public boolean isVirtual();
public IASTClassSpecifier getParent(); public IASTClassSpecifier getParent();

View file

@ -18,7 +18,7 @@ import org.eclipse.cdt.core.parser.Enum;
* @author jcamelon * @author jcamelon
* *
*/ */
public interface IASTClassSpecifier extends IASTTypeSpecifier, IASTScope, IASTOffsetableNamedElement, IASTTemplatedDeclaration { public interface IASTClassSpecifier extends IASTTypeSpecifier, IASTScope, IASTOffsetableNamedElement, IASTTemplatedDeclaration, IASTQualifiedNameElement {
public class ClassNameType extends Enum { public class ClassNameType extends Enum {
@ -33,12 +33,10 @@ public interface IASTClassSpecifier extends IASTTypeSpecifier, IASTScope, IASTOf
public ClassNameType getClassNameType(); public ClassNameType getClassNameType();
public ClassKind getClassKind(); public ASTClassKind getClassKind();
public Iterator getBaseClauses(); public Iterator getBaseClauses();
public AccessVisibility getCurrentVisibilityMode(); public ASTAccessVisibility getCurrentVisibilityMode();
public String[] getFullyQualifiedName();
} }

View file

@ -18,6 +18,6 @@ package org.eclipse.cdt.core.parser.ast;
public interface IASTElaboratedTypeSpecifier extends IASTTypeSpecifier, IASTOffsetableElement { public interface IASTElaboratedTypeSpecifier extends IASTTypeSpecifier, IASTOffsetableElement {
public String getTypeName(); public String getTypeName();
public ClassKind getClassKind(); public ASTClassKind getClassKind();
} }

View file

@ -16,7 +16,7 @@ import org.eclipse.cdt.core.parser.Backtrack;
import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ITokenDuple;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
import org.eclipse.cdt.internal.core.parser.IASTArrayModifier; import org.eclipse.cdt.internal.core.parser.ast.IASTArrayModifier;
/** /**
* @author jcamelon * @author jcamelon
@ -55,9 +55,9 @@ public interface IASTFactory {
public IASTClassSpecifier createClassSpecifier( IASTScope scope, public IASTClassSpecifier createClassSpecifier( IASTScope scope,
String name, String name,
ClassKind kind, ASTClassKind kind,
ClassNameType type, ClassNameType type,
AccessVisibility access, ASTAccessVisibility access,
IASTTemplateDeclaration ownerTemplateDeclaration, int startingOffset, int nameOffset ); IASTTemplateDeclaration ownerTemplateDeclaration, int startingOffset, int nameOffset );
/** /**
@ -66,9 +66,9 @@ public interface IASTFactory {
* @param visibility * @param visibility
* @param string * @param string
*/ */
public void addBaseSpecifier(IASTClassSpecifier astClassSpec, boolean isVirtual, AccessVisibility visibility, String string); public void addBaseSpecifier(IASTClassSpecifier astClassSpec, boolean isVirtual, ASTAccessVisibility visibility, String string);
public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(ClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset ); public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(ASTClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset );
public IASTEnumerationSpecifier createEnumerationSpecifier(String name, int startingOffset, int nameOffset ); public IASTEnumerationSpecifier createEnumerationSpecifier(String name, int startingOffset, int nameOffset );
public void addEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int endingOffset); public void addEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int endingOffset);

View file

@ -14,6 +14,6 @@ package org.eclipse.cdt.core.parser.ast;
* @author jcamelon * @author jcamelon
* *
*/ */
public interface IASTField { public interface IASTField extends IASTVariable {
} }

View file

@ -15,5 +15,11 @@ package org.eclipse.cdt.core.parser.ast;
* *
*/ */
public interface IASTFunction { public interface IASTFunction {
public boolean isInline();
public boolean isFriend();
public boolean isStatic();
public IASTAbstractDeclarator getReturnType();
} }

View file

@ -14,6 +14,12 @@ package org.eclipse.cdt.core.parser.ast;
* @author jcamelon * @author jcamelon
* *
*/ */
public interface IASTMethod { public interface IASTMethod extends IASTFunction {
public boolean isVirtual();
public boolean isExplicit();
public boolean isConstructor();
public boolean isDestructor();
} }

View file

@ -14,6 +14,6 @@ package org.eclipse.cdt.core.parser.ast;
* @author jcamelon * @author jcamelon
* *
*/ */
public interface IASTNamespaceDefinition extends IASTOffsetableNamedElement, IASTScope, IASTDeclaration { public interface IASTNamespaceDefinition extends IASTOffsetableNamedElement, IASTScope, IASTDeclaration, IASTQualifiedNameElement {
} }

View file

@ -14,6 +14,7 @@ package org.eclipse.cdt.core.parser.ast;
* @author jcamelon * @author jcamelon
* *
*/ */
public interface IASTConstructor { public interface IASTQualifiedNameElement
{
public String[] getFullyQualifiedName();
} }

View file

@ -18,7 +18,7 @@ import java.util.Iterator;
*/ */
public interface IASTTemplateDeclaration { public interface IASTTemplateDeclaration {
public TemplateDeclarationType getTemplateDeclarationType(); public ASTTemplateDeclarationType getTemplateDeclarationType();
public Iterator getTemplateParameters(); public Iterator getTemplateParameters();
} }

View file

@ -16,6 +16,6 @@ package org.eclipse.cdt.core.parser.ast;
*/ */
public interface IASTTemplateInstantiation { public interface IASTTemplateInstantiation {
public TemplateDeclarationType getTemplateDeclarationType(); public ASTTemplateDeclarationType getTemplateDeclarationType();
public IASTTemplateDeclaration getTemplateDeclaration(); public IASTTemplateDeclaration getTemplateDeclaration();
} }

View file

@ -16,6 +16,6 @@ package org.eclipse.cdt.core.parser.ast;
*/ */
public interface IASTTemplateSpecialization { public interface IASTTemplateSpecialization {
public TemplateDeclarationType getTemplateDeclarationType(); public ASTTemplateDeclarationType getTemplateDeclarationType();
public IASTTemplateDeclaration getTemplateDeclaration(); public IASTTemplateDeclaration getTemplateDeclaration();
} }

View file

@ -16,4 +16,13 @@ package org.eclipse.cdt.core.parser.ast;
*/ */
public interface IASTVariable { public interface IASTVariable {
public boolean isAuto();
public boolean isRegister();
public boolean isStatic();
public boolean isExtern();
public boolean isMutable();
public IASTAbstractDeclarator getAbstractDeclaration();
public String getName();
public IASTInitializerClause getInitializerClause();
} }

View file

@ -27,7 +27,7 @@ import org.eclipse.cdt.core.parser.ast.IASTVariable;
* @author jcamelon * @author jcamelon
* *
*/ */
public class DeclarationWrapper public class DeclarationWrapper implements IDeclaratorOwner
{ {
private final IASTScope scope; private final IASTScope scope;
private IASTTypeSpecifier typeSpecifier; private IASTTypeSpecifier typeSpecifier;
@ -285,9 +285,9 @@ public class DeclarationWrapper
declarators.add( d ); declarators.add( d );
} }
public List getDeclarators() public Iterator getDeclarators()
{ {
return Collections.unmodifiableList( declarators ); return Collections.unmodifiableList( declarators ).iterator();
} }
/** /**
@ -342,7 +342,7 @@ public class DeclarationWrapper
*/ */
private IASTMethod createMethodASTNode(Declarator declarator) private IASTMethod createMethodASTNode(Declarator declarator)
{ {
// TODO Auto-generated method stub
return null; return null;
} }
/** /**
@ -372,6 +372,13 @@ public class DeclarationWrapper
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.IDeclaratorOwner#getDeclarationWrapper()
*/
public DeclarationWrapper getDeclarationWrapper()
{
return this;
}
} }

View file

@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.parser;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator;
import java.util.List; import java.util.List;
import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ITokenDuple;
@ -19,19 +20,19 @@ import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer;
import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification; import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause;
import org.eclipse.cdt.internal.core.parser.ast.*;
/** /**
* @author jcamelon * @author jcamelon
* *
*/ */
public class Declarator implements IParameterCollection public class Declarator implements IParameterCollection, IDeclaratorOwner
{ {
private boolean isFunction; private boolean isFunction;
private boolean hasFunctionBody; private boolean hasFunctionBody;
private IASTExpression constructorExpression; private IASTExpression constructorExpression;
private boolean pureVirtual = false; private boolean pureVirtual = false;
private final DeclarationWrapper owner1; private final IDeclaratorOwner owner;
private final Declarator owner2;
private Declarator ownedDeclarator = null; private Declarator ownedDeclarator = null;
private String name = ""; private String name = "";
private IASTInitializerClause initializerClause = null; private IASTInitializerClause initializerClause = null;
@ -48,17 +49,11 @@ public class Declarator implements IParameterCollection
private int nameStartOffset, nameEndOffset; private int nameStartOffset, nameEndOffset;
public Declarator( DeclarationWrapper owner ) public Declarator( IDeclaratorOwner owner )
{ {
this.owner1 = owner; this.owner = owner;
owner2 = null;
} }
public Declarator( Declarator owner )
{
owner2 = owner;
owner1 = null;
}
/** /**
* @return * @return
*/ */
@ -86,9 +81,9 @@ public class Declarator implements IParameterCollection
/** /**
* @return * @return
*/ */
public DeclarationWrapper getOwner() public IDeclaratorOwner getOwner()
{ {
return owner1; return owner;
} }
/** /**
@ -115,14 +110,6 @@ public class Declarator implements IParameterCollection
nameStartOffset = i; nameStartOffset = i;
} }
/**
* @return
*/
public Declarator getOwnerDeclarator()
{
return owner2;
}
/** /**
* @return * @return
*/ */
@ -354,4 +341,27 @@ public class Declarator implements IParameterCollection
isFunction = b; isFunction = b;
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.IDeclaratorOwner#getDeclarators()
*/
public Iterator getDeclarators()
{
List l = new ArrayList();
if( ownedDeclarator != null )
l.add( ownedDeclarator );
return l.iterator();
}
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.IDeclaratorOwner#getDeclarationWrapper()
*/
public DeclarationWrapper getDeclarationWrapper()
{
Declarator d = this;
while( d.getOwner() instanceof Declarator )
d = (Declarator)d.getOwner();
return (DeclarationWrapper)d.getOwner();
}
} }

View file

@ -0,0 +1,23 @@
/**********************************************************************
* Copyright (c) 2002,2003 Rational Software Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.internal.core.parser;
import java.util.Iterator;
/**
* @author jcamelon
*
*/
public interface IDeclaratorOwner
{
public Iterator getDeclarators();
public DeclarationWrapper getDeclarationWrapper();
}

View file

@ -8,7 +8,6 @@ import org.eclipse.cdt.core.parser.IToken;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTConstructor;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTField;
@ -163,12 +162,6 @@ public class NullSourceElementRequestor implements ISourceElementRequestor, IPar
public void acceptField(IASTField field) { public void acceptField(IASTField field) {
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptConstructor(org.eclipse.cdt.core.parser.ast.IASTConstructor)
*/
public void acceptConstructor(IASTConstructor constructor) {
}
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
*/ */

View file

@ -25,8 +25,8 @@ import org.eclipse.cdt.core.parser.ITranslationResult;
import org.eclipse.cdt.core.parser.ParserFactory; import org.eclipse.cdt.core.parser.ParserFactory;
import org.eclipse.cdt.core.parser.ParserMode; import org.eclipse.cdt.core.parser.ParserMode;
import org.eclipse.cdt.core.parser.ScannerException; import org.eclipse.cdt.core.parser.ScannerException;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
@ -43,6 +43,7 @@ import org.eclipse.cdt.core.parser.ast.IASTUsingDirective;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType;
import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind;
import org.eclipse.cdt.internal.core.model.Util; import org.eclipse.cdt.internal.core.model.Util;
import org.eclipse.cdt.internal.core.parser.ast.*;
/** /**
@ -1668,21 +1669,21 @@ public class Parser implements IParser
// this is an elaborated class specifier // this is an elaborated class specifier
Object elab = null; Object elab = null;
IToken t = consume(); IToken t = consume();
ClassKind eck = null; ASTClassKind eck = null;
switch( t.getType() ) switch( t.getType() )
{ {
case Token.t_class: case Token.t_class:
eck = ClassKind.CLASS; eck = ASTClassKind.CLASS;
break; break;
case Token.t_struct: case Token.t_struct:
eck = ClassKind.STRUCT; eck = ASTClassKind.STRUCT;
break; break;
case Token.t_union: case Token.t_union:
eck = ClassKind.UNION; eck = ASTClassKind.UNION;
break; break;
case Token.t_enum: case Token.t_enum:
eck = ClassKind.ENUM; eck = ASTClassKind.ENUM;
break; break;
default: default:
break; break;
@ -1922,7 +1923,7 @@ public class Parser implements IParser
protected DeclaratorDuple initDeclarator(Object owner, DeclarationWrapper sdw) protected DeclaratorDuple initDeclarator(Object owner, DeclarationWrapper sdw)
throws Backtrack throws Backtrack
{ {
DeclaratorDuple duple = declarator(owner, sdw, null); DeclaratorDuple duple = declarator(owner, sdw);
Object declarator = duple.getObject(); Object declarator = duple.getObject();
Declarator d = duple.getDeclarator(); Declarator d = duple.getDeclarator();
@ -2076,21 +2077,17 @@ public class Parser implements IParser
* @return declarator that this parsing produced. * @return declarator that this parsing produced.
* @throws Backtrack request a backtrack * @throws Backtrack request a backtrack
*/ */
protected DeclaratorDuple declarator(Object container, DeclarationWrapper sdw, Declarator owningDeclarator) throws Backtrack protected DeclaratorDuple declarator(Object container, IDeclaratorOwner owner) throws Backtrack
{ {
Object declarator = null; Object declarator = null;
Declarator d = null; Declarator d = null;
DeclarationWrapper sdw = owner.getDeclarationWrapper();
overallLoop: overallLoop:
do do
{ {
declarator = null; declarator = null;
d = null; d = new Declarator( owner );
if( sdw != null )
d = new Declarator( sdw );
else if( owningDeclarator != null )
d = new Declarator( owningDeclarator );
try try
{ {
@ -2113,7 +2110,7 @@ public class Parser implements IParser
if (LT(1) == IToken.tLPAREN) if (LT(1) == IToken.tLPAREN)
{ {
consume(); consume();
DeclaratorDuple subDeclarator = declarator(declarator, null, d); DeclaratorDuple subDeclarator = declarator(declarator, d);
consume(IToken.tRPAREN); consume(IToken.tRPAREN);
try try
{ {
@ -2354,23 +2351,12 @@ public class Parser implements IParser
try try
{ {
do do
{ {
IASTScope s = null;
if( sdw != null )
s = sdw.getScope();
else
{
Declarator i = owningDeclarator;
while( i.getOwnerDeclarator() != null )
i = i.getOwnerDeclarator();
s = i.getOwner().getScope();
}
simpleDeclaration( simpleDeclaration(
oldKRParameterDeclarationClause, oldKRParameterDeclarationClause,
false, false,
true, true,
s); sdw.getScope());
} }
while (LT(1) != IToken.tLBRACE); while (LT(1) != IToken.tLBRACE);
} }
@ -2495,8 +2481,9 @@ public class Parser implements IParser
} }
} }
while (true); while (true);
if( sdw == null )
owningDeclarator.setOwnedDeclarator(d); if( d.getOwner() instanceof Declarator )
((Declarator)d.getOwner()).setOwnedDeclarator(d);
return new DeclaratorDuple( declarator, d ); return new DeclaratorDuple( declarator, d );
} }
@ -2849,8 +2836,8 @@ public class Parser implements IParser
throws Backtrack throws Backtrack
{ {
ClassNameType nameType = ClassNameType.IDENTIFIER; ClassNameType nameType = ClassNameType.IDENTIFIER;
ClassKind classKind = null; ASTClassKind classKind = null;
AccessVisibility access = AccessVisibility.PUBLIC; ASTAccessVisibility access = ASTAccessVisibility.PUBLIC;
IToken classKey = null; IToken classKey = null;
IToken mark = mark(); IToken mark = mark();
// class key // class key
@ -2858,16 +2845,16 @@ public class Parser implements IParser
{ {
case IToken.t_class : case IToken.t_class :
classKey = consume(); classKey = consume();
classKind = ClassKind.CLASS; classKind = ASTClassKind.CLASS;
access = AccessVisibility.PRIVATE; access = ASTAccessVisibility.PRIVATE;
break; break;
case IToken.t_struct : case IToken.t_struct :
classKey = consume(); classKey = consume();
classKind = ClassKind.STRUCT; classKind = ASTClassKind.STRUCT;
break; break;
case IToken.t_union : case IToken.t_union :
classKey = consume(); classKey = consume();
classKind = ClassKind.UNION; classKind = ASTClassKind.UNION;
break; break;
default : default :
throw backtrack; throw backtrack;
@ -3008,7 +2995,7 @@ public class Parser implements IParser
{ {
} }
boolean isVirtual = false; boolean isVirtual = false;
AccessVisibility visibility = AccessVisibility.PUBLIC; ASTAccessVisibility visibility = ASTAccessVisibility.PUBLIC;
ITokenDuple nameDuple = null; ITokenDuple nameDuple = null;
baseSpecifierLoop : for (;;) baseSpecifierLoop : for (;;)
{ {
@ -3046,10 +3033,10 @@ public class Parser implements IParser
catch (Exception e) catch (Exception e)
{ {
} }
visibility = AccessVisibility.PROTECTED; visibility = ASTAccessVisibility.PROTECTED;
break; break;
case IToken.t_private : case IToken.t_private :
visibility = AccessVisibility.PRIVATE; visibility = ASTAccessVisibility.PRIVATE;
try try
{ {
callback.baseSpecifierVisibility( callback.baseSpecifierVisibility(
@ -3080,7 +3067,7 @@ public class Parser implements IParser
visibility, visibility,
nameDuple.toString()); nameDuple.toString());
isVirtual = false; isVirtual = false;
visibility = AccessVisibility.PUBLIC; visibility = ASTAccessVisibility.PUBLIC;
nameDuple = null; nameDuple = null;
callback.baseSpecifierEnd(baseSpecifier); callback.baseSpecifierEnd(baseSpecifier);
baseSpecifier = baseSpecifier =

View file

@ -10,7 +10,7 @@
***********************************************************************/ ***********************************************************************/
package org.eclipse.cdt.internal.core.parser.ast; package org.eclipse.cdt.internal.core.parser.ast;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
@ -22,9 +22,9 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier {
private final IASTClassSpecifier baseClass; private final IASTClassSpecifier baseClass;
private final boolean isVirtual; private final boolean isVirtual;
private final AccessVisibility visibility; private final ASTAccessVisibility visibility;
public ASTBaseSpecifier( IASTClassSpecifier c, AccessVisibility a, boolean virtual ) public ASTBaseSpecifier( IASTClassSpecifier c, ASTAccessVisibility a, boolean virtual )
{ {
isVirtual = virtual; isVirtual = virtual;
baseClass = c; baseClass = c;
@ -34,7 +34,7 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getAccess() * @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getAccess()
*/ */
public AccessVisibility getAccess() { public ASTAccessVisibility getAccess() {
return visibility; return visibility;
} }

View file

@ -8,7 +8,7 @@
* Contributors: * Contributors:
* IBM Rational Software - Initial API and implementation * IBM Rational Software - Initial API and implementation
***********************************************************************/ ***********************************************************************/
package org.eclipse.cdt.internal.core.parser; package org.eclipse.cdt.internal.core.parser.ast;
/** /**
* @author jcamelon * @author jcamelon

View file

@ -12,8 +12,8 @@ package org.eclipse.cdt.internal.core.parser.ast.full;
import java.util.Iterator; import java.util.Iterator;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
@ -26,11 +26,11 @@ import org.eclipse.cdt.internal.core.parser.pst.ParserSymbolTable;
public class ASTClassSpecifier implements IASTFClassSpecifier, IPSTSymbolExtension { public class ASTClassSpecifier implements IASTFClassSpecifier, IPSTSymbolExtension {
private final IDerivableContainerSymbol symbol; private final IDerivableContainerSymbol symbol;
private final ClassKind classKind; private final ASTClassKind classKind;
private final ClassNameType type; private final ClassNameType type;
private final String name; private final String name;
public ASTClassSpecifier( IDerivableContainerSymbol symbol, String name, ClassNameType type, ClassKind kind ) public ASTClassSpecifier( IDerivableContainerSymbol symbol, String name, ClassNameType type, ASTClassKind kind )
{ {
this.name = name; this.name = name;
this.symbol = symbol; this.symbol = symbol;
@ -56,7 +56,7 @@ public class ASTClassSpecifier implements IASTFClassSpecifier, IPSTSymbolExtensi
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getClassKind() * @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getClassKind()
*/ */
public ClassKind getClassKind() { public ASTClassKind getClassKind() {
return classKind; return classKind;
} }
@ -137,7 +137,7 @@ public class ASTClassSpecifier implements IASTFClassSpecifier, IPSTSymbolExtensi
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getCurrentVisiblity() * @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getCurrentVisiblity()
*/ */
public AccessVisibility getCurrentVisibilityMode() { public ASTAccessVisibility getCurrentVisibilityMode() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }

View file

@ -108,5 +108,14 @@ public class ASTNamespaceDefinition implements IASTFNamespaceDefinition {
*/ */
public IASTScope getOwnerScope() { public IASTScope getOwnerScope() {
return (IPSTContainerExtension)symbol.getContainingSymbol().getASTNode(); return (IPSTContainerExtension)symbol.getContainingSymbol().getASTNode();
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement#getFullyQualifiedName()
*/
public String[] getFullyQualifiedName()
{
// TODO Auto-generated method stub
return null;
}
} }

View file

@ -16,8 +16,8 @@ import java.util.List;
import org.eclipse.cdt.core.parser.Backtrack; import org.eclipse.cdt.core.parser.Backtrack;
import org.eclipse.cdt.core.parser.IToken; import org.eclipse.cdt.core.parser.IToken;
import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ITokenDuple;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
@ -39,8 +39,8 @@ import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.SimpleType; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.SimpleType;
import org.eclipse.cdt.internal.core.parser.IASTArrayModifier;
import org.eclipse.cdt.internal.core.parser.ast.BaseASTFactory; import org.eclipse.cdt.internal.core.parser.ast.BaseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.IASTArrayModifier;
import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ParserSymbolTable; import org.eclipse.cdt.internal.core.parser.pst.ParserSymbolTable;
@ -165,7 +165,7 @@ public class FullParseASTFactory extends BaseASTFactory implements IASTFactory {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#createClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.ClassKind, org.eclipse.cdt.core.parser.ast.ClassNameType, org.eclipse.cdt.core.parser.ast.AccessVisibility, org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.ClassKind, org.eclipse.cdt.core.parser.ast.ClassNameType, org.eclipse.cdt.core.parser.ast.AccessVisibility, org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
*/ */
public IASTClassSpecifier createClassSpecifier(IASTScope scope, String name, ClassKind kind, ClassNameType type, AccessVisibility access, IASTTemplateDeclaration ownerTemplateDeclaration, int startingOffset, int nameOffset) { public IASTClassSpecifier createClassSpecifier(IASTScope scope, String name, ASTClassKind kind, ClassNameType type, ASTAccessVisibility access, IASTTemplateDeclaration ownerTemplateDeclaration, int startingOffset, int nameOffset) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@ -173,7 +173,7 @@ public class FullParseASTFactory extends BaseASTFactory implements IASTFactory {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#addBaseSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier, boolean, org.eclipse.cdt.core.parser.ast.AccessVisibility, java.lang.String) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#addBaseSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier, boolean, org.eclipse.cdt.core.parser.ast.AccessVisibility, java.lang.String)
*/ */
public void addBaseSpecifier(IASTClassSpecifier astClassSpec, boolean isVirtual, AccessVisibility visibility, String string) { public void addBaseSpecifier(IASTClassSpecifier astClassSpec, boolean isVirtual, ASTAccessVisibility visibility, String string) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@ -181,7 +181,7 @@ public class FullParseASTFactory extends BaseASTFactory implements IASTFactory {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#createElaboratedTypeSpecifier(org.eclipse.cdt.core.parser.ast.ClassKind, java.lang.String, int, int) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createElaboratedTypeSpecifier(org.eclipse.cdt.core.parser.ast.ClassKind, java.lang.String, int, int)
*/ */
public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(ClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset ) public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(ASTClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset )
{ {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;

View file

@ -10,7 +10,7 @@
***********************************************************************/ ***********************************************************************/
package org.eclipse.cdt.internal.core.parser.ast.quick; package org.eclipse.cdt.internal.core.parser.ast.quick;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
@ -20,11 +20,11 @@ import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
*/ */
public class ASTBaseSpecifier implements IASTBaseSpecifier { public class ASTBaseSpecifier implements IASTBaseSpecifier {
private final AccessVisibility visibility; private final ASTAccessVisibility visibility;
private final boolean isVirtual; private final boolean isVirtual;
private final IASTClassSpecifier parentClass; private final IASTClassSpecifier parentClass;
public ASTBaseSpecifier( IASTClassSpecifier classSpec, boolean v, AccessVisibility a ) public ASTBaseSpecifier( IASTClassSpecifier classSpec, boolean v, ASTAccessVisibility a )
{ {
parentClass = classSpec; parentClass = classSpec;
isVirtual = v; isVirtual = v;
@ -33,25 +33,22 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getAccess() * @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getAccess()
*/ */
public AccessVisibility getAccess() { public ASTAccessVisibility getAccess() {
// TODO Auto-generated method stub return visibility;
return null;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#isVirtual() * @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#isVirtual()
*/ */
public boolean isVirtual() { public boolean isVirtual() {
// TODO Auto-generated method stub return isVirtual;
return false;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getParent() * @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getParent()
*/ */
public IASTClassSpecifier getParent() { public IASTClassSpecifier getParent() {
// TODO Auto-generated method stub return parentClass;
return null;
} }
} }

View file

@ -12,15 +12,11 @@ package org.eclipse.cdt.internal.core.parser.ast.quick;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Stack;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
import org.eclipse.cdt.internal.core.parser.ast.NamedOffsets; import org.eclipse.cdt.internal.core.parser.ast.NamedOffsets;
@ -29,57 +25,33 @@ import org.eclipse.cdt.internal.core.parser.ast.NamedOffsets;
* *
*/ */
public class ASTClassSpecifier public class ASTClassSpecifier
extends ASTDeclaration extends ASTQualifiedNamedDeclaration
implements IASTQClassSpecifier, IASTQScope implements IASTQClassSpecifier, IASTQScope
{ {
public ASTClassSpecifier( public ASTClassSpecifier(
IASTScope scope, IASTScope scope,
String name, String name,
ClassKind kind, ASTClassKind kind,
ClassNameType type, ClassNameType type,
AccessVisibility access, ASTAccessVisibility access,
IASTTemplateDeclaration ownerTemplateDeclaration) IASTTemplateDeclaration ownerTemplateDeclaration)
{ {
super(scope); super(scope, name );
classNameType = type; classNameType = type;
classKind = kind; classKind = kind;
this.access = access; this.access = access;
this.name = name; this.name = name;
templateOwner = ownerTemplateDeclaration; templateOwner = ownerTemplateDeclaration;
Stack names = new Stack();
IASTScope parent = getOwnerScope();
names.push( name ); // push on our own name
while (parent != null)
{
if (parent instanceof IASTNamespaceDefinition
|| parent instanceof IASTClassSpecifier)
{
names.push(((IASTOffsetableNamedElement)parent).getName());
parent = ((IASTDeclaration)parent).getOwnerScope();
}
break;
}
if (names.size() != 0)
{
qualifiedNames = new String[names.size()];
int counter = 0;
while (!names.empty())
qualifiedNames[counter++] = (String)names.pop();
}
else
qualifiedNames = null;
} }
private final String[] qualifiedNames;
private IASTTemplateDeclaration templateOwner = null; private IASTTemplateDeclaration templateOwner = null;
private final String name; private final String name;
private List declarations = new ArrayList(); private List declarations = new ArrayList();
private List baseClauses = new ArrayList(); private List baseClauses = new ArrayList();
private AccessVisibility access; private ASTAccessVisibility access;
private NamedOffsets offsets = new NamedOffsets(); private NamedOffsets offsets = new NamedOffsets();
private final ClassNameType classNameType; private final ClassNameType classNameType;
private final ClassKind classKind; private final ASTClassKind classKind;
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getClassNameType() * @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getClassNameType()
*/ */
@ -90,7 +62,7 @@ public class ASTClassSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getClassKind() * @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getClassKind()
*/ */
public ClassKind getClassKind() public ASTClassKind getClassKind()
{ {
return classKind; return classKind;
} }
@ -104,7 +76,7 @@ public class ASTClassSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getCurrentVisiblity() * @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getCurrentVisiblity()
*/ */
public AccessVisibility getCurrentVisibilityMode() public ASTAccessVisibility getCurrentVisibilityMode()
{ {
return access; return access;
} }
@ -185,11 +157,4 @@ public class ASTClassSpecifier
{ {
baseClauses.add(baseSpecifier); baseClauses.add(baseSpecifier);
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTClassSpecifier#getFullyQualifiedName()
*/
public String[] getFullyQualifiedName()
{
return qualifiedNames;
}
} }

View file

@ -10,7 +10,7 @@
***********************************************************************/ ***********************************************************************/
package org.eclipse.cdt.internal.core.parser.ast.quick; package org.eclipse.cdt.internal.core.parser.ast.quick;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.internal.core.parser.ast.Offsets; import org.eclipse.cdt.internal.core.parser.ast.Offsets;
@ -23,14 +23,14 @@ public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier
private Offsets offsets = new Offsets(); private Offsets offsets = new Offsets();
private final String typeName; private final String typeName;
private final ClassKind classKind; private final ASTClassKind classKind;
/** /**
* @param elaboratedClassKind * @param elaboratedClassKind
* @param typeName * @param typeName
* @param startingOffset * @param startingOffset
* @param endOffset * @param endOffset
*/ */
public ASTElaboratedTypeSpecifier(ClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset) public ASTElaboratedTypeSpecifier(ASTClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset)
{ {
classKind = elaboratedClassKind; classKind = elaboratedClassKind;
this.typeName = typeName; this.typeName = typeName;
@ -47,7 +47,7 @@ public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier#getClassKind() * @see org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier#getClassKind()
*/ */
public ClassKind getClassKind() public ASTClassKind getClassKind()
{ {
return classKind; return classKind;
} }

View file

@ -23,14 +23,14 @@ import org.eclipse.cdt.internal.core.parser.ast.NamedOffsets;
* @author jcamelon * @author jcamelon
* *
*/ */
public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamespaceDefinition, IASTQScope { public class ASTNamespaceDefinition extends ASTQualifiedNamedDeclaration implements IASTNamespaceDefinition, IASTQScope {
private final String name; private final String name;
private NamedOffsets offsets = new NamedOffsets(); private NamedOffsets offsets = new NamedOffsets();
public ASTNamespaceDefinition( IASTScope scope, String name ) public ASTNamespaceDefinition( IASTScope scope, String name )
{ {
super( scope ); super( scope, name );
this.name = name; this.name = name;
} }
/* (non-Javadoc) /* (non-Javadoc)

View file

@ -0,0 +1,68 @@
/**********************************************************************
* Copyright (c) 2002,2003 Rational Software Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.internal.core.parser.ast.quick;
import java.util.Stack;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement;
import org.eclipse.cdt.core.parser.ast.IASTScope;
/**
* @author jcamelon
*
*/
public class ASTQualifiedNamedDeclaration extends ASTDeclaration
{
/**
* @param scope
*/
public ASTQualifiedNamedDeclaration(IASTScope scope, String name )
{
super(scope);
Stack names = new Stack();
IASTScope parent = getOwnerScope();
names.push( name ); // push on our own name
while (parent != null)
{
if (parent instanceof IASTNamespaceDefinition
|| parent instanceof IASTClassSpecifier )
{
names.push(((IASTOffsetableNamedElement)parent).getName());
parent = ((IASTDeclaration)parent).getOwnerScope();
}
else
break;
}
if (names.size() != 0)
{
qualifiedNames = new String[names.size()];
int counter = 0;
while (!names.empty())
qualifiedNames[counter++] = (String)names.pop();
}
else
qualifiedNames = null;
}
public String[] getFullyQualifiedName()
{
return qualifiedNames;
}
private final String[] qualifiedNames;
}

View file

@ -14,8 +14,8 @@ import java.util.List;
import org.eclipse.cdt.core.parser.Backtrack; import org.eclipse.cdt.core.parser.Backtrack;
import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ITokenDuple;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
@ -39,8 +39,8 @@ import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.SimpleType; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.SimpleType;
import org.eclipse.cdt.internal.core.parser.IASTArrayModifier;
import org.eclipse.cdt.internal.core.parser.ast.BaseASTFactory; import org.eclipse.cdt.internal.core.parser.ast.BaseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.IASTArrayModifier;
/** /**
* @author jcamelon * @author jcamelon
@ -99,7 +99,7 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#createClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.ClassKind, org.eclipse.cdt.core.parser.ast.ClassNameType, org.eclipse.cdt.core.parser.ast.AccessVisibility, org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.ClassKind, org.eclipse.cdt.core.parser.ast.ClassNameType, org.eclipse.cdt.core.parser.ast.AccessVisibility, org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
*/ */
public IASTClassSpecifier createClassSpecifier(IASTScope scope, String name, ClassKind kind, ClassNameType type, AccessVisibility access, IASTTemplateDeclaration ownerTemplateDeclaration, int startingOffset, int nameOffset) { public IASTClassSpecifier createClassSpecifier(IASTScope scope, String name, ASTClassKind kind, ClassNameType type, ASTAccessVisibility access, IASTTemplateDeclaration ownerTemplateDeclaration, int startingOffset, int nameOffset) {
IASTClassSpecifier spec = new ASTClassSpecifier( scope, name, kind, type, access, ownerTemplateDeclaration ); IASTClassSpecifier spec = new ASTClassSpecifier( scope, name, kind, type, access, ownerTemplateDeclaration );
spec.setStartingOffset( startingOffset ); spec.setStartingOffset( startingOffset );
spec.setNameOffset( nameOffset ); spec.setNameOffset( nameOffset );
@ -109,7 +109,7 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#addBaseSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier, boolean, org.eclipse.cdt.core.parser.ast.AccessVisibility, java.lang.String) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#addBaseSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier, boolean, org.eclipse.cdt.core.parser.ast.AccessVisibility, java.lang.String)
*/ */
public void addBaseSpecifier(IASTClassSpecifier astClassSpec, boolean isVirtual, AccessVisibility visibility, String string) { public void addBaseSpecifier(IASTClassSpecifier astClassSpec, boolean isVirtual, ASTAccessVisibility visibility, String string) {
IASTBaseSpecifier baseSpecifier = new ASTBaseSpecifier( astClassSpec, isVirtual, visibility ); IASTBaseSpecifier baseSpecifier = new ASTBaseSpecifier( astClassSpec, isVirtual, visibility );
((IASTQClassSpecifier)astClassSpec).addBaseClass(baseSpecifier); ((IASTQClassSpecifier)astClassSpec).addBaseClass(baseSpecifier);
} }
@ -117,7 +117,7 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#createElaboratedTypeSpecifier(org.eclipse.cdt.core.parser.ast.ClassKind, java.lang.String, int, int) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createElaboratedTypeSpecifier(org.eclipse.cdt.core.parser.ast.ClassKind, java.lang.String, int, int)
*/ */
public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(ClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset) public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(ASTClassKind elaboratedClassKind, String typeName, int startingOffset, int endOffset)
{ {
return new ASTElaboratedTypeSpecifier( elaboratedClassKind, typeName, startingOffset, endOffset ); return new ASTElaboratedTypeSpecifier( elaboratedClassKind, typeName, startingOffset, endOffset );
} }

View file

@ -18,7 +18,7 @@ package org.eclipse.cdt.internal.core.parser.pst;
import java.util.List; import java.util.List;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
/** /**
* @author aniefer * @author aniefer
@ -29,7 +29,7 @@ import org.eclipse.cdt.core.parser.ast.AccessVisibility;
public interface IDerivableContainerSymbol extends IContainerSymbol { public interface IDerivableContainerSymbol extends IContainerSymbol {
public void addParent( ISymbol parent ); public void addParent( ISymbol parent );
public void addParent( ISymbol parent, boolean virtual, AccessVisibility visibility ); public void addParent( ISymbol parent, boolean virtual, ASTAccessVisibility visibility );
public List getParents(); public List getParents();
public boolean hasParents(); public boolean hasParents();

View file

@ -22,7 +22,7 @@ import java.util.ListIterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.eclipse.cdt.core.parser.ast.AccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.internal.core.parser.ast.full.IPSTSymbolExtension; import org.eclipse.cdt.internal.core.parser.ast.full.IPSTSymbolExtension;
/** /**
@ -2337,9 +2337,9 @@ public class ParserSymbolTable {
} }
public void addParent( ISymbol parent ){ public void addParent( ISymbol parent ){
addParent( parent, false, AccessVisibility.PUBLIC ); addParent( parent, false, ASTAccessVisibility.PUBLIC );
} }
public void addParent( ISymbol parent, boolean virtual, AccessVisibility visibility ){ public void addParent( ISymbol parent, boolean virtual, ASTAccessVisibility visibility ){
if( _parentScopes == null ){ if( _parentScopes == null ){
_parentScopes = new LinkedList(); _parentScopes = new LinkedList();
} }
@ -3104,7 +3104,7 @@ public class ParserSymbolTable {
public class ParentWrapper implements IDerivableContainerSymbol.IParentSymbol public class ParentWrapper implements IDerivableContainerSymbol.IParentSymbol
{ {
public ParentWrapper( ISymbol p, boolean v, AccessVisibility s ){ public ParentWrapper( ISymbol p, boolean v, ASTAccessVisibility s ){
parent = p; parent = p;
isVirtual = v; isVirtual = v;
access = s; access = s;
@ -3128,11 +3128,11 @@ public class ParserSymbolTable {
private boolean isVirtual = false; private boolean isVirtual = false;
private ISymbol parent = null; private ISymbol parent = null;
private final AccessVisibility access; private final ASTAccessVisibility access;
/** /**
* @return * @return
*/ */
public AccessVisibility getAccess() { public ASTAccessVisibility getAccess() {
return access; return access;
} }

View file

@ -22,7 +22,7 @@ import org.eclipse.cdt.core.parser.IToken;
import org.eclipse.cdt.core.parser.ParserFactory; import org.eclipse.cdt.core.parser.ParserFactory;
import org.eclipse.cdt.core.parser.ParserMode; import org.eclipse.cdt.core.parser.ParserMode;
import org.eclipse.cdt.core.parser.ScannerException; import org.eclipse.cdt.core.parser.ScannerException;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.search.ICSearchConstants; import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchPattern; import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.internal.core.search.CharOperation; import org.eclipse.cdt.internal.core.search.CharOperation;
@ -146,15 +146,15 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte
} catch (ScannerException e) { } catch (ScannerException e) {
} }
ClassKind kind = null; ASTClassKind kind = null;
if( searchFor == CLASS ){ if( searchFor == CLASS ){
kind = ClassKind.CLASS; kind = ASTClassKind.CLASS;
} else if( searchFor == STRUCT ) { } else if( searchFor == STRUCT ) {
kind = ClassKind.STRUCT; kind = ASTClassKind.STRUCT;
} else if ( searchFor == ENUM ) { } else if ( searchFor == ENUM ) {
kind = ClassKind.ENUM; kind = ASTClassKind.ENUM;
} else if ( searchFor == UNION ) { } else if ( searchFor == UNION ) {
kind = ClassKind.UNION; kind = ASTClassKind.UNION;
} }
char [][] qualifications = new char[0][]; char [][] qualifications = new char[0][];

View file

@ -13,7 +13,7 @@
*/ */
package org.eclipse.cdt.internal.core.search.matching; package org.eclipse.cdt.internal.core.search.matching;
import org.eclipse.cdt.core.parser.ast.ClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTOffsetableElement; import org.eclipse.cdt.core.parser.ast.IASTOffsetableElement;
import org.eclipse.cdt.internal.core.search.CharOperation; import org.eclipse.cdt.internal.core.search.CharOperation;
@ -30,7 +30,7 @@ public class ClassDeclarationPattern extends CSearchPattern {
super( matchMode, caseSensitive ); super( matchMode, caseSensitive );
} }
public ClassDeclarationPattern( char[] name, char[][] containers, ClassKind kind, int mode, boolean caseSensitive ){ public ClassDeclarationPattern( char[] name, char[][] containers, ASTClassKind kind, int mode, boolean caseSensitive ){
super( mode, caseSensitive ); super( mode, caseSensitive );
simpleName = caseSensitive ? name : CharOperation.toLowerCase( name ); simpleName = caseSensitive ? name : CharOperation.toLowerCase( name );
if( caseSensitive || containers == null ){ if( caseSensitive || containers == null ){
@ -90,6 +90,6 @@ public class ClassDeclarationPattern extends CSearchPattern {
private char[] simpleName; private char[] simpleName;
private char[][] containingTypes; private char[][] containingTypes;
private ClassKind classKind; private ASTClassKind classKind;
} }

View file

@ -77,7 +77,6 @@ public class MatchLocator implements ISourceElementRequestor {
public void acceptElaboratedTypeSpecifier(IASTElaboratedTypeSpecifier elaboratedTypeSpec){ } public void acceptElaboratedTypeSpecifier(IASTElaboratedTypeSpecifier elaboratedTypeSpec){ }
public void acceptMethodDeclaration(IASTMethod method) { } public void acceptMethodDeclaration(IASTMethod method) { }
public void acceptField(IASTField field) { } public void acceptField(IASTField field) { }
public void acceptConstructor(IASTConstructor constructor) { }
public void enterFunctionBody(IASTFunction function) { } public void enterFunctionBody(IASTFunction function) { }
public void enterCompilationUnit(IASTCompilationUnit compilationUnit) { } public void enterCompilationUnit(IASTCompilationUnit compilationUnit) { }
public void enterNamespaceDefinition(IASTNamespaceDefinition namespaceDefinition) { } public void enterNamespaceDefinition(IASTNamespaceDefinition namespaceDefinition) { }