From e95da4dadebf96c72bbb248f97571b58e92fb39c Mon Sep 17 00:00:00 2001 From: John Camelon Date: Mon, 29 Sep 2003 19:22:09 +0000 Subject: [PATCH] CORE Continued work on Bug 43062 : Outline is confused on operator methods containing spaces Partial fix for Bug 43680 : Fix Parser Error Handling TEST Added testErrorHandling_1() to CompleteParseASTTest.java. --- core/org.eclipse.cdt.core.tests/ChangeLog | 3 + .../parser/tests/CompleteParseASTTest.java | 12 ++++ .../parser/tests/CompleteParseBaseTest.java | 9 ++- core/org.eclipse.cdt.core/parser/ChangeLog | 4 ++ .../org/eclipse/cdt/core/parser/IParser.java | 14 ----- .../cdt/core/parser/ast/IASTFactory.java | 30 +++++----- .../cdt/core/parser/ast/IASTFunction.java | 1 - .../ast/IASTOffsetableNamedElement.java | 2 + .../core/parser/DeclarationWrapper.java | 18 +++--- .../cdt/internal/core/parser/Parser.java | 24 ++++---- .../cdt/internal/core/parser/Scanner.java | 6 +- .../core/parser/ast/ASTInclusion.java | 41 ++++++++++++-- .../internal/core/parser/ast/ASTMacro.java | 32 ++++++++++- .../core/parser/ast/BaseASTFactory.java | 14 ++--- .../core/parser/ast/NamedOffsets.java | 12 +++- .../parser/ast/complete/ASTASMDefinition.java | 9 ++- .../ASTAbstractTypeSpecifierDeclaration.java | 9 ++- .../ast/complete/ASTClassReference.java | 9 ++- .../ast/complete/ASTClassSpecifier.java | 35 +++++++++++- .../parser/ast/complete/ASTCodeScope.java | 18 +++++- .../ast/complete/ASTCompilationUnit.java | 18 +++++- .../complete/ASTElaboratedTypeSpecifier.java | 27 ++++++++- .../ast/complete/ASTEnumerationReference.java | 9 ++- .../ast/complete/ASTEnumerationSpecifier.java | 27 ++++++++- .../parser/ast/complete/ASTEnumerator.java | 23 +++++++- .../ast/complete/ASTEnumeratorReference.java | 9 ++- .../core/parser/ast/complete/ASTField.java | 13 ++++- .../ast/complete/ASTFieldReference.java | 9 ++- .../core/parser/ast/complete/ASTFunction.java | 51 +++++++++++++---- .../ast/complete/ASTFunctionReference.java | 9 ++- .../ast/complete/ASTLinkageSpecification.java | 18 +++++- .../core/parser/ast/complete/ASTMethod.java | 27 ++++++++- .../ast/complete/ASTMethodReference.java | 9 ++- .../ast/complete/ASTNamespaceAlias.java | 18 +++++- .../ast/complete/ASTNamespaceDefinition.java | 36 +++++++++++- .../ast/complete/ASTNamespaceReference.java | 9 ++- .../ast/complete/ASTParameterDeclaration.java | 18 +++++- .../ast/complete/ASTParameterReference.java | 9 ++- .../core/parser/ast/complete/ASTTypedef.java | 27 ++++++++- .../ast/complete/ASTTypedefReference.java | 9 ++- .../ast/complete/ASTUsingDeclaration.java | 9 ++- .../ast/complete/ASTUsingDirective.java | 9 ++- .../core/parser/ast/complete/ASTVariable.java | 27 ++++++++- .../ast/complete/ASTVariableReference.java | 9 ++- .../ast/complete/CompleteParseASTFactory.java | 51 ++++++++--------- .../parser/ast/quick/ASTASMDefinition.java | 9 ++- .../ASTAbstractTypeSpecifierDeclaration.java | 9 ++- .../parser/ast/quick/ASTClassSpecifier.java | 38 ++++++++++++- .../parser/ast/quick/ASTCompilationUnit.java | 18 +++++- .../ast/quick/ASTElaboratedTypeSpecifier.java | 27 ++++++++- .../ast/quick/ASTEnumerationSpecifier.java | 27 ++++++++- .../core/parser/ast/quick/ASTEnumerator.java | 21 ++++++- .../core/parser/ast/quick/ASTField.java | 13 ++++- .../core/parser/ast/quick/ASTFunction.java | 56 ++++++++++++++----- .../ast/quick/ASTLinkageSpecification.java | 18 +++++- .../core/parser/ast/quick/ASTMethod.java | 27 ++++++++- .../parser/ast/quick/ASTNamespaceAlias.java | 18 +++++- .../ast/quick/ASTNamespaceDefinition.java | 38 ++++++++++++- .../ast/quick/ASTParameterDeclaration.java | 18 +++++- .../ast/quick/ASTTemplateDeclaration.java | 18 +++++- .../ast/quick/ASTTemplateInstantiation.java | 18 +++++- .../ast/quick/ASTTemplateSpecialization.java | 18 +++++- .../ast/quick/ASTTypedefDeclaration.java | 27 ++++++++- .../parser/ast/quick/ASTUsingDeclaration.java | 9 ++- .../parser/ast/quick/ASTUsingDirective.java | 9 ++- .../core/parser/ast/quick/ASTVariable.java | 28 +++++++++- .../ast/quick/QuickParseASTFactory.java | 47 +++++++--------- .../core/parser/problem/DefaultProblem.java | 9 ++- 68 files changed, 1068 insertions(+), 234 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index d6f3953fde9..cf768971024 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2003-09-29 John Camelon + Added testErrorHandling_1() to CompleteParseASTTest.java. + 2003-09-26 John Camelon Added QuickParseASTTests::testBug43644() & testBug43062(). Moved ASTFailedTests::testBug39531() to QuickParseASTTests. diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java index ab344cdb7e1..366e5b5fb8d 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java @@ -844,4 +844,16 @@ public class CompleteParseASTTest extends CompleteParseBaseTest assertFalse( i.hasNext() ); assertAllReferences( 8, createTaskList( new Task( SD_02), new Task( SD_01, 3 ), new Task( a ), new Task( f_SD_01 ), new Task( f_SD_02 ), new Task( next ) )); } + + public void testErrorHandling_1() throws Exception + { + Iterator i = parse( "A anA; int x = c; class A {}; A * anotherA = &anA; int b;", false ).getDeclarations(); + IASTVariable x = (IASTVariable)i.next(); + assertEquals( x.getName(), "x"); + IASTClassSpecifier A = (IASTClassSpecifier)((IASTAbstractTypeSpecifierDeclaration)i.next()).getTypeSpecifier(); + IASTVariable anotherA = (IASTVariable)i.next(); + IASTVariable b = (IASTVariable)i.next(); + assertEquals( b.getName(), "b"); + assertFalse(i.hasNext()); + } } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java index b4d59bb01be..e4dc1f095d7 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java @@ -666,14 +666,19 @@ public class CompleteParseBaseTest extends TestCase return null; } protected FullParseCallback callback; - protected IASTScope parse(String code) throws ParserException + + protected IASTScope parse( String code ) throws ParserException + { + return parse( code, true ); + } + protected IASTScope parse(String code, boolean throwOnError) throws ParserException { callback = new FullParseCallback(); IParser parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "test-code", new ScannerInfo(), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, callback ), callback, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP ); - if( ! parser.parse() ) throw new ParserException( "FAILURE"); + if( ! parser.parse() && throwOnError ) throw new ParserException( "FAILURE"); return callback.getCompilationUnit(); } diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog b/core/org.eclipse.cdt.core/parser/ChangeLog index feda4bf46e8..11195de9839 100644 --- a/core/org.eclipse.cdt.core/parser/ChangeLog +++ b/core/org.eclipse.cdt.core/parser/ChangeLog @@ -1,3 +1,7 @@ +2003-09-29 John Camelon + Continued work on Bug 43062 : Outline is confused on operator methods containing spaces + Partial fix for Bug 43680 : Fix Parser Error Handling + 2003-09-26 John Camelon Fixed Bug 43644 : 6 triangle icons appearing in outline viewer when typing an error Fixed Bug 43062 : Outline is confused on operator methods containing spaces diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IParser.java index f9c129c53a7..7c6b332c4ac 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IParser.java @@ -43,20 +43,6 @@ public interface IParser { */ public IASTExpression expression(IASTScope scope) throws Backtrack; - /** - * Is the parser configured for ANSI C or ANSI C++? - * - * @return true for C++, false for C - */ - public ParserLanguage getLanguage(); - - /** - * Set the Parser explicitly to be a C or C++ parser. - * - * @param l CPP or C - */ - public void setLanguage( ParserLanguage l); - /** * If an error was encountered, give us the offset of the token that caused the error. * diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java index f1d1c56f042..c74e02afe29 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFactory.java @@ -23,15 +23,15 @@ public interface IASTFactory public IASTMacro createMacro( String name, int startingOffset, - int endingOffset, - int nameOffset); + int nameOffset, + int nameEndOffset, int endingOffset); public IASTInclusion createInclusion( String name, String fileName, boolean local, int startingOffset, - int endingOffset, - int nameOffset); + int nameOffset, + int nameEndOffset, int endingOffset); public IASTUsingDirective createUsingDirective( IASTScope scope, ITokenDuple duple, int startingOffset, int endingOffset) @@ -49,7 +49,7 @@ public interface IASTFactory IASTScope scope, String identifier, int startingOffset, - int nameOffset) throws ASTSemanticException; + int nameOffset, int nameEndOffset) throws ASTSemanticException; public IASTNamespaceAlias createNamespaceAlias( IASTScope scope, @@ -57,7 +57,7 @@ public interface IASTFactory ITokenDuple alias, int startingOffset, int nameOffset, - int endOffset ) throws ASTSemanticException; + int nameEndOffset, int endOffset ) throws ASTSemanticException; public IASTCompilationUnit createCompilationUnit(); public IASTLinkageSpecification createLinkageSpecification( @@ -70,7 +70,7 @@ public interface IASTFactory ClassNameType type, ASTAccessVisibility access, int startingOffset, - int nameOffset) throws ASTSemanticException; + int nameOffset, int nameEndOffset) throws ASTSemanticException; /** * @param astClassSpec * @param isVirtual @@ -90,12 +90,12 @@ public interface IASTFactory public IASTEnumerationSpecifier createEnumerationSpecifier( IASTScope scope, String name, - int startingOffset, int nameOffset) throws ASTSemanticException; + int startingOffset, int nameOffset, int nameEndOffset) throws ASTSemanticException; public void addEnumerator( IASTEnumerationSpecifier enumeration, String string, int startingOffset, - int endingOffset, IASTExpression initialValue)throws ASTSemanticException; + int nameOffset, int nameEndOffset, int endingOffset, IASTExpression initialValue)throws ASTSemanticException; public IASTExpression createExpression( IASTScope scope, IASTExpression.Kind kind, @@ -133,7 +133,6 @@ public interface IASTFactory public IASTFunction createFunction( IASTScope scope, String name, - int nameEndOffset, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, @@ -142,6 +141,7 @@ public interface IASTFactory boolean isStatic, int startOffset, int nameOffset, + int nameEndOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, @@ -156,7 +156,6 @@ public interface IASTFactory public IASTMethod createMethod( IASTScope scope, String name, - int nameEndOffset, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, @@ -165,6 +164,7 @@ public interface IASTFactory boolean isStatic, int startOffset, int nameOffset, + int nameEndOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, @@ -173,11 +173,11 @@ public interface IASTFactory boolean isPureVirtual, ASTAccessVisibility visibility, List constructorChain, boolean isDefinition) throws ASTSemanticException; public IASTVariable createVariable(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, - IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, IASTExpression constructorExpression ) throws ASTSemanticException; + IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, int nameEndOffset, IASTExpression constructorExpression ) throws ASTSemanticException; - public IASTField createField( IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) throws ASTSemanticException; + public IASTField createField( IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, int nameEndOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) throws ASTSemanticException; - public IASTParameterDeclaration createParameterDeclaration( boolean isConst, boolean isVolatile, IASTTypeSpecifier getTypeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset ); + public IASTParameterDeclaration createParameterDeclaration( boolean isConst, boolean isVolatile, IASTTypeSpecifier getTypeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset ); public IASTTemplateDeclaration createTemplateDeclaration( IASTScope scope, List templateParameters, boolean exported, int startingOffset ); @@ -187,7 +187,7 @@ public interface IASTFactory public IASTTemplateSpecialization createTemplateSpecialization(IASTScope scope, int startingOffset); - public IASTTypedefDeclaration createTypedef( IASTScope scope, String name, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset ) throws ASTSemanticException; + public IASTTypedefDeclaration createTypedef( IASTScope scope, String name, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset, int nameEndOffset ) throws ASTSemanticException; public IASTAbstractTypeSpecifierDeclaration createTypeSpecDeclaration( IASTScope scope, IASTTypeSpecifier typeSpecifier, IASTTemplate template, int startingOffset, int endingOffset); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFunction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFunction.java index 50da49e2550..a9e17c22e03 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFunction.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTFunction.java @@ -35,5 +35,4 @@ public interface IASTFunction extends IASTCodeScope, IASTOffsetableNamedElement, public boolean previouslyDeclared(); - public int getNameEndOffset(); // necessary for operator new, etc. which are > 1 token } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTOffsetableNamedElement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTOffsetableNamedElement.java index 1cc6c5c0f9b..545e1327c8e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTOffsetableNamedElement.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTOffsetableNamedElement.java @@ -20,4 +20,6 @@ public interface IASTOffsetableNamedElement extends IASTOffsetableElement { public String getName(); public int getNameOffset(); public void setNameOffset( int o ); + public int getNameEndOffset(); + public void setNameEndOffset( int o ); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java index 55efbf63c7a..4e3cea1141e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/DeclarationWrapper.java @@ -381,9 +381,9 @@ public class DeclarationWrapper implements IDeclaratorOwner return astFactory.createTypedef( scope, name, - abs, getStartingOffset(), d.getNameStartOffset() ); + abs, getStartingOffset(), d.getNameStartOffset(), d.getNameEndOffset() ); else - return astFactory.createVariable( scope, name, auto, d.getInitializerClause(), d.getBitFieldExpression(), abs, mutable, extern, register, staticc, getStartingOffset(), d.getNameStartOffset(), d.getConstructorExpression() ); + return astFactory.createVariable( scope, name, auto, d.getInitializerClause(), d.getBitFieldExpression(), abs, mutable, extern, register, staticc, getStartingOffset(), d.getNameStartOffset(), d.getNameEndOffset(), d.getConstructorExpression() ); } else @@ -406,7 +406,7 @@ public class DeclarationWrapper implements IDeclaratorOwner constt, volatil, getTypeSpecifier(), - declarator.getPointerOperators(), declarator.getArrayModifiers(), null, null), startingOffset, declarator.getNameStartOffset()); + declarator.getPointerOperators(), declarator.getArrayModifiers(), null, null), startingOffset, declarator.getNameStartOffset(), declarator.getNameEndOffset()); } /** * @param declarator @@ -418,8 +418,7 @@ public class DeclarationWrapper implements IDeclaratorOwner .createMethod( scope, nested ? declarator.getOwnedDeclarator().getName() : declarator.getName(), - declarator.getNameEndOffset(), - createParameterList(declarator.getParameters()), + createParameterList(declarator.getParameters()), astFactory.createAbstractDeclaration( constt, volatil, @@ -431,6 +430,7 @@ public class DeclarationWrapper implements IDeclaratorOwner staticc, startingOffset, declarator.getNameStartOffset(), + declarator.getNameEndOffset(), templateDeclaration, declarator.isConst(), declarator.isVolatile(), @@ -448,7 +448,6 @@ public class DeclarationWrapper implements IDeclaratorOwner return astFactory.createFunction( scope, nested ? declarator.getOwnedDeclarator().getName() : declarator.getName(), - declarator.getNameEndOffset(), createParameterList(declarator.getParameters()), astFactory.createAbstractDeclaration( constt, @@ -461,6 +460,7 @@ public class DeclarationWrapper implements IDeclaratorOwner staticc, startingOffset, declarator.getNameStartOffset(), + declarator.getNameEndOffset(), templateDeclaration, declarator.isConst(), declarator.isVolatile(), @@ -492,7 +492,7 @@ public class DeclarationWrapper implements IDeclaratorOwner staticc, startingOffset, declarator.getNameStartOffset(), - declarator.getConstructorExpression(), ((IASTClassSpecifier)scope).getCurrentVisibilityMode()); + declarator.getNameEndOffset(), declarator.getConstructorExpression(), ((IASTClassSpecifier)scope).getCurrentVisibilityMode()); } private List createParameterList(List currentParameters) { @@ -514,7 +514,7 @@ public class DeclarationWrapper implements IDeclaratorOwner declarator.getArrayModifiers(), null, null, declarator.getName() == null ? "" - : declarator.getName(), declarator.getInitializerClause(), wrapper.getStartingOffset(), wrapper.getEndOffset(), declarator.getNameStartOffset())); + : declarator.getName(), declarator.getInitializerClause(), wrapper.getStartingOffset(), declarator.getNameStartOffset(), declarator.getNameEndOffset(), wrapper.getEndOffset())); } } return result; @@ -541,7 +541,7 @@ public class DeclarationWrapper implements IDeclaratorOwner register, staticc, getStartingOffset(), - declarator.getNameStartOffset(), declarator.getConstructorExpression()); + declarator.getNameStartOffset(), declarator.getNameEndOffset(), declarator.getConstructorExpression()); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java index f44faa3f116..80f545657b3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java @@ -128,7 +128,7 @@ public class Parser implements IParser requestor = callback; this.mode = mode; this.language = language; - astFactory = ParserFactory.createASTFactory(mode, language); + astFactory = ParserFactory.createASTFactory( mode, language); scanner.setASTFactory(astFactory); } // counter that keeps track of the number of times Parser.parse() is called @@ -606,7 +606,7 @@ public class Parser implements IParser declarator.getArrayModifiers(), null, null, declarator.getName() == null ? "" - : declarator.getName(), declarator.getInitializerClause(), wrapper.getStartingOffset(), wrapper.getEndOffset(), declarator.getNameStartOffset()), + : declarator.getName(), declarator.getInitializerClause(), wrapper.getStartingOffset(), declarator.getNameStartOffset(), declarator.getNameEndOffset(), wrapper.getEndOffset()), null)); } } @@ -757,7 +757,8 @@ public class Parser implements IParser scope, (identifier == null ? "" : identifier.getImage()), first.getOffset(), - (identifier == null ? first.getOffset() : identifier.getOffset())); + (identifier == null ? first.getOffset() : identifier.getOffset()), + (identifier == null ? first.getEndOffset() : identifier.getEndOffset() )); } catch (ASTSemanticException e) { @@ -808,7 +809,7 @@ public class Parser implements IParser { astFactory.createNamespaceAlias( scope, identifier.toString(), duple, first.getOffset(), - identifier.getOffset(), duple.getLastToken().getEndOffset() ); + identifier.getOffset(), identifier.getEndOffset(), duple.getLastToken().getEndOffset() ); } catch (ASTSemanticException e) { @@ -2315,7 +2316,9 @@ public class Parser implements IParser mark.getOffset(), ((identifier == null) ? mark.getOffset() - : identifier.getOffset())); + : identifier.getOffset()), + ((identifier == null)? mark.getEndOffset() + : identifier.getEndOffset())); } catch (ASTSemanticException e) { @@ -2349,8 +2352,8 @@ public class Parser implements IParser enumeration, enumeratorIdentifier.getImage(), enumeratorIdentifier.getOffset(), - enumeratorIdentifier.getEndOffset(), - initialValue); + enumeratorIdentifier.getOffset(), + enumeratorIdentifier.getEndOffset(), enumeratorIdentifier.getEndOffset(), initialValue); } catch (ASTSemanticException e1) { @@ -2369,8 +2372,8 @@ public class Parser implements IParser enumeration, enumeratorIdentifier.getImage(), enumeratorIdentifier.getOffset(), - enumeratorIdentifier.getEndOffset(), - initialValue); + enumeratorIdentifier.getOffset(), + enumeratorIdentifier.getEndOffset(), enumeratorIdentifier.getEndOffset(), initialValue); } catch (ASTSemanticException e1) { @@ -2452,7 +2455,8 @@ public class Parser implements IParser nameType, access, classKey.getOffset(), - duple == null ? classKey.getOffset() : duple.getFirstToken().getOffset()); + duple == null ? classKey.getOffset() : duple.getFirstToken().getOffset(), + duple == null ? classKey.getEndOffset() : duple.getFirstToken().getEndOffset() ); } catch (ASTSemanticException e) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java index 8ff1322683e..6934e86b2df 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java @@ -344,7 +344,7 @@ public class Scanner implements IScanner { } } if (inclusionReader != null) { - IASTInclusion inclusion = astFactory.createInclusion( fileName, newPath, !useIncludePaths, beginOffset, endOffset, nameOffset ); + IASTInclusion inclusion = astFactory.createInclusion( fileName, newPath, !useIncludePaths, beginOffset, nameOffset, nameOffset + fileName.length(), endOffset ); contextStack.updateContext(inclusionReader, newPath, ScannerContext.INCLUSION, inclusion, requestor ); } } @@ -2011,7 +2011,7 @@ public class Scanner implements IScanner { if( requestor != null ) { IASTInclusion i = astFactory.createInclusion( f, "", !useIncludePath, beginningOffset, - endOffset, startOffset ); + startOffset, startOffset + f.length(), endOffset ); i.enterScope( requestor ); i.exitScope( requestor ); } @@ -2168,7 +2168,7 @@ public class Scanner implements IScanner { throw new ScannerException( ScannerException.ErrorCode.INVALID_PREPROCESSOR_DIRECTIVE, getCurrentFile(), getCurrentOffset() ); } - astFactory.createMacro( key, beginning, contextStack.getCurrentContext().getOffset(), offset ).acceptElement( requestor ); + astFactory.createMacro( key, beginning, offset, offset + key.length(), contextStack.getCurrentContext().getOffset() ).acceptElement( requestor ); } protected Vector getMacroParameters (String params, boolean forStringizing) throws ScannerException { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTInclusion.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTInclusion.java index a1696ecd40c..2e4c9df1538 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTInclusion.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTInclusion.java @@ -19,14 +19,19 @@ import org.eclipse.cdt.core.parser.ast.IASTInclusion; */ public class ASTInclusion implements IASTInclusion { - public ASTInclusion( String name, String fileName, boolean local ) + public ASTInclusion( String name, String fileName, boolean local, int startingOffset, int nameOffset, int nameEndOffset, int endOffset ) { this.name = name; this.fileName = fileName; this.local = local; + setStartingOffset(startingOffset); + setNameOffset(nameOffset); + setNameEndOffset(nameEndOffset); + setEndingOffset(endOffset); } - private final String name, fileName; + private int nameEndOffset; + private final String name, fileName; private final boolean local; /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTInclusion#getName() @@ -109,7 +114,14 @@ public class ASTInclusion implements IASTInclusion { */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterInclusion(this); + try + { + requestor.enterInclusion(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -117,7 +129,28 @@ public class ASTInclusion implements IASTInclusion { */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitInclusion(this); + try + { + requestor.exitInclusion(this); + } + catch (Exception e) + { + /* do nothing */ + } } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return nameEndOffset; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + nameEndOffset = o; + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTMacro.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTMacro.java index b2916108e6a..257e74345e8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTMacro.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTMacro.java @@ -19,10 +19,15 @@ import org.eclipse.cdt.core.parser.ast.IASTMacro; */ public class ASTMacro implements IASTMacro { - private final String name; - public ASTMacro( String name ) + private int nameEndOffset = 0; + private final String name; + public ASTMacro( String name, int start, int end, int nameBeg, int nameEnd ) { this.name =name; + setStartingOffset(start); + setNameOffset(nameBeg); + setNameEndOffset(nameEnd); + setEndingOffset(end); } private int startingOffset = 0, endingOffset = 0, nameOffset = 0; @@ -74,7 +79,14 @@ public class ASTMacro implements IASTMacro { */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptMacro( this ); + try + { + requestor.acceptMacro( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) @@ -89,4 +101,18 @@ public class ASTMacro implements IASTMacro { { } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return nameEndOffset; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + nameEndOffset = o; + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/BaseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/BaseASTFactory.java index 55fb8da35e4..9ba27a0765e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/BaseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/BaseASTFactory.java @@ -31,22 +31,16 @@ public class BaseASTFactory { /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.IASTFactory#createMacro(java.lang.String, int, int, int) */ - public IASTMacro createMacro(String name, int startingOffset, int endingOffset, int nameOffset) { - IASTMacro m = new ASTMacro( name ); - m.setStartingOffset( startingOffset ); - m.setEndingOffset( endingOffset ); - m.setNameOffset( nameOffset ); + public IASTMacro createMacro(String name, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset) { + IASTMacro m = new ASTMacro( name, startingOffset, endingOffset, nameOffset, nameEndOffset ); return m; } /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.IASTFactory#createInclusion(java.lang.String, java.lang.String, boolean) */ - public IASTInclusion createInclusion(String name, String fileName, boolean local, int startingOffset, int endingOffset, int nameOffset) { - IASTInclusion inclusion = new ASTInclusion( name, fileName, local ); - inclusion.setStartingOffset( startingOffset ); - inclusion.setEndingOffset( endingOffset ); - inclusion.setNameOffset( nameOffset ); + public IASTInclusion createInclusion(String name, String fileName, boolean local, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset) { + IASTInclusion inclusion = new ASTInclusion( name, fileName, local, startingOffset, nameOffset, nameEndOffset, endingOffset ); return inclusion; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/NamedOffsets.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/NamedOffsets.java index a3e78cec02e..885c038c4b3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/NamedOffsets.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/NamedOffsets.java @@ -17,7 +17,8 @@ package org.eclipse.cdt.internal.core.parser.ast; */ public class NamedOffsets extends Offsets { - private int nameOffset = 0; + private int nameEndOffset = 0; + private int nameOffset = 0; /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getElementNameOffset() @@ -32,6 +33,15 @@ public class NamedOffsets extends Offsets { public void setNameOffset(int o) { nameOffset = o; } + + public int getNameEndOffset() + { + return nameEndOffset; + } + public void setNameEndOffset( int offset ) + { + nameEndOffset = offset; + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java index fd4b42e6789..a21cdcfd5ea 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTASMDefinition.java @@ -74,7 +74,14 @@ public class ASTASMDefinition extends ASTAnonymousDeclaration implements IASTASM */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptASMDefinition(this); + try + { + requestor.acceptASMDefinition(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTAbstractTypeSpecifierDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTAbstractTypeSpecifierDeclaration.java index 1b23deb9e07..b18bd438c23 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTAbstractTypeSpecifierDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTAbstractTypeSpecifierDeclaration.java @@ -46,7 +46,14 @@ public class ASTAbstractTypeSpecifierDeclaration */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptAbstractTypeSpecDeclaration(this); + try + { + requestor.acceptAbstractTypeSpecDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassReference.java index 5a73a06bc34..99424e8ac63 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassReference.java @@ -47,7 +47,14 @@ public class ASTClassReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptClassReference( this ); + try + { + requestor.acceptClassReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassSpecifier.java index 2574d9e6c7f..f2fa5907b5b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassSpecifier.java @@ -91,7 +91,7 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier /** * @param symbol */ - public ASTClassSpecifier(ISymbol symbol, ASTClassKind kind, ClassNameType type, ASTAccessVisibility access, int startingOffset, int nameOffset, List references ) + public ASTClassSpecifier(ISymbol symbol, ASTClassKind kind, ClassNameType type, ASTAccessVisibility access, int startingOffset, int nameOffset, int nameEndOffset, List references ) { super(symbol); classKind = kind; @@ -99,6 +99,7 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier currentVisibility = access; setStartingOffset(startingOffset); setNameOffset(nameOffset); + setNameEndOffset(nameEndOffset); qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), symbol.getName() ); this.references = new ASTReferenceStore( references ); } @@ -171,7 +172,14 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier public void enterScope(ISourceElementRequestor requestor) { references.processReferences( requestor ); - requestor.enterClassSpecifier(this); + try + { + requestor.enterClassSpecifier(this); + } + catch (Exception e) + { + /* do nothing */ + } Iterator i = getBaseClauses(); while( i.hasNext() ) { @@ -184,7 +192,14 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitClassSpecifier(this); + try + { + requestor.exitClassSpecifier(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#setStartingOffset(int) @@ -228,4 +243,18 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier { return (IASTScope)symbol.getContainingSymbol().getASTExtension().getPrimaryDeclaration(); } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCodeScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCodeScope.java index d062d1854c7..ec2657d19e2 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCodeScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCodeScope.java @@ -40,14 +40,28 @@ public class ASTCodeScope extends ASTScope implements IASTCodeScope { * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterCodeBlock( this ); + try + { + requestor.enterCodeBlock( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitCodeBlock( this ); + try + { + requestor.exitCodeBlock( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCompilationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCompilationUnit.java index 6484ff7199e..3394397e2b6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCompilationUnit.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTCompilationUnit.java @@ -41,13 +41,27 @@ public class ASTCompilationUnit */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterCompilationUnit( this ); + try + { + requestor.enterCompilationUnit( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitCompilationUnit( this ); + try + { + requestor.exitCompilationUnit( this ); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java index 5b2868bb15b..576e84ef206 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTElaboratedTypeSpecifier.java @@ -39,12 +39,13 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora * @param startingOffset * @param endOffset */ - public ASTElaboratedTypeSpecifier(ISymbol checkSymbol, ASTClassKind kind, int startingOffset, int nameOffset, int endOffset, List references, boolean isDecl ) + public ASTElaboratedTypeSpecifier(ISymbol checkSymbol, ASTClassKind kind, int startingOffset, int nameOffset, int nameEndOffset, int endOffset, List references, boolean isDecl ) { super( checkSymbol ); this.kind = kind; setStartingOffset( startingOffset ); setNameOffset( nameOffset ); + setNameEndOffset(nameEndOffset); setEndingOffset( endOffset ); qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), checkSymbol.getName() ); store = new ASTReferenceStore( references ); @@ -106,7 +107,14 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora public void acceptElement(ISourceElementRequestor requestor) { if( isForwardDeclaration ) - requestor.acceptElaboratedForewardDeclaration(this); + try + { + requestor.acceptElaboratedForewardDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } store.processReferences(requestor); } /* (non-Javadoc) @@ -145,4 +153,19 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora { return references; } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java index 5e218dcf3c5..d7d503aa3d1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java @@ -47,7 +47,14 @@ public class ASTEnumerationReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptEnumerationReference( this ); + try + { + requestor.acceptEnumerationReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java index d564b97c76a..0fd3ae5a5af 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationSpecifier.java @@ -34,11 +34,12 @@ public class ASTEnumerationSpecifier /** * @param symbol */ - public ASTEnumerationSpecifier(ISymbol symbol, int startingOffset, int nameOffset ) + public ASTEnumerationSpecifier(ISymbol symbol, int startingOffset, int nameOffset, int nameEndOffset ) { super(symbol); setStartingOffset(startingOffset); setNameOffset( nameOffset ); + setNameEndOffset(nameEndOffset); qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), symbol.getName() ); } @@ -62,7 +63,14 @@ public class ASTEnumerationSpecifier */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptEnumerationSpecifier(this); + try + { + requestor.acceptEnumerationSpecifier(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) @@ -132,4 +140,19 @@ public class ASTEnumerationSpecifier { return offsets.getEndingOffset(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java index 660e02a3eda..43b8e482115 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerator.java @@ -14,7 +14,7 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerator; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.internal.core.parser.ast.Offsets; +import org.eclipse.cdt.internal.core.parser.ast.NamedOffsets; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -23,7 +23,7 @@ import org.eclipse.cdt.internal.core.parser.pst.ISymbol; */ public class ASTEnumerator extends ASTSymbol implements IASTEnumerator { - private Offsets offsets = new Offsets(); + private NamedOffsets offsets = new NamedOffsets(); private final IASTExpression initialValue; private final IASTEnumerationSpecifier owner; /** @@ -32,10 +32,12 @@ public class ASTEnumerator extends ASTSymbol implements IASTEnumerator * @param endingOffset * @param initialValue */ - public ASTEnumerator(ISymbol enumeratorSymbol, IASTEnumerationSpecifier owner, int startingOffset, int endingOffset, IASTExpression initialValue) + public ASTEnumerator(ISymbol enumeratorSymbol, IASTEnumerationSpecifier owner, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset, IASTExpression initialValue) { super( enumeratorSymbol ); setStartingOffset(startingOffset); + setNameOffset( nameOffset ); + setNameEndOffset( nameEndOffset ); setEndingOffset( endingOffset ); this.initialValue = initialValue; this.owner = owner; @@ -121,4 +123,19 @@ public class ASTEnumerator extends ASTSymbol implements IASTEnumerator { return offsets.getEndingOffset(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumeratorReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumeratorReference.java index cf14c4b51f8..7c68f7efe10 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumeratorReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumeratorReference.java @@ -46,7 +46,14 @@ public class ASTEnumeratorReference extends ASTReference implements IASTEnumerat */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptEnumeratorReference( this ); + try + { + requestor.acceptEnumeratorReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTField.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTField.java index 1bc2170b929..0ca3e0617e7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTField.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTField.java @@ -37,9 +37,9 @@ public class ASTField extends ASTVariable implements IASTField * @param references * @param visibility */ - public ASTField(ISymbol newSymbol, IASTAbstractDeclaration abstractDeclaration, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, int startingOffset, int nameOffset, List references, boolean previouslyDeclared, IASTExpression constructorExpression, ASTAccessVisibility visibility) + public ASTField(ISymbol newSymbol, IASTAbstractDeclaration abstractDeclaration, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, int startingOffset, int nameOffset, int nameEndOffset, List references, boolean previouslyDeclared, IASTExpression constructorExpression, ASTAccessVisibility visibility) { - super( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references, constructorExpression, previouslyDeclared ); + super( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, nameEndOffset, references, constructorExpression, previouslyDeclared ); this.visibility = visibility; } @@ -53,7 +53,14 @@ public class ASTField extends ASTVariable implements IASTField public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptField(this); + try + { + requestor.acceptField(this); + } + catch (Exception e) + { + /* do nothing */ + } referenceDelegate.processReferences(requestor); if( getInitializerClause() != null ) getInitializerClause().acceptElement(requestor); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java index a1838c7c7ef..287cd8c3bc7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java @@ -47,7 +47,14 @@ public class ASTFieldReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptFieldReference(this); + try + { + requestor.acceptFieldReference(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java index 199bc0769c2..f961ab98690 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunction.java @@ -62,6 +62,7 @@ public class ASTFunction extends ASTScope implements IASTFunction this.exception = exception; setStartingOffset(startOffset); setNameOffset(nameOffset); + setNameEndOffset(nameEndOffset); this.ownerTemplate = ownerTemplate; this.references = new ASTReferenceStore( references ); qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), symbol.getName() ); @@ -195,7 +196,14 @@ public class ASTFunction extends ASTScope implements IASTFunction */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptFunctionDeclaration(this); + try + { + requestor.acceptFunctionDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } functionCallbacks(requestor); } @@ -233,7 +241,14 @@ public class ASTFunction extends ASTScope implements IASTFunction */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterFunctionBody( this ); + try + { + requestor.enterFunctionBody( this ); + } + catch (Exception e) + { + /* do nothing */ + } functionCallbacks( requestor ); } /* (non-Javadoc) @@ -241,7 +256,14 @@ public class ASTFunction extends ASTScope implements IASTFunction */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitFunctionBody( this ); + try + { + requestor.exitFunctionBody( this ); + } + catch (Exception e) + { + /* do nothing */ + } } @@ -263,13 +285,18 @@ public class ASTFunction extends ASTScope implements IASTFunction return previouslyDeclared; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getNameEndOffset() - */ - public int getNameEndOffset() - { - // TODO Auto-generated method stub - return 0; - } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunctionReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunctionReference.java index a232e623eea..d359dd38e12 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunctionReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunctionReference.java @@ -46,7 +46,14 @@ public class ASTFunctionReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptFunctionReference( this ); + try + { + requestor.acceptFunctionReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java index 9d717d61cb9..82de4e82c4d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTLinkageSpecification.java @@ -89,13 +89,27 @@ public class ASTLinkageSpecification extends ASTAnonymousDeclaration implements */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterLinkageSpecification(this); + try + { + requestor.enterLinkageSpecification(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitLinkageSpecification(this); + try + { + requestor.exitLinkageSpecification(this); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java index 07a71cc6fea..f3be1cefd8c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethod.java @@ -126,7 +126,14 @@ public class ASTMethod extends ASTFunction implements IASTMethod */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptMethodDeclaration(this); + try + { + requestor.acceptMethodDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } methodCallbacks(requestor); } protected void methodCallbacks(ISourceElementRequestor requestor) @@ -152,7 +159,14 @@ public class ASTMethod extends ASTFunction implements IASTMethod */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterMethodBody(this); + try + { + requestor.enterMethodBody(this); + } + catch (Exception e) + { + /* do nothing */ + } methodCallbacks( requestor ); } /* (non-Javadoc) @@ -160,7 +174,14 @@ public class ASTMethod extends ASTFunction implements IASTMethod */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitMethodBody( this ); + try + { + requestor.exitMethodBody( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTMethod#getConstructorChainInitializers() diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethodReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethodReference.java index 8e4a12213ab..59bdd4160df 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethodReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethodReference.java @@ -45,7 +45,14 @@ public class ASTMethodReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptMethodReference( this ); + try + { + requestor.acceptMethodReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceAlias.java index 73d8430bbb6..df7484483e2 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceAlias.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceAlias.java @@ -36,7 +36,7 @@ public class ASTNamespaceAlias extends ASTSymbol implements IASTNamespaceAlias * @param nameOffset * @param endOffset */ - public ASTNamespaceAlias(ISymbol s, String alias, IASTNamespaceDefinition namespaceDefinition, int startingOffset, int nameOffset, int endOffset, List references) + public ASTNamespaceAlias(ISymbol s, String alias, IASTNamespaceDefinition namespaceDefinition, int startingOffset, int nameOffset, int nameEndOffset, int endOffset, List references) { super( s ); this.alias = alias; @@ -44,6 +44,7 @@ public class ASTNamespaceAlias extends ASTSymbol implements IASTNamespaceAlias setStartingOffset(startingOffset); setEndingOffset(endOffset); setNameOffset(nameOffset); + setNameEndOffset(nameEndOffset); store = new ASTReferenceStore( references); } /* (non-Javadoc) @@ -131,4 +132,19 @@ public class ASTNamespaceAlias extends ASTSymbol implements IASTNamespaceAlias { return offsets.getEndingOffset(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceDefinition.java index 2eecb66b20a..1d28118080f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceDefinition.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceDefinition.java @@ -33,11 +33,12 @@ public class ASTNamespaceDefinition * @param startingOffset * @param nameOffset */ - public ASTNamespaceDefinition(ISymbol namespaceSymbol, int startingOffset, int nameOffset) + public ASTNamespaceDefinition(ISymbol namespaceSymbol, int startingOffset, int nameOffset, int nameEndOffset ) { super( namespaceSymbol ); setStartingOffset( startingOffset ); setNameOffset( nameOffset ); + setNameEndOffset( nameEndOffset ); qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), namespaceSymbol.getName() ); } @@ -109,7 +110,14 @@ public class ASTNamespaceDefinition */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterNamespaceDefinition( this ); + try + { + requestor.enterNamespaceDefinition( this ); + } + catch (Exception e) + { + /* do nothing */ + } } @@ -118,7 +126,14 @@ public class ASTNamespaceDefinition */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitNamespaceDefinition( this ); + try + { + requestor.exitNamespaceDefinition( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -128,4 +143,19 @@ public class ASTNamespaceDefinition { return qualifiedName.getFullyQualifiedName(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return namedOffsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + namedOffsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceReference.java index ceaba5f9dce..d7b87dd24a3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceReference.java @@ -48,7 +48,14 @@ public class ASTNamespaceReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptNamespaceReference( this ); + try + { + requestor.acceptNamespaceReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java index 03160f5beb9..226cab08e46 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterDeclaration.java @@ -40,7 +40,7 @@ public class ASTParameterDeclaration extends ASTSymbol implements IASTParameterD * @param parameterName * @param initializerClause */ - public ASTParameterDeclaration(ISymbol symbol, boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset) + public ASTParameterDeclaration(ISymbol symbol, boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset, int nameEndOffset ) { super( symbol ); abstractDeclaration = new ASTAbstractDeclaration( isConst, isVolatile, typeSpecifier, pointerOperators, arrayModifiers, parameters, pointerOp ); @@ -49,6 +49,7 @@ public class ASTParameterDeclaration extends ASTSymbol implements IASTParameterD setStartingOffset(startingOffset); setEndingOffset(endingOffset); setNameOffset(nameOffset); + setNameEndOffset( nameEndOffset ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration#getName() @@ -177,5 +178,20 @@ public class ASTParameterDeclaration extends ASTSymbol implements IASTParameterD { return offsets.getEndingOffset(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterReference.java index 2c4a78ba15d..3f196073e08 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterReference.java @@ -46,7 +46,14 @@ public class ASTParameterReference extends ASTReference implements IASTParameter */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptParameterReference( this ); + try + { + requestor.acceptParameterReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java index 67f9822a271..674c31f4482 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedef.java @@ -38,7 +38,7 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration * @param nameOffset * @param references */ - public ASTTypedef(ISymbol newSymbol, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset, List references) + public ASTTypedef(ISymbol newSymbol, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset, int nameEndOffset, List references) { super( newSymbol ); this.mapping = mapping; @@ -46,6 +46,7 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration this.qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), newSymbol.getName()); setStartingOffset(startingOffset); setNameOffset(nameOffset); + setNameEndOffset( nameEndOffset ); } /* (non-Javadoc) @@ -69,7 +70,14 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptTypedefDeclaration(this); + try + { + requestor.acceptTypedefDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } referenceStore.processReferences(requestor); getAbstractDeclarator().acceptElement( requestor ); } @@ -143,5 +151,20 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration { return qualifiedName.getFullyQualifiedName(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedefReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedefReference.java index 05fdcb579c9..91e557dfec1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedefReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedefReference.java @@ -45,7 +45,14 @@ public class ASTTypedefReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptTypedefReference(this); + try + { + requestor.acceptTypedefReference(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java index dd12654df48..abef6b6d295 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDeclaration.java @@ -98,7 +98,14 @@ public class ASTUsingDeclaration implements IASTUsingDeclaration */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptUsingDeclaration( this ); + try + { + requestor.acceptUsingDeclaration( this ); + } + catch (Exception e) + { + /* do nothing */ + } delegate.processReferences(requestor); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDirective.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDirective.java index e7045992bdf..5fc4cbaf7b7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDirective.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUsingDirective.java @@ -91,7 +91,14 @@ public class ASTUsingDirective extends ASTAnonymousDeclaration implements IASTUs */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptUsingDirective( this ); + try + { + requestor.acceptUsingDirective( this ); + } + catch (Exception e) + { + /* do nothing */ + } referenceDelegate.processReferences(requestor); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariable.java index 397e7732441..efa426369da 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariable.java @@ -46,7 +46,7 @@ public class ASTVariable extends ASTSymbol implements IASTVariable * @param nameOffset * @param references */ - public ASTVariable(ISymbol newSymbol, IASTAbstractDeclaration abstractDeclaration, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, int startingOffset, int nameOffset, List references, IASTExpression constructorExpression, boolean previouslyDeclared ) + public ASTVariable(ISymbol newSymbol, IASTAbstractDeclaration abstractDeclaration, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, int startingOffset, int nameOffset, int nameEndOffset, List references, IASTExpression constructorExpression, boolean previouslyDeclared ) { super( newSymbol ); this.abstractDeclaration = abstractDeclaration; @@ -55,6 +55,7 @@ public class ASTVariable extends ASTSymbol implements IASTVariable this.constructorExpression = constructorExpression; setStartingOffset( startingOffset ); setNameOffset( nameOffset ); + setNameEndOffset(nameEndOffset); referenceDelegate = new ASTReferenceStore( references ); qualifiedName = new ASTQualifiedNamedElement( getOwnerScope(), newSymbol.getName() ); this.previouslyDeclared =previouslyDeclared; @@ -162,7 +163,14 @@ public class ASTVariable extends ASTSymbol implements IASTVariable */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptVariable(this); + try + { + requestor.acceptVariable(this); + } + catch (Exception e) + { + /* do nothing */ + } referenceDelegate.processReferences(requestor); if( initializerClause != null ) initializerClause.acceptElement(requestor); @@ -205,6 +213,7 @@ public class ASTVariable extends ASTSymbol implements IASTVariable { return offsets.getStartingOffset(); } + /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableElement#getEndingOffset() */ @@ -212,6 +221,20 @@ public class ASTVariable extends ASTSymbol implements IASTVariable { return offsets.getEndingOffset(); } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTVariable#getConstructorExpression() */ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java index 85578f99390..83663af42ce 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java @@ -48,7 +48,14 @@ public class ASTVariableReference */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptVariableReference( this ); + try + { + requestor.acceptVariableReference( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java index 5c9d8201a19..a739047f5c8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java @@ -368,7 +368,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto IASTScope scope, String identifier, int startingOffset, - int nameOffset) throws ASTSemanticException + int nameOffset, int nameEndOffset) throws ASTSemanticException { IContainerSymbol pstScope = scopeToSymbol(scope); @@ -411,7 +411,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto } } - ASTNamespaceDefinition namespaceDef = new ASTNamespaceDefinition( namespaceSymbol, startingOffset, nameOffset ); + ASTNamespaceDefinition namespaceDef = new ASTNamespaceDefinition( namespaceSymbol, startingOffset, nameOffset, nameEndOffset ); try { attachSymbolExtension( namespaceSymbol, namespaceDef ); @@ -490,7 +490,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto ClassNameType type, ASTAccessVisibility access, int startingOffset, - int nameOffset) throws ASTSemanticException + int nameOffset, int nameEndOffset) throws ASTSemanticException { IContainerSymbol currentScopeSymbol = scopeToSymbol(scope); TypeInfo.eType pstType = classKindToTypeInfo(kind); @@ -544,7 +544,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto throw new ASTSemanticException(); } - ASTClassSpecifier classSpecifier = new ASTClassSpecifier( newSymbol, kind, type, access, startingOffset, nameOffset, references ); + ASTClassSpecifier classSpecifier = new ASTClassSpecifier( newSymbol, kind, type, access, startingOffset, nameOffset, nameEndOffset, references ); try { attachSymbolExtension(newSymbol, classSpecifier ); @@ -691,7 +691,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto IASTScope scope, String name, int startingOffset, - int nameOffset) throws ASTSemanticException + int nameOffset, int nameEndOffset) throws ASTSemanticException { IContainerSymbol containerSymbol = scopeToSymbol(scope); TypeInfo.eType pstType = TypeInfo.t_enumeration; @@ -706,7 +706,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto throw new ASTSemanticException(); } - ASTEnumerationSpecifier enumSpecifier = new ASTEnumerationSpecifier( classSymbol, startingOffset, nameOffset ); + ASTEnumerationSpecifier enumSpecifier = new ASTEnumerationSpecifier( classSymbol, startingOffset, nameOffset, nameEndOffset ); try { @@ -725,8 +725,8 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto IASTEnumerationSpecifier enumeration, String string, int startingOffset, - int endingOffset, - IASTExpression initialValue) throws ASTSemanticException + int nameOffset, + int nameEndOffset, int endingOffset, IASTExpression initialValue) throws ASTSemanticException { IContainerSymbol enumerationSymbol = (IContainerSymbol)((ISymbolOwner)enumeration).getSymbol(); @@ -739,7 +739,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto { throw new ASTSemanticException(); } - ASTEnumerator enumerator = new ASTEnumerator( enumeratorSymbol, enumeration, startingOffset, endingOffset, initialValue ); + ASTEnumerator enumerator = new ASTEnumerator( enumeratorSymbol, enumeration, startingOffset, nameOffset, nameEndOffset, endingOffset, initialValue ); ((ASTEnumerationSpecifier)enumeration).addEnumerator( enumerator ); try { @@ -1413,7 +1413,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto public IASTFunction createFunction( IASTScope scope, String name, - int nameEndOffset, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, @@ -1422,6 +1421,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto boolean isStatic, int startOffset, int nameOffset, + int nameEndOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, @@ -1718,7 +1718,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto public IASTMethod createMethod( IASTScope scope, String name, - int nameEndOffset, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, @@ -1727,6 +1726,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto boolean isStatic, int startOffset, int nameOffset, + int nameEndOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, @@ -1881,7 +1881,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto boolean isRegister, boolean isStatic, int startingOffset, - int nameOffset, IASTExpression constructorExpression) throws ASTSemanticException + int nameOffset, int nameEndOffset, IASTExpression constructorExpression) throws ASTSemanticException { List references = new ArrayList(); IContainerSymbol ownerScope = scopeToSymbol( scope ); @@ -1933,7 +1933,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto ){ IASTScope fieldParentScope = (IASTScope)parentScope.getASTExtension().getPrimaryDeclaration(); return createField(fieldParentScope, fieldName,isAuto, initializerClause, bitfieldExpression, abstractDeclaration, isMutable, isExtern, - isRegister, isStatic, startingOffset, offset, constructorExpression, ASTAccessVisibility.PRIVATE, references); + isRegister, isStatic, startingOffset, offset, nameEndOffset, constructorExpression, ASTAccessVisibility.PRIVATE, references); } } @@ -1968,7 +1968,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto // TODO Auto-generated catch block } - ASTVariable variable = new ASTVariable( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references, constructorExpression, previouslyDeclared ); + ASTVariable variable = new ASTVariable( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, nameEndOffset, references, constructorExpression, previouslyDeclared ); try { attachSymbolExtension(newSymbol, variable ); @@ -2041,10 +2041,10 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto boolean isStatic, int startingOffset, int nameOffset, - IASTExpression constructorExpression, ASTAccessVisibility visibility) throws ASTSemanticException + int nameEndOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) throws ASTSemanticException { return createField(scope, name,isAuto, initializerClause, bitfieldExpression, abstractDeclaration, isMutable, isExtern, - isRegister, isStatic, startingOffset, nameOffset, constructorExpression, visibility, null); + isRegister, isStatic, startingOffset, nameOffset, nameEndOffset, constructorExpression, visibility, null); } public IASTField createField( @@ -2060,6 +2060,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto boolean isStatic, int startingOffset, int nameOffset, + int nameEndOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility, List references) throws ASTSemanticException @@ -2104,7 +2105,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto throw new ASTSemanticException(); } - ASTField field = new ASTField( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, references, previouslyDeclared, constructorExpression, visibility ); + ASTField field = new ASTField( newSymbol, abstractDeclaration, initializerClause, bitfieldExpression, startingOffset, nameOffset, nameEndOffset, references, previouslyDeclared, constructorExpression, visibility ); try { attachSymbolExtension(newSymbol, field ); @@ -2171,7 +2172,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto String name, IASTAbstractDeclaration mapping, int startingOffset, - int nameOffset) throws ASTSemanticException + int nameOffset, int nameEndOffset) throws ASTSemanticException { IContainerSymbol containerSymbol = scopeToSymbol(scope); ISymbol newSymbol = pst.newSymbol( name, TypeInfo.t_type); @@ -2192,7 +2193,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto { throw new ASTSemanticException(); } - ASTTypedef d = new ASTTypedef( newSymbol, mapping, startingOffset, nameOffset, references ); + ASTTypedef d = new ASTTypedef( newSymbol, mapping, startingOffset, nameOffset, nameEndOffset, references ); try { attachSymbolExtension(newSymbol, d ); @@ -2260,7 +2261,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto } ASTElaboratedTypeSpecifier elab = - new ASTElaboratedTypeSpecifier( checkSymbol, kind, startingOffset, name.getFirstToken().getOffset(), endOffset, references, isForewardDecl ); + new ASTElaboratedTypeSpecifier( checkSymbol, kind, startingOffset, name.getFirstToken().getOffset(), name.getLastToken().getEndOffset(), endOffset, references, isForewardDecl ); try { @@ -2279,7 +2280,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto checkSymbol.getASTExtension().getPrimaryDeclaration() instanceof IASTEnumerationSpecifier ) { - ASTElaboratedTypeSpecifier elab = new ASTElaboratedTypeSpecifier( checkSymbol, kind, startingOffset, name.getFirstToken().getOffset(), endOffset, references, isForewardDecl ); + ASTElaboratedTypeSpecifier elab = new ASTElaboratedTypeSpecifier( checkSymbol, kind, startingOffset, name.getFirstToken().getOffset(), name.getLastToken().getEndOffset(), endOffset, references, isForewardDecl ); try { attachSymbolExtension( checkSymbol, elab ); @@ -2304,7 +2305,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createNamespaceAlias(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ITokenDuple, int, int, int) */ - public IASTNamespaceAlias createNamespaceAlias(IASTScope scope, String identifier, ITokenDuple alias, int startingOffset, int nameOffset, int endOffset) throws ASTSemanticException + public IASTNamespaceAlias createNamespaceAlias(IASTScope scope, String identifier, ITokenDuple alias, int startingOffset, int nameOffset, int nameEndOffset, int endOffset) throws ASTSemanticException { IContainerSymbol startingSymbol = scopeToSymbol(scope); List references = new ArrayList(); @@ -2328,7 +2329,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto ASTNamespaceAlias astAlias = new ASTNamespaceAlias( newSymbol, alias.toString(), (IASTNamespaceDefinition)namespaceSymbol.getASTExtension().getPrimaryDeclaration(), - startingOffset, nameOffset, endOffset, references ); + startingOffset, nameOffset, nameEndOffset, endOffset, references ); try { attachSymbolExtension( newSymbol, astAlias ); @@ -2380,9 +2381,9 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto return false; } - public IASTParameterDeclaration createParameterDeclaration(boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset) + public IASTParameterDeclaration createParameterDeclaration(boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset) { - return new ASTParameterDeclaration( null, isConst, isVolatile, typeSpecifier, pointerOperators, arrayModifiers, parameters, pointerOp, parameterName, initializerClause, startingOffset, endingOffset, nameOffset ); + return new ASTParameterDeclaration( null, isConst, isVolatile, typeSpecifier, pointerOperators, arrayModifiers, parameters, pointerOp, parameterName, initializerClause, startingOffset, endingOffset, nameOffset, nameEndOffset ); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTASMDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTASMDefinition.java index c28f19a9a8e..3249c255e95 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTASMDefinition.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTASMDefinition.java @@ -73,7 +73,14 @@ public class ASTASMDefinition */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptASMDefinition(this); + try + { + requestor.acceptASMDefinition(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTAbstractTypeSpecifierDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTAbstractTypeSpecifierDeclaration.java index daf42334006..5e4d2831462 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTAbstractTypeSpecifierDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTAbstractTypeSpecifierDeclaration.java @@ -91,7 +91,14 @@ public class ASTAbstractTypeSpecifierDeclaration */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptAbstractTypeSpecDeclaration(this); + try + { + requestor.acceptAbstractTypeSpecDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTClassSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTClassSpecifier.java index 896b1ed627d..0be206ae74f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTClassSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTClassSpecifier.java @@ -34,6 +34,9 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl String name, ASTClassKind kind, ClassNameType type, + int startingOffset, + int nameOffset, + int nameEndOffset, ASTAccessVisibility access) { super( scope, name ); @@ -41,6 +44,9 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl qualifiedNameElement = new ASTQualifiedNamedElement( scope, name ); classNameType = type; classKind = kind; + offsets.setStartingOffset(startingOffset); + offsets.setNameOffset(nameOffset); + offsets.setNameEndOffset(nameEndOffset); this.access = access; this.name = name; } @@ -171,14 +177,42 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterClassSpecifier(this); + try + { + requestor.enterClassSpecifier(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitClassSpecifier(this); + try + { + requestor.exitClassSpecifier(this); + } + catch (Exception e) + { + /* do nothing */ + } } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTCompilationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTCompilationUnit.java index e03b4d0a5ad..81fa977a141 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTCompilationUnit.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTCompilationUnit.java @@ -49,7 +49,14 @@ public class ASTCompilationUnit implements IASTCompilationUnit, IASTQScope { */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterCompilationUnit(this); + try + { + requestor.enterCompilationUnit(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -57,7 +64,14 @@ public class ASTCompilationUnit implements IASTCompilationUnit, IASTQScope { */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitCompilationUnit(this); + try + { + requestor.exitCompilationUnit(this); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTElaboratedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTElaboratedTypeSpecifier.java index cd1285cd8a6..cfc049f0167 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTElaboratedTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTElaboratedTypeSpecifier.java @@ -35,12 +35,13 @@ public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier * @param startingOffset * @param endOffset */ - public ASTElaboratedTypeSpecifier(IASTScope scope, ASTClassKind elaboratedClassKind, String typeName, int startingOffset, int nameOffset, int endOffset) + public ASTElaboratedTypeSpecifier(IASTScope scope, ASTClassKind elaboratedClassKind, String typeName, int startingOffset, int nameOffset, int nameEndOffset, int endOffset) { classKind = elaboratedClassKind; this.typeName = typeName; setStartingOffset( startingOffset ); setNameOffset( nameOffset ); + setNameEndOffset( nameEndOffset ); setEndingOffset( endOffset ); qualifiedName = new ASTQualifiedNamedElement( scope, typeName ); } @@ -106,7 +107,14 @@ public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptElaboratedForewardDeclaration(this); + try + { + requestor.acceptElaboratedForewardDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) @@ -132,4 +140,19 @@ public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier public void setNameOffset(int o) { offsets.setNameOffset(o); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java index 72ec721e66a..8fad20630aa 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerationSpecifier.java @@ -36,12 +36,13 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier * @param name * @param startingOffset */ - public ASTEnumerationSpecifier(IASTScope scope, String name, int startingOffset, int nameOffset) + public ASTEnumerationSpecifier(IASTScope scope, String name, int startingOffset, int nameOffset, int nameEndOffset ) { super( scope, name ); this.name = name; offsets.setNameOffset( nameOffset ); offsets.setStartingOffset( startingOffset); + setNameEndOffset(nameEndOffset); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName() @@ -111,7 +112,14 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptEnumerationSpecifier(this); + try + { + requestor.acceptEnumerationSpecifier(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) @@ -125,4 +133,19 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier public void exitScope(ISourceElementRequestor requestor) { } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java index d3d89a34c68..776ec65bb53 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTEnumerator.java @@ -35,12 +35,13 @@ public class ASTEnumerator * @param startingOffset * @param endingOffset */ - public ASTEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int endingOffset, IASTExpression initialValue) + public ASTEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset, IASTExpression initialValue) { this.enumeration = enumeration; name = string; offsets.setStartingOffset( startingOffset ); - offsets.setNameOffset( startingOffset ); + offsets.setNameOffset( nameOffset ); + offsets.setNameEndOffset( nameEndOffset ); offsets.setEndingOffset( endingOffset ); this.initialValue = initialValue; } @@ -125,4 +126,20 @@ public class ASTEnumerator public void exitScope(ISourceElementRequestor requestor) { } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } + } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTField.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTField.java index 144d97745c5..f2112cda9cc 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTField.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTField.java @@ -38,7 +38,7 @@ public class ASTField extends ASTVariable implements IASTField * @param isRegister * @param isStatic */ - public ASTField(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) + public ASTField(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, int nameEndOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) { super( scope, @@ -50,7 +50,7 @@ public class ASTField extends ASTVariable implements IASTField isMutable, isExtern, isRegister, - isStatic, startingOffset, nameOffset, constructorExpression ); + isStatic, startingOffset, nameOffset, nameEndOffset, constructorExpression ); this.visibility = visibility; } @@ -64,7 +64,14 @@ public class ASTField extends ASTVariable implements IASTField public void acceptElement( ISourceElementRequestor requestor ) { - requestor.acceptField( this ); + try + { + requestor.acceptField( this ); + } + catch (Exception e) + { + /* do nothing */ + } } public void enterScope( ISourceElementRequestor requestor ) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTFunction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTFunction.java index 32bff4bd8ab..38988967d2b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTFunction.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTFunction.java @@ -51,10 +51,10 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction offsets.setStartingOffset( startOffset ); offsets.setNameOffset( nameOffset ); qualifiedName = new ASTQualifiedNamedElement( scope, name ); - this.nameEndOffset = nameEndOffset; + setNameEndOffset(nameEndOffset); } - private final int nameEndOffset; + private boolean previouslyDeclared; private boolean hasFunctionBody = false; private final IASTQualifiedNameElement qualifiedName; private final IASTTemplate ownerTemplateDeclaration; @@ -184,14 +184,28 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptFunctionDeclaration(this); + try + { + requestor.acceptFunctionDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterFunctionBody( this ); + try + { + requestor.enterFunctionBody( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -199,7 +213,14 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitFunctionBody( this ); + try + { + requestor.exitFunctionBody( this ); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFunction#setHasFunctionBody(boolean) @@ -225,14 +246,19 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction */ public boolean previouslyDeclared() { - // TODO Auto-generated method stub - return false; + return previouslyDeclared; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTFunction#getNameEndOffset() - */ - public int getNameEndOffset() - { - return nameEndOffset; - } -} + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + }} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTLinkageSpecification.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTLinkageSpecification.java index f48ecebcb8c..4b8e10ac788 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTLinkageSpecification.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTLinkageSpecification.java @@ -101,7 +101,14 @@ public class ASTLinkageSpecification */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterLinkageSpecification(this); + try + { + requestor.enterLinkageSpecification(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -109,7 +116,14 @@ public class ASTLinkageSpecification */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitLinkageSpecification(this); + try + { + requestor.exitLinkageSpecification(this); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTMethod.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTMethod.java index 297f8c10728..87ee477c02b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTMethod.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTMethod.java @@ -167,17 +167,38 @@ public class ASTMethod extends ASTFunction implements IASTMethod public void acceptElement( ISourceElementRequestor requestor ) { - requestor.acceptMethodDeclaration( this ); + try + { + requestor.acceptMethodDeclaration( this ); + } + catch (Exception e) + { + /* do nothing */ + } } public void enterScope( ISourceElementRequestor requestor ) { - requestor.enterMethodBody(this); + try + { + requestor.enterMethodBody(this); + } + catch (Exception e) + { + /* do nothing */ + } } public void exitScope( ISourceElementRequestor requestor ) { - requestor.exitMethodBody(this); + try + { + requestor.exitMethodBody(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTMethod#getConstructorChainInitializers() diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceAlias.java index d06250e225c..34e5017885e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceAlias.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceAlias.java @@ -35,11 +35,12 @@ public class ASTNamespaceAlias extends ASTDeclaration implements IASTNamespaceAl * @param nameOffset * @param endOffset */ - public ASTNamespaceAlias(IASTScope scope, String identifier, String string, int startingOffset, int nameOffset, int endOffset) + public ASTNamespaceAlias(IASTScope scope, String identifier, String string, int startingOffset, int nameOffset, int nameEndOffset, int endOffset) { super( scope ); setStartingOffset(startingOffset); setNameOffset(nameOffset); + setNameEndOffset( nameEndOffset ); setEndingOffset(endOffset); this.identifier = identifier; this.alias = string; @@ -129,4 +130,19 @@ public class ASTNamespaceAlias extends ASTDeclaration implements IASTNamespaceAl { return offsets.getEndingOffset(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceDefinition.java index 116c587bc0d..423a580f3f4 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceDefinition.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNamespaceDefinition.java @@ -31,11 +31,14 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp private NamedOffsets offsets = new NamedOffsets(); private final ASTQualifiedNamedElement qualifiedNameElement; - public ASTNamespaceDefinition( IASTScope scope, String name ) + public ASTNamespaceDefinition( IASTScope scope, String name, int startOffset, int nameOffset, int nameEndOffset ) { super( scope ); qualifiedNameElement = new ASTQualifiedNamedElement( scope, name ); this.name = name; + setStartingOffset(startOffset); + setNameOffset(nameOffset); + setNameEndOffset(nameEndOffset); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getName() @@ -118,13 +121,42 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterNamespaceDefinition(this); + try + { + requestor.enterNamespaceDefinition(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitNamespaceDefinition(this); + try + { + requestor.exitNamespaceDefinition(this); + } + catch (Exception e) + { + /* do nothing */ + } } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTParameterDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTParameterDeclaration.java index 354aa9a2916..aecd00e5fa5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTParameterDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTParameterDeclaration.java @@ -36,7 +36,7 @@ public class ASTParameterDeclaration extends ASTAbstractDeclaration implements I * @param parameterName * @param initializerClause */ - public ASTParameterDeclaration(boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset) + public ASTParameterDeclaration(boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset, int nameEndOffset ) { super( isConst, isVolatile, typeSpecifier, pointerOperators, arrayModifiers, parameters, pointerOp ); this.parameterName = parameterName; @@ -44,6 +44,7 @@ public class ASTParameterDeclaration extends ASTAbstractDeclaration implements I setStartingOffset( startingOffset ); setEndingOffset( endingOffset ); setNameOffset( nameOffset ); + setNameEndOffset(nameEndOffset); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration#getName() @@ -102,4 +103,19 @@ public class ASTParameterDeclaration extends ASTAbstractDeclaration implements I { return offsets.getEndingOffset(); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateDeclaration.java index e87fac46af7..207ce880c2c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateDeclaration.java @@ -112,7 +112,14 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterTemplateDeclaration(this); + try + { + requestor.enterTemplateDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -120,6 +127,13 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitTemplateDeclaration(this); + try + { + requestor.exitTemplateDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateInstantiation.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateInstantiation.java index a20e5be4b93..6287b6a8420 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateInstantiation.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateInstantiation.java @@ -94,7 +94,14 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterTemplateInstantiation(this); + try + { + requestor.enterTemplateInstantiation(this); + } + catch (Exception e) + { + /* do nothing */ + } } @@ -103,6 +110,13 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitTemplateExplicitInstantiation(this); + try + { + requestor.exitTemplateExplicitInstantiation(this); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateSpecialization.java index ba75afc828d..9ff0d909120 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateSpecialization.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateSpecialization.java @@ -89,7 +89,14 @@ public class ASTTemplateSpecialization extends ASTDeclaration implements IASTTem */ public void enterScope(ISourceElementRequestor requestor) { - requestor.enterTemplateSpecialization(this); + try + { + requestor.enterTemplateSpecialization(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) @@ -97,6 +104,13 @@ public class ASTTemplateSpecialization extends ASTDeclaration implements IASTTem */ public void exitScope(ISourceElementRequestor requestor) { - requestor.exitTemplateSpecialization(this); + try + { + requestor.exitTemplateSpecialization(this); + } + catch (Exception e) + { + /* do nothing */ + } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypedefDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypedefDeclaration.java index 9783a148320..52087fdef7c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypedefDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypedefDeclaration.java @@ -32,13 +32,14 @@ public class ASTTypedefDeclaration extends ASTDeclaration implements IASTTypedef * @param name * @param mapping */ - public ASTTypedefDeclaration(IASTScope scope, String name, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset) + public ASTTypedefDeclaration(IASTScope scope, String name, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset, int nameEndOffset ) { super( scope ); this.name = name; this.mapping = mapping; setStartingOffset(startingOffset); setNameOffset(nameOffset); + setNameEndOffset(nameEndOffset); qualifiedName = new ASTQualifiedNamedElement( scope, name ); } /* (non-Javadoc) @@ -110,7 +111,14 @@ public class ASTTypedefDeclaration extends ASTDeclaration implements IASTTypedef */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptTypedefDeclaration(this); + try + { + requestor.acceptTypedefDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) @@ -124,5 +132,20 @@ public class ASTTypedefDeclaration extends ASTDeclaration implements IASTTypedef public void exitScope(ISourceElementRequestor requestor) { } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java index 4d71e7edf92..a4c80cb17cf 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDeclaration.java @@ -84,7 +84,14 @@ public class ASTUsingDeclaration */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptUsingDeclaration(this); + try + { + requestor.acceptUsingDeclaration(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDirective.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDirective.java index 54a69367ca6..27b691292b5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDirective.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTUsingDirective.java @@ -76,7 +76,14 @@ public class ASTUsingDirective */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptUsingDirective(this); + try + { + requestor.acceptUsingDirective(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTVariable.java index 6a071d1bf73..a7f9ef50561 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTVariable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTVariable.java @@ -41,7 +41,7 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable * @param scope */ public ASTVariable(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, - IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, IASTExpression constructorExpression ) + IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, int nameEndOffset, IASTExpression constructorExpression ) { super(scope); this.isAuto = isAuto; @@ -57,6 +57,7 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable qualifiedName = new ASTQualifiedNamedElement( scope, name ); setStartingOffset(startingOffset); setNameOffset(nameOffset); + setNameEndOffset( nameEndOffset ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTVariable#isAuto() @@ -182,7 +183,14 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptVariable(this); + try + { + requestor.acceptVariable(this); + } + catch (Exception e) + { + /* do nothing */ + } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) @@ -203,6 +211,20 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable { return constructorExpression; } - + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#getNameEndOffset() + */ + public int getNameEndOffset() + { + return offsets.getNameEndOffset(); + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement#setNameEndOffset(int) + */ + public void setNameEndOffset(int o) + { + offsets.setNameEndOffset(o); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java index 0bc8537cc5b..e349faf0a14 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/QuickParseASTFactory.java @@ -85,10 +85,8 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.IASTFactory#createNamespaceDefinition(int, java.lang.String, int) */ - public IASTNamespaceDefinition createNamespaceDefinition(IASTScope scope, String identifier, int first, int nameOffset) { - IASTNamespaceDefinition definition = new ASTNamespaceDefinition( scope, identifier ); - definition.setStartingOffset( first ); - definition.setNameOffset( nameOffset ); + public IASTNamespaceDefinition createNamespaceDefinition(IASTScope scope, String identifier, int first, int nameOffset, int nameEndOffset) { + IASTNamespaceDefinition definition = new ASTNamespaceDefinition( scope, identifier, first, nameOffset, nameEndOffset ); return definition; } @@ -116,11 +114,8 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (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) */ - public IASTClassSpecifier createClassSpecifier(IASTScope scope, ITokenDuple name, ASTClassKind kind, ClassNameType type, ASTAccessVisibility access, int startingOffset, int nameOffset) throws ASTSemanticException { - IASTClassSpecifier spec = new ASTClassSpecifier( scope, name == null ? "" : name.toString() , kind, type, access ); - spec.setStartingOffset( startingOffset ); - spec.setNameOffset( nameOffset ); - return spec; + public IASTClassSpecifier createClassSpecifier(IASTScope scope, ITokenDuple name, ASTClassKind kind, ClassNameType type, ASTAccessVisibility access, int startingOffset, int nameOffset, int nameEndOffset ) throws ASTSemanticException { + return new ASTClassSpecifier( scope, name == null ? "" : name.toString() , kind, type, startingOffset, nameOffset, nameEndOffset, access ); } /* (non-Javadoc) @@ -134,17 +129,17 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createEnumerationSpecifier(java.lang.String, int) */ - public IASTEnumerationSpecifier createEnumerationSpecifier(IASTScope scope, String name, int startingOffset, int nameOffset) + public IASTEnumerationSpecifier createEnumerationSpecifier(IASTScope scope, String name, int startingOffset, int nameOffset, int nameEndOffset) { - return new ASTEnumerationSpecifier( scope, name, startingOffset, nameOffset ); + return new ASTEnumerationSpecifier( scope, name, startingOffset, nameOffset, nameEndOffset ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#addEnumerator(org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier, java.lang.String, int, int) */ - public void addEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int endingOffset, IASTExpression initialValue) + public void addEnumerator(IASTEnumerationSpecifier enumeration, String string, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset, IASTExpression initialValue) { - IASTEnumerator enumerator = new ASTEnumerator( enumeration, string, startingOffset, endingOffset, initialValue ); + IASTEnumerator enumerator = new ASTEnumerator( enumeration, string, startingOffset, nameOffset, nameEndOffset, endingOffset, initialValue ); ((ASTEnumerationSpecifier)enumeration).addEnumerator( enumerator ); } @@ -189,7 +184,7 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createFunction(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, java.util.List, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration, org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification, boolean, boolean, boolean, int, int, org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration) */ - public IASTFunction createFunction(IASTScope scope, String name, int nameEndOffset, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, boolean isInline, boolean isFriend, boolean isStatic, int startOffset, int nameOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, boolean isVirtual, boolean isExplicit, boolean isPureVirtual, List constructorChain, boolean isFunctionDefinition ) + public IASTFunction createFunction(IASTScope scope, String name, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, boolean isInline, boolean isFriend, boolean isStatic, int startOffset, int nameOffset, int nameEndOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, boolean isVirtual, boolean isExplicit, boolean isPureVirtual, List constructorChain, boolean isFunctionDefinition ) { return new ASTFunction(scope, name, nameEndOffset, parameters, returnType, exception, isInline, isFriend, isStatic, startOffset, nameOffset, ownerTemplate ); } @@ -197,7 +192,7 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createMethod(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, java.util.List, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration, org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification, boolean, boolean, boolean, int, int, org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.eclipse.cdt.core.parser.ast.ASTAccessVisibility) */ - public IASTMethod createMethod(IASTScope scope, String name, int nameEndOffset, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, boolean isInline, boolean isFriend, boolean isStatic, int startOffset, int nameOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, boolean isVirtual, boolean isExplicit, boolean isPureVirtual, ASTAccessVisibility visibility, List constructorChain, boolean isFunctionDefinition ) + public IASTMethod createMethod(IASTScope scope, String name, List parameters, IASTAbstractDeclaration returnType, IASTExceptionSpecification exception, boolean isInline, boolean isFriend, boolean isStatic, int startOffset, int nameOffset, int nameEndOffset, IASTTemplate ownerTemplate, boolean isConst, boolean isVolatile, boolean isVirtual, boolean isExplicit, boolean isPureVirtual, ASTAccessVisibility visibility, List constructorChain, boolean isFunctionDefinition ) { return new ASTMethod(scope, name, nameEndOffset, parameters, returnType, exception, isInline, isFriend, isStatic, startOffset, nameOffset, ownerTemplate, isConst, isVolatile, false, false, isVirtual, isExplicit, isPureVirtual, visibility, constructorChain); } @@ -205,17 +200,17 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createVariable(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, boolean, org.eclipse.cdt.core.parser.ast.IASTInitializerClause, org.eclipse.cdt.core.parser.ast.IASTExpression, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration, boolean, boolean, boolean, boolean) */ - public IASTVariable createVariable(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, IASTExpression constructorExpression) + public IASTVariable createVariable(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, int nameEndOffset, IASTExpression constructorExpression) { - return new ASTVariable(scope, name, isAuto, initializerClause, bitfieldExpression, abstractDeclaration, isMutable, isExtern, isRegister, isStatic, startingOffset, nameOffset, constructorExpression); + return new ASTVariable(scope, name, isAuto, initializerClause, bitfieldExpression, abstractDeclaration, isMutable, isExtern, isRegister, isStatic, startingOffset, nameOffset, nameEndOffset, constructorExpression); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createField(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, boolean, org.eclipse.cdt.core.parser.ast.IASTInitializerClause, org.eclipse.cdt.core.parser.ast.IASTExpression, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration, boolean, boolean, boolean, boolean, org.eclipse.cdt.core.parser.ast.ASTAccessVisibility) */ - public IASTField createField(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) + public IASTField createField(IASTScope scope, String name, boolean isAuto, IASTInitializerClause initializerClause, IASTExpression bitfieldExpression, IASTAbstractDeclaration abstractDeclaration, boolean isMutable, boolean isExtern, boolean isRegister, boolean isStatic, int startingOffset, int nameOffset, int nameEndOffset, IASTExpression constructorExpression, ASTAccessVisibility visibility) { - return new ASTField(scope, name, isAuto, initializerClause, bitfieldExpression, abstractDeclaration, isMutable, isExtern, isRegister, isStatic, startingOffset, nameOffset, constructorExpression, visibility); + return new ASTField(scope, name, isAuto, initializerClause, bitfieldExpression, abstractDeclaration, isMutable, isExtern, isRegister, isStatic, startingOffset, nameOffset, nameEndOffset, constructorExpression, visibility); } /* (non-Javadoc) @@ -253,9 +248,9 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createTypedef(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration) */ - public IASTTypedefDeclaration createTypedef(IASTScope scope, String name, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset) + public IASTTypedefDeclaration createTypedef(IASTScope scope, String name, IASTAbstractDeclaration mapping, int startingOffset, int nameOffset, int nameEndOffset) { - return new ASTTypedefDeclaration( scope, name, mapping, startingOffset, nameOffset ); + return new ASTTypedefDeclaration( scope, name, mapping, startingOffset, nameOffset, nameEndOffset); } /* (non-Javadoc) @@ -268,15 +263,15 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory public IASTElaboratedTypeSpecifier createElaboratedTypeSpecifier(IASTScope scope, ASTClassKind elaboratedClassKind, ITokenDuple typeName, int startingOffset, int endOffset, boolean isForewardDecl) { - return new ASTElaboratedTypeSpecifier( scope, elaboratedClassKind, typeName.toString(), startingOffset, typeName.getFirstToken().getOffset(), endOffset ); + return new ASTElaboratedTypeSpecifier( scope, elaboratedClassKind, typeName.toString(), startingOffset, typeName.getFirstToken().getOffset(), typeName.getLastToken().getEndOffset(), endOffset ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTFactory#createNamespaceAlias(org.eclipse.cdt.core.parser.ast.IASTScope, java.lang.String, org.eclipse.cdt.core.parser.ITokenDuple, int, int, int) */ - public IASTNamespaceAlias createNamespaceAlias(IASTScope scope, String identifier, ITokenDuple alias, int startingOffset, int nameOffset, int endOffset) + public IASTNamespaceAlias createNamespaceAlias(IASTScope scope, String identifier, ITokenDuple alias, int startingOffset, int nameOffset, int nameEndOffset, int endOffset) { - return new ASTNamespaceAlias( scope, identifier, alias.toString(), startingOffset, nameOffset, endOffset ); + return new ASTNamespaceAlias( scope, identifier, alias.toString(), startingOffset, nameOffset, nameEndOffset, endOffset ); } /* (non-Javadoc) @@ -293,9 +288,9 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory return true; // we have no information to say that it is not } - public IASTParameterDeclaration createParameterDeclaration(boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int endingOffset, int nameOffset) + public IASTParameterDeclaration createParameterDeclaration(boolean isConst, boolean isVolatile, IASTTypeSpecifier typeSpecifier, List pointerOperators, List arrayModifiers, List parameters, ASTPointerOperator pointerOp, String parameterName, IASTInitializerClause initializerClause, int startingOffset, int nameOffset, int nameEndOffset, int endingOffset) { - return new ASTParameterDeclaration( isConst, isVolatile, typeSpecifier, pointerOperators, arrayModifiers, parameters, pointerOp, parameterName, initializerClause, startingOffset, endingOffset, nameOffset ); + return new ASTParameterDeclaration( isConst, isVolatile, typeSpecifier, pointerOperators, arrayModifiers, parameters, pointerOp, parameterName, initializerClause, startingOffset, endingOffset, nameOffset, nameEndOffset ); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/problem/DefaultProblem.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/problem/DefaultProblem.java index 900add9697a..c572566ed29 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/problem/DefaultProblem.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/problem/DefaultProblem.java @@ -253,7 +253,14 @@ public class DefaultProblem implements IProblem { */ public void acceptElement(ISourceElementRequestor requestor) { - requestor.acceptProblem( this ); + try + { + requestor.acceptProblem( this ); + } + catch (Exception e) + { + // do nothing + } } /* (non-Javadoc)