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 a86af18437d..151975fd9e5 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 @@ -75,11 +75,19 @@ import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTVariable; import org.eclipse.cdt.core.parser.ast.IASTVariableReference; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; -import org.eclipse.cdt.internal.core.parser.CompleteParser; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ParserException; -import org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache; -import org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTTypedefReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTClassReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTEnumerationReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTEnumeratorReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTFieldReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTFunctionReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTMethodReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTNamespaceReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTParameterReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTTemplateParameterReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTTypedefReference; +import org.eclipse.cdt.internal.core.parser.ast.complete.ASTVariableReference; /** * @author jcamelon @@ -178,21 +186,21 @@ public class CompleteParseBaseTest extends TestCase /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } @@ -630,32 +638,32 @@ public class CompleteParseBaseTest extends TestCase r = new ASTTypedefReference(reference.getOffset(), (IASTTypedefDeclaration) referencedElement); if (referencedElement instanceof IASTEnumerationSpecifier) - r = new ReferenceCache.ASTEnumerationReference(reference.getOffset(), + r = new ASTEnumerationReference(reference.getOffset(), (IASTEnumerationSpecifier) referencedElement); if (referencedElement instanceof IASTTemplateParameter) - r = new ReferenceCache.ASTTemplateParameterReference(reference.getOffset(), + r = new ASTTemplateParameterReference(reference.getOffset(), (IASTTemplateParameter) referencedElement); if (referencedElement instanceof IASTParameterDeclaration) - r = new ReferenceCache.ASTParameterReference(reference.getOffset(), + r = new ASTParameterReference(reference.getOffset(), (IASTParameterDeclaration) referencedElement); if (referencedElement instanceof IASTTypeSpecifier) - r = new ReferenceCache.ASTClassReference(reference.getOffset(), + r = new ASTClassReference(reference.getOffset(), (IASTTypeSpecifier) referencedElement); if (referencedElement instanceof IASTNamespaceDefinition) - r = new ReferenceCache.ASTNamespaceReference(reference.getOffset(), + r = new ASTNamespaceReference(reference.getOffset(), (IASTNamespaceDefinition) referencedElement); if (referencedElement instanceof IASTFunction) - r = new ReferenceCache.ASTFunctionReference(reference.getOffset(), + r = new ASTFunctionReference(reference.getOffset(), (IASTFunction) referencedElement); if (referencedElement instanceof IASTMethod) - r = new ReferenceCache.ASTMethodReference(reference.getOffset(), (IASTMethod) referencedElement); + r = new ASTMethodReference(reference.getOffset(), (IASTMethod) referencedElement); if (referencedElement instanceof IASTField) - r = new ReferenceCache.ASTFieldReference(reference.getOffset(), (IASTField) referencedElement); + r = new ASTFieldReference(reference.getOffset(), (IASTField) referencedElement); if (referencedElement instanceof IASTVariable) - r = new ReferenceCache.ASTVariableReference(reference.getOffset(), + r = new ASTVariableReference(reference.getOffset(), (IASTVariable) referencedElement); if (referencedElement instanceof IASTEnumerator) - r = new ReferenceCache.ASTEnumeratorReference(reference.getOffset(), + r = new ASTEnumeratorReference(reference.getOffset(), (IASTEnumerator) referencedElement); if( r != null ) references.add( r ); @@ -810,7 +818,7 @@ public class CompleteParseBaseTest extends TestCase if( (! parseResult || callback.getProblems().hasNext() ) && throwOnError ) throw new ParserException( "FAILURE"); //$NON-NLS-1$ if( parseResult ) { - assertTrue( ((CompleteParser)parser).validateCaches()); + assertTrue( ((Parser)parser).validateCaches()); assertTrue( callback.isBalanced() ); } return callback.getCompilationUnit(); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParsePluginTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParsePluginTest.java index d83dc76524d..5f61cf26b80 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParsePluginTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParsePluginTest.java @@ -68,7 +68,7 @@ import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTVariable; import org.eclipse.cdt.core.parser.ast.IASTVariableReference; -import org.eclipse.cdt.internal.core.parser.CompleteParser; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ParserException; import org.eclipse.cdt.internal.core.search.indexing.IndexManager; import org.eclipse.cdt.testplugin.CProjectHelper; @@ -265,7 +265,7 @@ public class CompleteParsePluginTest extends TestCase { if( !parseResult ) throw new ParserException( "FAILURE"); //$NON-NLS-1$ if( parseResult ) { - assertTrue( ((CompleteParser)parser).validateCaches()); + assertTrue( ((Parser)parser).validateCaches()); } return callback.getCompilationUnit(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementCallbackDelegate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementCallbackDelegate.java index f28b2dce3c8..b126c8c9175 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementCallbackDelegate.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementCallbackDelegate.java @@ -10,7 +10,6 @@ ***********************************************************************/ package org.eclipse.cdt.core.parser; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -18,7 +17,7 @@ import org.eclipse.cdt.core.parser.ast.IReferenceManager; */ public interface ISourceElementCallbackDelegate { - public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ); - public void enterScope( ISourceElementRequestor requestor, IReferenceManager manager ); - public void exitScope( ISourceElementRequestor requestor, IReferenceManager manager ); + public void acceptElement( ISourceElementRequestor requestor ); + public void enterScope( ISourceElementRequestor requestor ); + public void exitScope( ISourceElementRequestor requestor ); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ITokenDuple.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ITokenDuple.java index ffede24db21..21804ed67de 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ITokenDuple.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ITokenDuple.java @@ -13,8 +13,6 @@ package org.eclipse.cdt.core.parser; import java.util.Iterator; import java.util.List; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; - /** * @author jcamelon @@ -68,6 +66,6 @@ public interface ITokenDuple { */ public abstract String [] toQualifiedName(); - public void freeReferences( IReferenceManager manager ); - public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ); + public void freeReferences( ); + public void acceptElement( ISourceElementRequestor requestor ); } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java index 44f61453bdf..47fd59b0268 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java @@ -18,14 +18,10 @@ import org.eclipse.cdt.core.parser.ast.IASTFactory; import org.eclipse.cdt.core.parser.extension.ExtensionDialect; import org.eclipse.cdt.core.parser.extension.IParserExtension; import org.eclipse.cdt.core.parser.extension.IParserExtensionFactory; -import org.eclipse.cdt.internal.core.parser.CompleteParser; -import org.eclipse.cdt.internal.core.parser.CompletionParser; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ParserExtensionFactory; import org.eclipse.cdt.internal.core.parser.QuickParseCallback; -import org.eclipse.cdt.internal.core.parser.QuickParser; -import org.eclipse.cdt.internal.core.parser.SelectionParser; import org.eclipse.cdt.internal.core.parser.StructuralParseCallback; -import org.eclipse.cdt.internal.core.parser.StructuralParser; import org.eclipse.cdt.internal.core.parser.ast.complete.CompleteParseASTFactory; import org.eclipse.cdt.internal.core.parser.ast.expression.ExpressionParseASTFactory; import org.eclipse.cdt.internal.core.parser.ast.quick.QuickParseASTFactory; @@ -70,16 +66,7 @@ public class ParserFactory { ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode ); ISourceElementRequestor ourCallback = (( callback == null) ? new NullSourceElementRequestor() : callback ); IParserExtension extension = extensionFactory.createParserExtension(); - if( ourMode == ParserMode.COMPLETE_PARSE) - return new CompleteParser( scanner, ourCallback, language, logService, extension); - else if( ourMode == ParserMode.STRUCTURAL_PARSE ) - return new StructuralParser( scanner, ourCallback, language, logService, extension ); - else if( ourMode == ParserMode.COMPLETION_PARSE ) - return new CompletionParser( scanner, ourCallback, language, logService, extension ); - else if (ourMode == ParserMode.SELECTION_PARSE ) - return new SelectionParser( scanner, ourCallback, language, logService, extension ); - else - return new QuickParser( scanner, ourCallback, language, logService, extension ); + return new Parser( scanner, ourMode, ourCallback, language, logService, extension ); } /** diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java index 04e26712ea9..533b3959e1f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerationSpecifier.java @@ -25,5 +25,5 @@ public interface IASTEnumerationSpecifier extends ISourceElementCallbackDelegate /** * @param referenceManager */ - public void freeReferences(IReferenceManager referenceManager); + public void freeReferences(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerator.java index 1adcc117ac3..0ae333df2c9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTEnumerator.java @@ -23,5 +23,5 @@ public interface IASTEnumerator extends IASTOffsetableNamedElement, IASTNode, IS /** * @param referenceManager */ - public void freeReferences(IReferenceManager referenceManager); + public void freeReferences(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java index 1072dee28c9..724f778076a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTExpression.java @@ -312,7 +312,7 @@ public interface IASTExpression extends ISourceElementCallbackDelegate, IASTNode public Iterator getNewPlacementExpressions(); public Iterator getNewTypeIdExpressions(); public Iterator getNewInitializerExpressions(); - public void freeReferences( IReferenceManager manager ); + public void freeReferences( ); } @@ -328,12 +328,12 @@ public interface IASTExpression extends ISourceElementCallbackDelegate, IASTNode public IASTNewExpressionDescriptor getNewExpressionDescriptor(); public long evaluateExpression() throws ASTExpressionEvaluationException; - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException; + public void reconcileReferences() throws ASTNotImplementedException; public void purgeReferences() throws ASTNotImplementedException; /** * @param manager TODO * */ - public void freeReferences(IReferenceManager manager); + public void freeReferences(); } 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 f059e262977..a4fb816be25 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 @@ -271,8 +271,5 @@ public interface IASTFactory public boolean validateDirectMemberOperation(IASTNode node); public void constructExpressions( boolean flag ); - - public IReferenceManager getReferenceManager(); - } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTSimpleTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTSimpleTypeSpecifier.java index c864e512095..a3e45888004 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTSimpleTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTSimpleTypeSpecifier.java @@ -57,5 +57,5 @@ public interface IASTSimpleTypeSpecifier extends IASTTypeSpecifier /** * @param referenceManager */ - public void releaseReferences(IReferenceManager referenceManager); + public void releaseReferences(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypeId.java index c9533a3b16e..33a178266e7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypeId.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypeId.java @@ -42,5 +42,5 @@ public interface IASTTypeId extends ISourceElementCallbackDelegate /** * @param manager */ - public void freeReferences(IReferenceManager manager); + public void freeReferences(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IReferenceManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IReferenceManager.java deleted file mode 100644 index e15b2137ce5..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IReferenceManager.java +++ /dev/null @@ -1,28 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002-2004 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation - ***********************************************************************/ -package org.eclipse.cdt.core.parser.ast; - -import java.util.List; - -import org.eclipse.cdt.core.parser.ISourceElementRequestor; - -/** - * @author jcamelon - * - */ -public interface IReferenceManager { - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTReferenceStore#processReferences() - */ - public void processReferences(List references, - ISourceElementRequestor requestor); - public void returnReference(IASTReference reference); -} \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/CompleteParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/CompleteParser.java deleted file mode 100644 index 56ea487a46d..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/CompleteParser.java +++ /dev/null @@ -1,88 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.internal.core.parser; - -import org.eclipse.cdt.core.parser.BacktrackException; -import org.eclipse.cdt.core.parser.EndOfFileException; -import org.eclipse.cdt.core.parser.IParserLogService; -import org.eclipse.cdt.core.parser.IScanner; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.ParseError; -import org.eclipse.cdt.core.parser.ParserFactory; -import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ParserMode; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; -import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.extension.IParserExtension; -import org.eclipse.cdt.internal.core.parser.ast.complete.CompleteParseASTFactory; - -/** - * @author jcamelon - */ -public class CompleteParser extends Parser { - - /** - * @param scanner - * @param callback - * @param mode - * @param language - * @param log - */ - public CompleteParser(IScanner scanner, ISourceElementRequestor callback, ParserLanguage language, IParserLogService log, IParserExtension extension ) { - super(scanner, callback, language, log, extension ); - } - - protected void handleFunctionBody(IASTScope scope) throws BacktrackException, EndOfFileException - { - functionBody(scope); - } - - protected void catchBlockCompoundStatement(IASTScope scope) throws BacktrackException, EndOfFileException - { - compoundStatement(scope, true); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int) - */ - public IASTCompletionNode parse(int offset) throws ParseError { - throw new ParseError( ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int, int) - */ - public ISelectionParseResult parse(int startingOffset, int endingOffset) throws ParseError { - throw new ParseError( ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setupASTFactory(org.eclipse.cdt.core.parser.IScanner, org.eclipse.cdt.core.parser.ParserLanguage) - */ - protected void setupASTFactory(IScanner scanner, ParserLanguage language) { - astFactory = ParserFactory.createASTFactory( ParserMode.COMPLETE_PARSE, language); - scanner.setASTFactory(astFactory); - astFactory.setLogger(log); - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#validateCaches() - */ - public boolean validateCaches() { - if( super.validateCaches() && astFactory instanceof CompleteParseASTFactory) - return ((CompleteParseASTFactory)astFactory).validateCaches(); - return false; - } - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/CompletionParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/CompletionParser.java deleted file mode 100644 index 74fd69a15ce..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/CompletionParser.java +++ /dev/null @@ -1,175 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.internal.core.parser; - -import java.util.Iterator; -import java.util.Set; -import java.util.TreeSet; - -import org.eclipse.cdt.core.parser.BacktrackException; -import org.eclipse.cdt.core.parser.EndOfFileException; -import org.eclipse.cdt.core.parser.IParser; -import org.eclipse.cdt.core.parser.IParserLogService; -import org.eclipse.cdt.core.parser.IScanner; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.IToken; -import org.eclipse.cdt.core.parser.KeywordSetKey; -import org.eclipse.cdt.core.parser.OffsetLimitReachedException; -import org.eclipse.cdt.core.parser.ParseError; -import org.eclipse.cdt.core.parser.ParserFactory; -import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ParserMode; -import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTCodeScope; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; -import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; -import org.eclipse.cdt.core.parser.extension.IParserExtension; -import org.eclipse.cdt.internal.core.parser.ast.ASTCompletionNode; - -/** - * @author jcamelon - */ -public class CompletionParser extends ContextualParser implements IParser { - - /** - * @param scanner - * @param callback - * @param language - * @param log - */ - public CompletionParser(IScanner scanner, ISourceElementRequestor callback, ParserLanguage language, IParserLogService log, IParserExtension extension ) { - super(scanner, callback, language, log, extension ); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int) - */ - public IASTCompletionNode parse(int offset) { - scanner.setOffsetBoundary(offset); - //long startTime = System.currentTimeMillis(); - translationUnit(); - //long stopTime = System.currentTimeMillis(); - //System.out.println("Completion Parse time: " + (stopTime - startTime) + "ms"); - return new ASTCompletionNode( getCompletionKind(), getCompletionScope(), getCompletionContext(), getCompletionPrefix(), reconcileKeywords( getKeywordSet(), getCompletionPrefix() ), String.valueOf(getCompletionFunctionName()), getParameterListExpression() ); - } - - /** - * @param set - * @param string - * @return - */ - private Set reconcileKeywords(Set keywords, String prefix) { - if( keywords == null ) return null; - if( prefix.equals( "")) return keywords; //$NON-NLS-1$ - Set resultSet = new TreeSet(); - Iterator i = keywords.iterator(); - while( i.hasNext() ) - { - String value = (String) i.next(); - if( value.startsWith( prefix ) ) - resultSet.add( value ); - else if( value.compareTo( prefix ) > 0 ) - break; - } - return resultSet; - } - - /** - * @return - */ - protected Set getKeywordSet() { - return keywordSet; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#handleOffsetLimitException() - */ - protected void handleOffsetLimitException(OffsetLimitReachedException exception) throws OffsetLimitReachedException { - if( exception.getCompletionNode() == null ) - { - setCompletionToken( exception.getFinalToken() ); - if( (finalToken!= null )&& (!finalToken.canBeAPrefix() )) - setCompletionToken(null); - } - else - { - ASTCompletionNode node = (ASTCompletionNode) exception.getCompletionNode(); - setCompletionValues( node.getCompletionKind(), node.getKeywordSet(), node.getCompletionPrefix() ); - } - - throw exception; - } - - protected IToken getCompletionToken() - { - return finalToken; - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#getCompletionKindForDeclaration(org.eclipse.cdt.core.parser.ast.IASTScope) - */ - protected CompletionKind getCompletionKindForDeclaration(IASTScope scope, CompletionKind overide) { - IASTCompletionNode.CompletionKind kind = null; - if( overide != null ) - kind = overide; - else if( scope instanceof IASTClassSpecifier ) - kind = CompletionKind.FIELD_TYPE; - else if (scope instanceof IASTCodeScope) - kind = CompletionKind.SINGLE_NAME_REFERENCE; - else - kind = CompletionKind.VARIABLE_TYPE; - return kind; - } - - protected void catchHandlerSequence(IASTScope scope) - throws EndOfFileException, BacktrackException { - if( LT(1) != IToken.t_catch ) - { - IToken la = LA(1); - throwBacktrack(la.getOffset(), la.getEndOffset(), la.getLineNumber(), la.getFilename()); // error, need at least one of these - } - while (LT(1) == IToken.t_catch) - { - consume(IToken.t_catch); - setCompletionValues(scope,CompletionKind.NO_SUCH_KIND,KeywordSetKey.EMPTY ); - consume(IToken.tLPAREN); - setCompletionValues(scope,CompletionKind.EXCEPTION_REFERENCE,KeywordSetKey.DECL_SPECIFIER_SEQUENCE); - if( LT(1) == IToken.tELLIPSIS ) - consume( IToken.tELLIPSIS ); - else - simpleDeclarationStrategyUnion( scope, null, CompletionKind.EXCEPTION_REFERENCE, KeywordSetKey.DECLARATION); // was exceptionDeclaration - consume(IToken.tRPAREN); - - catchBlockCompoundStatement(scope); - } - } - - public ISelectionParseResult parse(int startingOffset, int endingOffset) { - throw new ParseError( ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - public boolean parse() { - throw new ParseError( ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setupASTFactory(org.eclipse.cdt.core.parser.IScanner, org.eclipse.cdt.core.parser.ParserLanguage) - */ - protected void setupASTFactory(IScanner scanner, ParserLanguage language) { - astFactory = ParserFactory.createASTFactory( ParserMode.COMPLETION_PARSE, language); - scanner.setASTFactory(astFactory); - astFactory.setLogger(log); - } - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java deleted file mode 100644 index f33620b477e..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ContextualParser.java +++ /dev/null @@ -1,273 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.cdt.internal.core.parser; - -import java.util.Set; - -import org.eclipse.cdt.core.parser.BacktrackException; -import org.eclipse.cdt.core.parser.EndOfFileException; -import org.eclipse.cdt.core.parser.IParserLogService; -import org.eclipse.cdt.core.parser.IScanner; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.IToken; -import org.eclipse.cdt.core.parser.ITokenDuple; -import org.eclipse.cdt.core.parser.KeywordSetKey; -import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; -import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IASTNode; -import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; -import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; -import org.eclipse.cdt.core.parser.extension.IParserExtension; -import org.eclipse.cdt.internal.core.parser.token.KeywordSets; -import org.eclipse.cdt.internal.core.parser.token.TokenFactory; - -/** - * @author jcamelon - */ -public class ContextualParser extends CompleteParser { - - /** - * @param scanner - * @param callback - * @param language - * @param log - */ - public ContextualParser( - IScanner scanner, - ISourceElementRequestor callback, - ParserLanguage language, - IParserLogService log, IParserExtension extension ) { - super(scanner, callback, language, log, extension ); - } - - protected IASTScope contextualScope; - - /** - * @return - */ - protected IASTScope getCompletionScope() { - return contextualScope; - } - - protected CompletionKind completionKind; - - /** - * @return - */ - protected IASTCompletionNode.CompletionKind getCompletionKind() { - return completionKind; - } - - protected IASTNode context; - protected IToken finalToken; - protected Set keywordSet; - protected char[] functionOrConstructorName = EMPTY_STRING; - - /** - * @return - */ - protected String getCompletionPrefix() { - return ( finalToken == null ? String.valueOf(EMPTY_STRING) : finalToken.getImage() ); - } - - /** - * @return - */ - protected IASTNode getCompletionContext() { - return context; - } - - protected void setCompletionContext(IASTNode node) { - this.context = node; - } - - protected void setCompletionKind(IASTCompletionNode.CompletionKind kind) { - this.completionKind = kind; - } - - /** - * @param compilationUnit - * @param kind2 - * @param set - * @param object - * @param string - */ - protected void setCompletionValues(CompletionKind kind, Set keywordSet, String prefix) { - setCompletionScope(compilationUnit); - this.keywordSet = keywordSet; - setCompletionKind(kind); - setCompletionContext(null); - setCompletionFunctionName( ); - setCompletionToken( TokenFactory.createStandAloneToken( IToken.tIDENTIFIER, prefix ) ); - } - - /** - */ - protected void setCompletionFunctionName() { - functionOrConstructorName = currentFunctionName; - } - - - - protected void setCompletionKeywords(KeywordSetKey key) { - this.keywordSet = KeywordSets.getKeywords( key, language ); - } - - protected void setCompletionToken(IToken token) { - finalToken = token; - } - - protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key, IASTNode node, String prefix) throws EndOfFileException { - setCompletionToken( TokenFactory.createStandAloneToken( IToken.tIDENTIFIER, prefix ) ); - setCompletionValues(scope, kind, key, node ); - } - - protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key) throws EndOfFileException { - setCompletionValues(scope, kind, key, null ); - } - - - - protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key, IASTNode node) throws EndOfFileException { - setCompletionScope(scope); - setCompletionKeywords(key); - setCompletionKind(kind); - setCompletionContext(node); - setCompletionFunctionName( ); - checkEndOfFile(); - } - - - - protected void setCompletionValues( IASTScope scope, CompletionKind kind, IToken first, IToken last, KeywordSetKey key ) throws EndOfFileException{ - setCompletionScope( scope ); - setCompletionKind( kind ); - setCompletionKeywords(key); - ITokenDuple duple = TokenFactory.createTokenDuple( first, last ); - try { - setCompletionContext( astFactory.lookupSymbolInContext( scope, duple, null ) ); - } catch (ASTNotImplementedException e) { - } - setCompletionFunctionName(); - } - - private char[] currentFunctionName = EMPTY_STRING; - protected IASTExpression parameterListExpression; - - - - protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key, IASTExpression firstExpression, Kind expressionKind) throws EndOfFileException { - IASTNode node = astFactory.expressionToMostPreciseASTNode( scope, firstExpression ); - if( kind == CompletionKind.MEMBER_REFERENCE ) - { - if( ! validMemberOperation( node, expressionKind )) - node =null; - } - setCompletionValues(scope,kind,key, node ); - } - - /** - * @param node - * @param expressionKind - * @return - */ - private boolean validMemberOperation(IASTNode node, Kind expressionKind) { - if( expressionKind == Kind.POSTFIX_ARROW_IDEXPRESSION || expressionKind == Kind.POSTFIX_ARROW_TEMPL_IDEXP ) - return astFactory.validateIndirectMemberOperation( node ); - else if( expressionKind == Kind.POSTFIX_DOT_IDEXPRESSION || expressionKind == Kind.POSTFIX_DOT_TEMPL_IDEXPRESS ) - return astFactory.validateDirectMemberOperation( node ); - return false; - } - - protected void setCompletionScope(IASTScope scope) { - this.contextualScope = scope; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCompletionValues(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind) - */ - protected void setCompletionValues(IASTScope scope, CompletionKind kind) throws EndOfFileException { - setCompletionScope(scope); - setCompletionKind(kind); - setCompletionFunctionName( ); - checkEndOfFile(); - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCompletionValues(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind, org.eclipse.cdt.core.parser.ast.IASTNode) - */ - protected void setCompletionValues(IASTScope scope, CompletionKind kind, - IASTNode context) throws EndOfFileException { - setCompletionScope(scope); - setCompletionKind(kind); - setCompletionContext(context); - setCompletionFunctionName( ); - checkEndOfFile(); } - - /** - * @return - */ - protected char[] getCompletionFunctionName() { - return functionOrConstructorName; - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCurrentFunctionName(java.lang.String) - */ - protected void setCurrentFunctionName(char[] functionName) { - currentFunctionName = functionName; - } - - protected void handleFunctionBody(IASTScope scope) throws BacktrackException, EndOfFileException - { - if( scanner.isOnTopContext() ) - functionBody(scope); - else - skipOverCompoundStatement(); - } - - protected void catchBlockCompoundStatement(IASTScope scope) throws BacktrackException, EndOfFileException - { - if( scanner.isOnTopContext() ) - compoundStatement(scope, true); - else - skipOverCompoundStatement(); - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCompletionValuesNoContext(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind, org.eclipse.cdt.internal.core.parser.token.KeywordSets.Key) - */ - protected void setCompletionValuesNoContext(IASTScope scope, - CompletionKind kind, KeywordSetKey key) throws EndOfFileException { - setCompletionScope(scope); - setCompletionKeywords(key); - setCompletionKind(kind); - checkEndOfFile(); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setParameterListExpression(org.eclipse.cdt.core.parser.ast.IASTExpression) - */ - protected void setParameterListExpression( - IASTExpression assignmentExpression) { - parameterListExpression = assignmentExpression; - } - /** - * @return Returns the parameterListExpression. - */ - public final IASTExpression getParameterListExpression() { - return parameterListExpression; - } -} 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 9348c2cadd6..8959cb058ba 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 @@ -10,8 +10,12 @@ ***********************************************************************/ package org.eclipse.cdt.internal.core.parser; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; +import java.util.Iterator; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import org.eclipse.cdt.core.parser.BacktrackException; import org.eclipse.cdt.core.parser.EndOfFileException; @@ -25,9 +29,12 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.KeywordSetKey; import org.eclipse.cdt.core.parser.OffsetLimitReachedException; import org.eclipse.cdt.core.parser.ParseError; +import org.eclipse.cdt.core.parser.ParserFactory; import org.eclipse.cdt.core.parser.ParserLanguage; +import org.eclipse.cdt.core.parser.ParserMode; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTClassKind; +import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.ASTPointerOperator; import org.eclipse.cdt.core.parser.ast.ASTSemanticException; import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration; @@ -49,6 +56,9 @@ import org.eclipse.cdt.core.parser.ast.IASTNamespaceAlias; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTNode; import org.eclipse.cdt.core.parser.ast.IASTOffsetableElement; +import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; +import org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement; +import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTemplate; @@ -60,13 +70,19 @@ import org.eclipse.cdt.core.parser.ast.IASTTypeId; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; +import org.eclipse.cdt.core.parser.ast.IASTVariable; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType; import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; import org.eclipse.cdt.core.parser.extension.IParserExtension; import org.eclipse.cdt.core.parser.util.CharArrayUtils; +import org.eclipse.cdt.internal.core.parser.ast.ASTCompletionNode; +import org.eclipse.cdt.internal.core.parser.ast.complete.CompleteParseASTFactory; import org.eclipse.cdt.internal.core.parser.problem.IProblemFactory; +import org.eclipse.cdt.internal.core.parser.token.KeywordSets; +import org.eclipse.cdt.internal.core.parser.token.OffsetDuple; import org.eclipse.cdt.internal.core.parser.token.TokenFactory; +import org.eclipse.cdt.internal.core.parser.util.TraceUtil; /** * This is our first implementation of the IParser interface, serving as a @@ -76,9 +92,9 @@ import org.eclipse.cdt.internal.core.parser.token.TokenFactory; * * @author jcamelon */ -public abstract class Parser implements IParserData, IParser +public final class Parser implements IParserData, IParser { - + protected final ParserMode mode; protected static final char[] EMPTY_STRING = "".toCharArray(); //$NON-NLS-1$ private static int FIRST_ERROR_UNSET = -1; protected boolean parsePassed = true; @@ -415,7 +431,7 @@ public abstract class Parser implements IParserData, IParser if (failed) { if (expression != null) - expression.freeReferences(astFactory.getReferenceManager()); + expression.freeReferences(); throwBacktrack(startingOffset, 0, startingLineNumber, fn ); } @@ -543,47 +559,6 @@ public abstract class Parser implements IParserData, IParser } - /** - * @param scope - * @param kind - * @param key - */ - protected void setCompletionValuesNoContext(IASTScope scope, - CompletionKind kind, KeywordSetKey key) throws EndOfFileException { - } - /** - * @param tokenDuple - */ - protected void setGreaterNameContext(ITokenDuple tokenDuple) { - //do nothing in this implementation - } - - /** - * @param scope - * @param kind - */ - protected void setCompletionValues(IASTScope scope, CompletionKind kind, - IASTNode context) throws EndOfFileException { - } - - /** - * @param scope - * @param kind - */ - protected void setCompletionValues(IASTScope scope, CompletionKind kind) - throws EndOfFileException { - } - - /** - * @param scope - * @param kind - * @param key - * @param node - */ - protected void setCompletionValues(IASTScope scope, CompletionKind kind, - KeywordSetKey key, IASTNode node) throws EndOfFileException { - } - /** * @param scope * @param last @@ -811,7 +786,7 @@ public abstract class Parser implements IParserData, IParser continue; } if (nameDuple != null) - nameDuple.freeReferences(astFactory.getReferenceManager()); + nameDuple.freeReferences(); backup(mark); return result; } @@ -857,12 +832,6 @@ public abstract class Parser implements IParserData, IParser return assignmentExpression; } - /** - * @param assignmentExpression - */ - protected void setParameterListExpression( - IASTExpression assignmentExpression) { - } /** * @param expression * @throws BacktrackException @@ -1414,8 +1383,7 @@ public abstract class Parser implements IParserData, IParser secondExpression, null, null, null, EMPTY_STRING, null); } catch (ASTSemanticException e) { - firstExpression.freeReferences(astFactory - .getReferenceManager()); + firstExpression.freeReferences(); throwBacktrack(e.getProblem()); } catch (Exception e) { logException( @@ -1498,7 +1466,7 @@ public abstract class Parser implements IParserData, IParser } catch (BacktrackException bte) { backup(mark); if (typeId != null) - typeId.freeReferences(astFactory.getReferenceManager()); + typeId.freeReferences(); throw bte; } @@ -1511,7 +1479,7 @@ public abstract class Parser implements IParserData, IParser { backup( mark ); if (typeId != null) - typeId.freeReferences(astFactory.getReferenceManager()); + typeId.freeReferences(); return unaryExpression(scope, kind, key); } int endOffset = ( lastToken != null ) ? lastToken.getEndOffset() : 0; @@ -2013,12 +1981,6 @@ public abstract class Parser implements IParserData, IParser return null; } - /** - * @param functionName - */ - protected void setCurrentFunctionName(char[] functionName) { - } - /** * @param expression * @throws BacktrackException @@ -2314,7 +2276,7 @@ public abstract class Parser implements IParserData, IParser case IToken.tLPAREN : // function call consume(IToken.tLPAREN); - IASTNode context = null; + IASTNode cntext = null; if (firstExpression != null) { if (firstExpression.getExpressionKind() == IASTExpression.Kind.ID_EXPRESSION) setCurrentFunctionName(firstExpression @@ -2324,7 +2286,7 @@ public abstract class Parser implements IParserData, IParser .getIdExpressionCharArray() != null) { setCurrentFunctionName(firstExpression .getRHSExpression().getIdExpressionCharArray()); - context = astFactory + cntext = astFactory .expressionToMostPreciseASTNode(scope, firstExpression.getLHSExpression()); } @@ -2334,7 +2296,7 @@ public abstract class Parser implements IParserData, IParser templateIdScopes.push(IToken.tLPAREN); } setCompletionValues(scope, - CompletionKind.FUNCTION_REFERENCE, context); + CompletionKind.FUNCTION_REFERENCE, cntext); secondExpression = expression(scope, CompletionKind.FUNCTION_REFERENCE, key); setCurrentFunctionName(EMPTY_STRING); @@ -2487,7 +2449,8 @@ public abstract class Parser implements IParserData, IParser } protected void checkEndOfFile() throws EndOfFileException { - LA(1); + if( mode != ParserMode.SELECTION_PARSE ) + LA(1); } protected IASTExpression simpleTypeConstructorExpression(IASTScope scope, @@ -2724,18 +2687,6 @@ public abstract class Parser implements IParserData, IParser } } - /** - * @param value - */ - protected void handleNewToken(IToken value) { - } - - protected void handleOffsetLimitException( - OffsetLimitReachedException exception) throws EndOfFileException { - // unexpected, throw EOF instead (equivalent) - throw new EndOfFileException(); - } - protected IASTExpression assignmentOperatorExpression(IASTScope scope, IASTExpression.Kind kind, IASTExpression lhs, CompletionKind completionKind, KeywordSetKey key) @@ -2756,25 +2707,6 @@ public abstract class Parser implements IParserData, IParser return null; } - protected void setCompletionValues(IASTScope scope, - IASTCompletionNode.CompletionKind kind, KeywordSetKey key) - throws EndOfFileException { - } - - protected void setCompletionValues(IASTScope scope, - IASTCompletionNode.CompletionKind kind, KeywordSetKey key, - IASTNode node, String prefix) throws EndOfFileException { - } - - protected void setCompletionValues(IASTScope scope, CompletionKind kind, - KeywordSetKey key, IASTExpression firstExpression, - Kind expressionKind) throws EndOfFileException { - } - - protected void setCompletionValues(IASTScope scope, CompletionKind kind, - IToken first, IToken last, KeywordSetKey key) - throws EndOfFileException { - } protected IASTExpression unaryOperatorCastExpression(IASTScope scope, IASTExpression.Kind kind, CompletionKind completionKind, @@ -2854,11 +2786,6 @@ public abstract class Parser implements IParserData, IParser return first; } - - public boolean validateCaches() { - return true; - } - /* (non-Javadoc) * @see java.lang.Object#toString() */ @@ -2914,20 +2841,24 @@ public abstract class Parser implements IParserData, IParser /** * This is the standard cosntructor that we expect the Parser to be * instantiated with. + * @param mode TODO * */ public Parser( IScanner scanner, + ParserMode mode, ISourceElementRequestor callback, - ParserLanguage language, - IParserLogService log, IParserExtension extension ) + ParserLanguage language, IParserLogService log, IParserExtension extension ) { this.scanner = scanner; this.language = language; this.log = log; this.extension = extension; + this.mode = mode; setupASTFactory(scanner, language); requestor = callback; + if( this.mode == ParserMode.QUICK_PARSE ) + constructInitializersInDeclarations = false; } @@ -3008,11 +2939,11 @@ public abstract class Parser implements IParserData, IParser return; } - compilationUnit.enterScope( requestor, astFactory.getReferenceManager() ); + compilationUnit.enterScope( requestor ); try { setCompletionValues(compilationUnit, CompletionKind.VARIABLE_TYPE, KeywordSetKey.DECLARATION ); } catch (EndOfFileException e1) { - compilationUnit.exitScope( requestor, astFactory.getReferenceManager() ); + compilationUnit.exitScope( requestor ); return; } @@ -3082,7 +3013,7 @@ public abstract class Parser implements IParserData, IParser } } } - compilationUnit.exitScope( requestor, astFactory.getReferenceManager() ); + compilationUnit.exitScope( requestor ); } /** * @param string @@ -3173,7 +3104,7 @@ public abstract class Parser implements IParserData, IParser logException( "usingClause:createUsingDirective", e1 ); //$NON-NLS-1$ throwBacktrack(firstToken.getOffset(), last.getEndOffset(), firstToken.getLineNumber(), last.getFilename()); } - astUD.acceptElement(requestor, astFactory.getReferenceManager()); + astUD.acceptElement(requestor ); return astUD; } endOffset = ( lastToken != null ) ? lastToken.getEndOffset() : 0; @@ -3221,7 +3152,7 @@ public abstract class Parser implements IParserData, IParser else throwBacktrack(firstToken.getOffset(), last.getEndOffset(), firstToken.getLineNumber(), firstToken.getFilename()); } - declaration.acceptElement( requestor, astFactory.getReferenceManager() ); + declaration.acceptElement( requestor ); setCompletionValues(scope, getCompletionKindForDeclaration(scope, null), KeywordSetKey.DECLARATION ); return declaration; } @@ -3268,7 +3199,7 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(firstToken.getOffset(), lbrace.getEndOffset(), lbrace.getLineNumber(), lbrace.getFilename()); } - linkage.enterScope( requestor, astFactory.getReferenceManager() ); + linkage.enterScope( requestor ); try { linkageDeclarationLoop : while (LT(1) != IToken.tRBRACE) @@ -3300,7 +3231,7 @@ public abstract class Parser implements IParserData, IParser } finally { - linkage.exitScope( requestor, astFactory.getReferenceManager() ); + linkage.exitScope( requestor ); } return linkage; } @@ -3322,14 +3253,14 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(firstToken.getOffset(), endOffset, firstToken.getLineNumber(), firstToken.getFilename()); return null; } - linkage.enterScope( requestor, astFactory.getReferenceManager() ); + linkage.enterScope( requestor ); try { declaration(linkage, null, null, KeywordSetKey.DECLARATION); } finally { - linkage.exitScope( requestor, astFactory.getReferenceManager() ); + linkage.exitScope( requestor ); } return linkage; @@ -3382,14 +3313,14 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(firstToken.getOffset(), firstToken.getEndOffset(), firstToken.getLineNumber(), firstToken.getFilename()); return null; } - templateInstantiation.enterScope( requestor, astFactory.getReferenceManager() ); + templateInstantiation.enterScope( requestor ); try { declaration(templateInstantiation, templateInstantiation, null, KeywordSetKey.DECLARATION); templateInstantiation.setEndingOffsetAndLineNumber(lastToken.getEndOffset(), lastToken.getLineNumber()); } finally { - templateInstantiation.exitScope( requestor, astFactory.getReferenceManager() ); + templateInstantiation.exitScope( requestor ); } return templateInstantiation; @@ -3415,7 +3346,7 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(firstToken.getOffset(), gt.getEndOffset(), gt.getLineNumber(), gt.getFilename()); return null; } - templateSpecialization.enterScope(requestor, astFactory.getReferenceManager()); + templateSpecialization.enterScope(requestor); try { declaration(templateSpecialization, templateSpecialization, null, KeywordSetKey.DECLARATION); @@ -3424,7 +3355,7 @@ public abstract class Parser implements IParserData, IParser } finally { - templateSpecialization.exitScope(requestor, astFactory.getReferenceManager()); + templateSpecialization.exitScope(requestor); } return templateSpecialization; } @@ -3450,13 +3381,13 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(firstToken.getOffset(), gt.getEndOffset(), gt.getLineNumber(), gt.getFilename()); return null; } - templateDecl.enterScope( requestor, astFactory.getReferenceManager() ); + templateDecl.enterScope( requestor ); try{ declaration(templateDecl, templateDecl, null, KeywordSetKey.DECLARATION ); templateDecl.setEndingOffsetAndLineNumber( lastToken.getEndOffset(), lastToken.getLineNumber() ); } finally { - templateDecl.exitScope( requestor, astFactory.getReferenceManager() ); + templateDecl.exitScope( requestor ); } return templateDecl; } @@ -3716,7 +3647,7 @@ public abstract class Parser implements IParserData, IParser } // if we made it this far, then we have all we need // do the callback - resultDeclaration.acceptElement(requestor, astFactory.getReferenceManager()); + resultDeclaration.acceptElement(requestor); setCompletionValues(scope, kind, KeywordSetKey.DECLARATION ); break; case IToken.t_namespace : @@ -3742,13 +3673,6 @@ public abstract class Parser implements IParserData, IParser endDeclaration( resultDeclaration ); } - /** - * @param scope - * @return - */ - protected IASTCompletionNode.CompletionKind getCompletionKindForDeclaration(IASTScope scope, CompletionKind overide) { - return null; - } protected IASTDeclaration simpleDeclarationStrategyUnion( IASTScope scope, @@ -3867,7 +3791,7 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(first.getOffset(), lbrace.getEndOffset(), first.getLineNumber(), first.getFilename()); return null; } - namespaceDefinition.enterScope( requestor, astFactory.getReferenceManager() ); + namespaceDefinition.enterScope( requestor ); try { setCompletionValues(scope,CompletionKind.VARIABLE_TYPE, KeywordSetKey.DECLARATION ); @@ -3905,7 +3829,7 @@ public abstract class Parser implements IParserData, IParser } finally { - namespaceDefinition.exitScope( requestor, astFactory.getReferenceManager() ); + namespaceDefinition.exitScope( requestor ); } return namespaceDefinition; } @@ -4110,20 +4034,20 @@ public abstract class Parser implements IParserData, IParser declaration = (IASTDeclaration)l.get(i); ((IASTOffsetableElement)declaration).setEndingOffsetAndLineNumber( lastToken.getEndOffset(), lastToken.getLineNumber()); - declaration.acceptElement( requestor, astFactory.getReferenceManager() ); + declaration.acceptElement( requestor ); if( sdw.getTypeSpecifier() instanceof IASTSimpleTypeSpecifier ) - ((IASTSimpleTypeSpecifier)sdw.getTypeSpecifier()).releaseReferences( astFactory.getReferenceManager() ); + ((IASTSimpleTypeSpecifier)sdw.getTypeSpecifier()).releaseReferences( ); } return declaration; } IASTDeclaration declaration = (IASTDeclaration)l.get(0); endDeclaration( declaration ); - declaration.enterScope( requestor, astFactory.getReferenceManager() ); + declaration.enterScope( requestor ); try { if( sdw.getTypeSpecifier() instanceof IASTSimpleTypeSpecifier ) - ((IASTSimpleTypeSpecifier)sdw.getTypeSpecifier()).releaseReferences( astFactory.getReferenceManager() ); + ((IASTSimpleTypeSpecifier)sdw.getTypeSpecifier()).releaseReferences( ); if ( !( declaration instanceof IASTScope ) ) throwBacktrack(firstOffset, endOffset, firstLine, fn); @@ -4134,7 +4058,7 @@ public abstract class Parser implements IParserData, IParser } finally { - declaration.exitScope( requestor, astFactory.getReferenceManager() ); + declaration.exitScope( requestor ); } if( hasFunctionTryBlock ) @@ -4155,7 +4079,7 @@ public abstract class Parser implements IParserData, IParser sdw.getStartingOffset(), sdw.getStartingLine(), lastToken.getEndOffset(), lastToken.getLineNumber(), sdw.isFriend(), lastToken.getFilename()); - declaration.acceptElement(requestor, astFactory.getReferenceManager()); + declaration.acceptElement(requestor); return declaration; } } @@ -4169,20 +4093,35 @@ public abstract class Parser implements IParserData, IParser } catch( BacktrackException be ) { if( simpleTypeSpecifier != null ) - simpleTypeSpecifier.releaseReferences(astFactory.getReferenceManager()); + simpleTypeSpecifier.releaseReferences(); throwBacktrack(be); return null; } catch( EndOfFileException eof ) { if( simpleTypeSpecifier != null ) - simpleTypeSpecifier.releaseReferences(astFactory.getReferenceManager()); + simpleTypeSpecifier.releaseReferences(); throw eof; } } - protected abstract void handleFunctionBody(IASTScope scope) throws BacktrackException, EndOfFileException; + protected void handleFunctionBody(IASTScope scope) throws BacktrackException, EndOfFileException + { + if( mode == ParserMode.QUICK_PARSE || mode == ParserMode.STRUCTURAL_PARSE ) + skipOverCompoundStatement(); + else if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + if( scanner.isOnTopContext() ) + functionBody(scope); + else + skipOverCompoundStatement(); + } + else if( mode == ParserMode.COMPLETE_PARSE ) + functionBody(scope); + + + } protected void skipOverCompoundStatement() throws BacktrackException, EndOfFileException { @@ -4450,7 +4389,7 @@ public abstract class Parser implements IParserData, IParser for (int j = 0; j < arrayOfLists[i].size(); ++j) { IASTExpression e = (IASTExpression) arrayOfLists[i] .get(j); - e.freeReferences(astFactory.getReferenceManager()); + e.freeReferences(); } } @@ -4830,7 +4769,7 @@ public abstract class Parser implements IParserData, IParser if (isForewardDecl) { ((IASTElaboratedTypeSpecifier) elaboratedTypeSpec).acceptElement( - requestor, astFactory.getReferenceManager()); + requestor); } } /** @@ -5235,8 +5174,7 @@ public abstract class Parser implements IParserData, IParser } if (queryName != null) - queryName.freeReferences(astFactory - .getReferenceManager()); + queryName.freeReferences(); backup(newMark); } } @@ -5327,9 +5265,7 @@ public abstract class Parser implements IParserData, IParser .add(exceptionTypeId); exceptionTypeId .acceptElement( - requestor, - astFactory - .getReferenceManager()); + requestor); } catch (BacktrackException e) { failParse(e); consume(); @@ -5553,10 +5489,9 @@ public abstract class Parser implements IParserData, IParser } if (LT(1) != IToken.tCOMMA) { enumeration - .freeReferences(astFactory.getReferenceManager()); + .freeReferences(); if (enumerator != null) - enumerator.freeReferences(astFactory - .getReferenceManager()); + enumerator.freeReferences(); int endOffset = ( lastToken != null ) ? lastToken.getEndOffset() : 0 ; throwBacktrack(mark.getOffset(), endOffset, mark.getLineNumber(), mark.getFilename()); } @@ -5583,8 +5518,7 @@ public abstract class Parser implements IParserData, IParser IToken t = consume(IToken.tRBRACE); enumeration.setEndingOffsetAndLineNumber(t.getEndOffset(), t .getLineNumber()); - enumeration.acceptElement(requestor, astFactory - .getReferenceManager()); + enumeration.acceptElement(requestor); sdw.setTypeSpecifier(enumeration); } else { // enumSpecifierAbort @@ -5677,8 +5611,7 @@ public abstract class Parser implements IParserData, IParser consume(IToken.tLBRACE); setCompletionValues(astClassSpecifier, CompletionKind.FIELD_TYPE, KeywordSetKey.MEMBER); - astClassSpecifier.enterScope(requestor, astFactory - .getReferenceManager()); + astClassSpecifier.enterScope(requestor); try { @@ -5735,8 +5668,7 @@ public abstract class Parser implements IParserData, IParser } finally { - astClassSpecifier.exitScope(requestor, astFactory - .getReferenceManager()); + astClassSpecifier.exitScope(requestor); } @@ -5883,8 +5815,7 @@ public abstract class Parser implements IParserData, IParser IASTExpression constant_expression = constantExpression(scope, CompletionKind.SINGLE_NAME_REFERENCE, KeywordSetKey.EXPRESSION); - constant_expression.acceptElement(requestor, astFactory - .getReferenceManager()); + constant_expression.acceptElement(requestor); endExpression(constant_expression); consume(IToken.tCOLON); statement(scope); @@ -5965,8 +5896,7 @@ public abstract class Parser implements IParserData, IParser IASTExpression finalExpression = expression(scope, CompletionKind.SINGLE_NAME_REFERENCE, KeywordSetKey.DECLARATION); - finalExpression.acceptElement(requestor, astFactory - .getReferenceManager()); + finalExpression.acceptElement(requestor); endExpression(finalExpression); } consume(IToken.tRPAREN); @@ -5989,8 +5919,7 @@ public abstract class Parser implements IParserData, IParser IASTExpression retVal = expression(scope, CompletionKind.SINGLE_NAME_REFERENCE, KeywordSetKey.EXPRESSION); - retVal.acceptElement(requestor, astFactory - .getReferenceManager()); + retVal.acceptElement(requestor); endExpression(retVal); } consume(IToken.tSEMI); @@ -6035,15 +5964,13 @@ public abstract class Parser implements IParserData, IParser CompletionKind.SINGLE_NAME_REFERENCE, KeywordSetKey.STATEMENT); consume(IToken.tSEMI); - expressionStatement.acceptElement(requestor, astFactory - .getReferenceManager()); + expressionStatement.acceptElement(requestor); endExpression(expressionStatement); return; } catch (BacktrackException b) { backup(mark); if (expressionStatement != null) - expressionStatement.freeReferences(astFactory - .getReferenceManager()); + expressionStatement.freeReferences(); } // declarationStatement @@ -6052,36 +5979,51 @@ public abstract class Parser implements IParserData, IParser } protected void catchHandlerSequence(IASTScope scope) - throws EndOfFileException, BacktrackException { - - if (LT(1) != IToken.t_catch) + throws EndOfFileException, BacktrackException { + if( LT(1) != IToken.t_catch ) { IToken la = LA(1); throwBacktrack(la.getOffset(), la.getEndOffset(), la.getLineNumber(), la.getFilename()); // error, need at least one of these } - while (LT(1) == IToken.t_catch) { + while (LT(1) == IToken.t_catch) + { consume(IToken.t_catch); + setCompletionValues(scope,CompletionKind.NO_SUCH_KIND,KeywordSetKey.EMPTY ); consume(IToken.tLPAREN); - - try { - if (LT(1) == IToken.tELLIPSIS) - consume(IToken.tELLIPSIS); - else - simpleDeclaration(SimpleDeclarationStrategy.TRY_VARIABLE, - scope, null, CompletionKind.EXCEPTION_REFERENCE, true, - KeywordSetKey.DECL_SPECIFIER_SEQUENCE); + setCompletionValues(scope,CompletionKind.EXCEPTION_REFERENCE,KeywordSetKey.DECL_SPECIFIER_SEQUENCE); + try + { + if( LT(1) == IToken.tELLIPSIS ) + consume( IToken.tELLIPSIS ); + else + simpleDeclaration( SimpleDeclarationStrategy.TRY_VARIABLE, scope, null, CompletionKind.EXCEPTION_REFERENCE, true, KeywordSetKey.DECLARATION); consume(IToken.tRPAREN); - + catchBlockCompoundStatement(scope); - } catch (BacktrackException b) { - failParse(b); + } + catch( BacktrackException bte ) + { + failParse( bte ); failParseWithErrorHandling(); } } } - protected abstract void catchBlockCompoundStatement(IASTScope scope) - throws BacktrackException, EndOfFileException; + protected void catchBlockCompoundStatement(IASTScope scope) + throws BacktrackException, EndOfFileException + { + if( mode == ParserMode.QUICK_PARSE || mode == ParserMode.STRUCTURAL_PARSE ) + skipOverCompoundStatement(); + else if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + if( scanner.isOnTopContext() ) + compoundStatement(scope, true); + else + skipOverCompoundStatement(); + } + else if( mode == ParserMode.COMPLETE_PARSE ) + compoundStatement(scope, true); + } protected void singleStatementScope(IASTScope scope) throws EndOfFileException, BacktrackException { @@ -6094,11 +6036,11 @@ public abstract class Parser implements IParserData, IParser throwBacktrack(la.getOffset(), la.getEndOffset(), la.getLineNumber(), la.getFilename()); return; } - newScope.enterScope(requestor, astFactory.getReferenceManager()); + newScope.enterScope(requestor); try { statement(newScope); } finally { - newScope.exitScope(requestor, astFactory.getReferenceManager()); + newScope.exitScope(requestor); } } @@ -6109,8 +6051,7 @@ public abstract class Parser implements IParserData, IParser EndOfFileException { IASTExpression someExpression = expression(scope, CompletionKind.SINGLE_NAME_REFERENCE, KeywordSetKey.EXPRESSION); - someExpression.acceptElement(requestor, astFactory - .getReferenceManager()); + someExpression.acceptElement(requestor); endExpression(someExpression); } @@ -6126,7 +6067,7 @@ public abstract class Parser implements IParserData, IParser CompletionKind.SINGLE_NAME_REFERENCE, KeywordSetKey.DECLARATION); consume(IToken.tSEMI); - e.acceptElement(requestor, astFactory.getReferenceManager()); + e.acceptElement(requestor); } catch (BacktrackException bt) { backup(mark); @@ -6158,7 +6099,7 @@ public abstract class Parser implements IParserData, IParser logException("compoundStatement:createNewCodeBlock", e); //$NON-NLS-1$ throwBacktrack(startingOffset, endOffset, line, fn); } - newScope.enterScope(requestor, astFactory.getReferenceManager()); + newScope.enterScope(requestor); } try @@ -6185,7 +6126,7 @@ public abstract class Parser implements IParserData, IParser finally { if (createNewScope) - newScope.exitScope(requestor, astFactory.getReferenceManager()); + newScope.exitScope(requestor); } } @@ -6220,13 +6161,6 @@ public abstract class Parser implements IParserData, IParser return firstErrorLine; } - protected void setCompletionToken(IToken token) { - // do nothing! - } - - protected IToken getCompletionToken() { - return null; - } /* * (non-Javadoc) @@ -6235,7 +6169,12 @@ public abstract class Parser implements IParserData, IParser */ public ISelectionParseResult parse(int startingOffset, int endingOffset) throws ParseError { - throw new ParseError(ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED); + if( mode != ParserMode.SELECTION_PARSE ) + throw new ParseError(ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED); + offsetRange = new OffsetDuple( startingOffset, endingOffset ); + translationUnit(); + return reconcileTokenDuple(); + } /* @@ -6244,7 +6183,15 @@ public abstract class Parser implements IParserData, IParser * @see org.eclipse.cdt.core.parser.IParser#parse(int) */ public IASTCompletionNode parse(int offset) throws ParseError { - throw new ParseError(ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED); + if( mode != ParserMode.COMPLETION_PARSE ) + throw new ParseError(ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED); + scanner.setOffsetBoundary(offset); + //long startTime = System.currentTimeMillis(); + translationUnit(); + //long stopTime = System.currentTimeMillis(); + //System.out.println("Completion Parse time: " + (stopTime - startTime) + "ms"); + return new ASTCompletionNode( getCompletionKind(), getCompletionScope(), getCompletionContext(), getCompletionPrefix(), reconcileKeywords( getKeywordSet(), getCompletionPrefix() ), String.valueOf(getCompletionFunctionName()), getParameterListExpression() ); + } /* @@ -6254,8 +6201,9 @@ public abstract class Parser implements IParserData, IParser * org.eclipse.cdt.core.parser.ParserLanguage) */ protected void setupASTFactory(IScanner scanner, ParserLanguage language) { - // do nothing as of yet - // subclasses will need to implement this method + astFactory = ParserFactory.createASTFactory( mode, language); + scanner.setASTFactory(astFactory); + astFactory.setLogger(log); } /* @@ -6269,12 +6217,13 @@ public abstract class Parser implements IParserData, IParser protected void endDeclaration(IASTDeclaration declaration) throws EndOfFileException { - cleanupLastToken(); - } - - protected void endEnumerator(IASTEnumerator enumerator) - throws EndOfFileException { - cleanupLastToken(); + if( mode != ParserMode.SELECTION_PARSE || ! tokenDupleCompleted() ) + cleanupLastToken(); + else + { + contextNode = declaration; + throw new EndOfFileException(); + } } /** @@ -6286,19 +6235,7 @@ public abstract class Parser implements IParserData, IParser simpleDeclarationMark = null; } - protected void endExpression(IASTExpression expression) - throws EndOfFileException { - cleanupLastToken(); - } - - protected void handleClassSpecifier(IASTClassSpecifier classSpecifier) - throws EndOfFileException { - cleanupLastToken(); - } - - protected void handleEnumeration(IASTEnumerationSpecifier enumeration) throws EndOfFileException { - cleanupLastToken(); - } /** + /** /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.IParser#cancel() @@ -6306,5 +6243,604 @@ public abstract class Parser implements IParserData, IParser public synchronized void cancel() { isCancelled = true; } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#validateCaches() + */ + public boolean validateCaches() { + if( astFactory instanceof CompleteParseASTFactory) + return ((CompleteParseASTFactory)astFactory).validateCaches(); + return true; + } -} \ No newline at end of file + protected IASTScope contextualScope; + protected CompletionKind cKind; + protected IASTNode context; + protected IToken finalToken; + protected Set keywordSet; + protected char[] functionOrConstructorName = EMPTY_STRING; + protected char[] currentFunctionName = EMPTY_STRING; + protected IASTExpression parameterListExpression; + + /** + * @return + */ + protected IASTScope getCompletionScope() { + return contextualScope; + } + + + + /** + * @return + */ + protected IASTCompletionNode.CompletionKind getCompletionKind() { + return cKind; + } + + /** + * @return + */ + protected String getCompletionPrefix() { + return ( finalToken == null ? String.valueOf(EMPTY_STRING) : finalToken.getImage() ); + } + + /** + * @return + */ + protected IASTNode getCompletionContext() { + return context; + } + + protected void setCompletionContext(IASTNode node) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + this.context = node; + } + + protected void setCompletionKind(IASTCompletionNode.CompletionKind kind) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + this.cKind = kind; + } + + /** + * @param compilationUnit + * @param kind2 + * @param set + * @param object + * @param string + */ + protected void setCompletionValues(CompletionKind kind, Set keywordSet, String prefix) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionScope(compilationUnit); + this.keywordSet = keywordSet; + setCompletionKind(kind); + setCompletionContext(null); + setCompletionFunctionName( ); + setCompletionToken( TokenFactory.createStandAloneToken( IToken.tIDENTIFIER, prefix ) ); + } + } + + /** + */ + protected void setCompletionFunctionName() { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + functionOrConstructorName = currentFunctionName; + } + + + + protected void setCompletionKeywords(KeywordSetKey key) { + this.keywordSet = KeywordSets.getKeywords( key, language ); + } + + protected void setCompletionToken(IToken token) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + finalToken = token; + } + + protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key, IASTNode node, String prefix) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionToken( TokenFactory.createStandAloneToken( IToken.tIDENTIFIER, prefix ) ); + setCompletionValues(scope, kind, key, node ); + } + } + + protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + setCompletionValues(scope, kind, key, null ); + } + + + + protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key, IASTNode node) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionScope(scope); + setCompletionKeywords(key); + setCompletionKind(kind); + setCompletionContext(node); + setCompletionFunctionName( ); + checkEndOfFile(); + } + } + + + + protected void setCompletionValues( IASTScope scope, CompletionKind kind, IToken first, IToken last, KeywordSetKey key ) throws EndOfFileException{ + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionScope( scope ); + setCompletionKind( kind ); + setCompletionKeywords(key); + ITokenDuple duple = TokenFactory.createTokenDuple( first, last ); + try { + setCompletionContext( astFactory.lookupSymbolInContext( scope, duple, null ) ); + } catch (ASTNotImplementedException e) { + } + setCompletionFunctionName(); + } + } + + protected void setCompletionValues(IASTScope scope, CompletionKind kind, KeywordSetKey key, IASTExpression firstExpression, Kind expressionKind) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + IASTNode node = astFactory.expressionToMostPreciseASTNode( scope, firstExpression ); + if( kind == CompletionKind.MEMBER_REFERENCE ) + { + if( ! validMemberOperation( node, expressionKind )) + node =null; + } + setCompletionValues(scope,kind,key, node ); + } + } + + /** + * @param node + * @param expressionKind + * @return + */ + private boolean validMemberOperation(IASTNode node, Kind expressionKind) { + if( expressionKind == Kind.POSTFIX_ARROW_IDEXPRESSION || expressionKind == Kind.POSTFIX_ARROW_TEMPL_IDEXP ) + return astFactory.validateIndirectMemberOperation( node ); + else if( expressionKind == Kind.POSTFIX_DOT_IDEXPRESSION || expressionKind == Kind.POSTFIX_DOT_TEMPL_IDEXPRESS ) + return astFactory.validateDirectMemberOperation( node ); + return false; + } + + protected void setCompletionScope(IASTScope scope) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + this.contextualScope = scope; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCompletionValues(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind) + */ + protected void setCompletionValues(IASTScope scope, CompletionKind kind) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionScope(scope); + setCompletionKind(kind); + setCompletionFunctionName( ); + checkEndOfFile(); + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCompletionValues(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind, org.eclipse.cdt.core.parser.ast.IASTNode) + */ + protected void setCompletionValues(IASTScope scope, CompletionKind kind, + IASTNode context) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionScope(scope); + setCompletionKind(kind); + setCompletionContext(context); + setCompletionFunctionName( ); + checkEndOfFile(); + } + } + + /** + * @return + */ + protected char[] getCompletionFunctionName() { + return functionOrConstructorName; + } + + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCurrentFunctionName(java.lang.String) + */ + protected void setCurrentFunctionName(char[] functionName) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + currentFunctionName = functionName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setCompletionValuesNoContext(org.eclipse.cdt.core.parser.ast.IASTScope, org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind, org.eclipse.cdt.internal.core.parser.token.KeywordSets.Key) + */ + protected void setCompletionValuesNoContext(IASTScope scope, + CompletionKind kind, KeywordSetKey key) throws EndOfFileException { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + { + setCompletionScope(scope); + setCompletionKeywords(key); + setCompletionKind(kind); + checkEndOfFile(); + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setParameterListExpression(org.eclipse.cdt.core.parser.ast.IASTExpression) + */ + protected void setParameterListExpression( + IASTExpression assignmentExpression) { + if( mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE ) + parameterListExpression = assignmentExpression; + } + /** + * @return Returns the parameterListExpression. + */ + public final IASTExpression getParameterListExpression() { + return parameterListExpression; + } + + private OffsetDuple offsetRange; + private IToken firstTokenOfDuple = null, lastTokenOfDuple = null; + private IASTScope ourScope = null; + private IASTCompletionNode.CompletionKind ourKind = null; + private IASTNode ourContext = null; + private ITokenDuple greaterContextDuple = null; + private boolean pastPointOfSelection = false; + private IASTNode contextNode = null; + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.Parser#handleNewToken(org.eclipse.cdt.core.parser.IToken) + */ + protected void handleNewToken(IToken value) { + if( mode != ParserMode.SELECTION_PARSE ) return; + if( value != null && scanner.isOnTopContext() ) + { + TraceUtil.outputTrace(log, "IToken provided w/offsets ", null, value.getOffset(), " & ", value.getEndOffset() ); //$NON-NLS-1$ //$NON-NLS-2$ + boolean change = false; + if( value.getOffset() == offsetRange.getFloorOffset() ) + { + TraceUtil.outputTrace(log, "Offset Floor Hit w/token \"", null, value.getCharImage(), "\"", null ); //$NON-NLS-1$ //$NON-NLS-2$ + firstTokenOfDuple = value; + change = true; + } + if( value.getEndOffset() == offsetRange.getCeilingOffset() ) + { + TraceUtil.outputTrace(log, "Offset Ceiling Hit w/token \"", null, value.getCharImage(), "\"", null ); //$NON-NLS-1$ //$NON-NLS-2$ + change = true; + lastTokenOfDuple = value; + } + if( change && tokenDupleCompleted() ) + { + if ( ourScope == null ) + ourScope = getCompletionScope(); + if( ourContext == null ) + ourContext = getCompletionContext(); + if( ourKind == null ) + ourKind = getCompletionKind(); + } + } + } + + + + + /** + * @return + */ + protected boolean tokenDupleCompleted() { + return lastTokenOfDuple != null && lastTokenOfDuple.getEndOffset() >= offsetRange.getCeilingOffset(); + } + + + /** + * + */ + protected ISelectionParseResult reconcileTokenDuple() throws ParseError { + if( firstTokenOfDuple == null || lastTokenOfDuple == null ) + throw new ParseError( ParseError.ParseErrorKind.OFFSET_RANGE_NOT_NAME ); + + if( getCompletionKind() == IASTCompletionNode.CompletionKind.UNREACHABLE_CODE ) + throw new ParseError( ParseError.ParseErrorKind.OFFSETDUPLE_UNREACHABLE ); + + ITokenDuple duple = TokenFactory.createTokenDuple( firstTokenOfDuple, lastTokenOfDuple ); + + if( ! duple.syntaxOfName() ) + throw new ParseError( ParseError.ParseErrorKind.OFFSET_RANGE_NOT_NAME ); + + return provideSelectionNode(duple); + } + + /** + * @param duple + * @return + */ + protected ISelectionParseResult provideSelectionNode(ITokenDuple duple) { + + ITokenDuple finalDuple = null; + // reconcile the name to look up first + if( ! duple.equals( greaterContextDuple )) + { + // 3 cases + // duple is prefix of greaterContextDuple + // or duple is suffix of greaterContextDuple + // duple is a sub-duple of greaterContextDuple + if( duple.getFirstToken().equals( greaterContextDuple.getFirstToken() )) + finalDuple = duple; // => do not use greaterContextDuple + else if( duple.getLastToken().equals( greaterContextDuple.getLastToken() )) + finalDuple = greaterContextDuple; // => use greaterContextDuple + else + throw new ParseError( ParseError.ParseErrorKind.OFFSET_RANGE_NOT_NAME ); + } + else + finalDuple = greaterContextDuple; + + IASTNode node = lookupNode(finalDuple); + if( node == null ) return null; + if( !(node instanceof IASTOffsetableNamedElement )) return null; + return new SelectionParseResult( (IASTOffsetableNamedElement) node, new String( ((IASTOffsetableElement)node).getFilename() )); + } + + + + + /** + * @param finalDuple + * @return + */ + protected IASTNode lookupNode(ITokenDuple finalDuple) { + if( contextNode == null ) return null; + if( contextNode instanceof IASTDeclaration ) + { + if( contextNode instanceof IASTOffsetableNamedElement ) + { + if( ((IASTOffsetableNamedElement)contextNode).getName().equals( finalDuple.toString() ) ) + return contextNode; + } + if( contextNode instanceof IASTQualifiedNameElement ) + { + String [] elementQualifiedName = ((IASTQualifiedNameElement)contextNode).getFullyQualifiedName(); + if( Arrays.equals( elementQualifiedName, finalDuple.toQualifiedName() ) ) + return contextNode; + } + try { + if( ourKind == IASTCompletionNode.CompletionKind.NEW_TYPE_REFERENCE ) + { + if( contextNode instanceof IASTVariable ) + { + IASTInitializerClause initializer = ((IASTVariable)contextNode).getInitializerClause(); + if( initializer != null ) + { + IASTExpression ownerExpression = initializer.findExpressionForDuple( finalDuple ); + return astFactory.lookupSymbolInContext( ourScope, finalDuple, ownerExpression ); + } + } + } + + return astFactory.lookupSymbolInContext( ourScope, finalDuple, null ); + } catch (ASTNotImplementedException e) { + return null; + } + } + else if( contextNode instanceof IASTExpression ) + { + try { + return astFactory.lookupSymbolInContext( ourScope, finalDuple, contextNode ); + } catch (ASTNotImplementedException e) { + return null; + } + } + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setGreaterNameContext(org.eclipse.cdt.core.parser.ITokenDuple) + */ + protected void setGreaterNameContext(ITokenDuple tokenDuple) { + if( mode != ParserMode.SELECTION_PARSE ) return; + if( pastPointOfSelection ) return; + if( greaterContextDuple == null && scanner.isOnTopContext() && lastTokenOfDuple != null && firstTokenOfDuple != null ) + { + if( tokenDuple.getStartOffset() > lastTokenOfDuple.getEndOffset() ) + { + pastPointOfSelection = true; + return; + } + int tokensFound = 0; + + for( IToken token = tokenDuple.getFirstToken(); token != null; token = token.getNext() ) + { + if( token == firstTokenOfDuple ) ++tokensFound; + if( token == lastTokenOfDuple ) ++tokensFound; + if( token == tokenDuple.getLastToken() ) + break; + } + if( tokensFound == 2 ) + { + greaterContextDuple = tokenDuple; + pastPointOfSelection = true; + } + + } + } + + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.Parser#endExpressionStatement(org.eclipse.cdt.core.parser.ast.IASTExpression) + */ + protected void endExpression(IASTExpression expression) + throws EndOfFileException { + if( mode != ParserMode.SELECTION_PARSE || ! tokenDupleCompleted() ) + cleanupLastToken(); + else + { + contextNode = expression; + throw new EndOfFileException(); + } + + } + + + public static class SelectionParseResult implements ISelectionParseResult + { + + public SelectionParseResult( IASTOffsetableNamedElement node, String fileName ) + { + this.node = node; + this.fileName = fileName; + } + + private final String fileName; + private final IASTOffsetableNamedElement node; + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.IParser.ISelectionParseResult#getNode() + */ + public IASTOffsetableNamedElement getOffsetableNamedElement() { + return node; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.IParser.ISelectionParseResult#getFilename() + */ + public String getFilename() { + return fileName; + } + + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.Parser#endEnumerator(org.eclipse.cdt.core.parser.ast.IASTEnumerator) + */ + protected void endEnumerator(IASTEnumerator enumerator) throws EndOfFileException { + if( mode != ParserMode.SELECTION_PARSE || ! tokenDupleCompleted() ) + cleanupLastToken(); + else + { + contextNode = enumerator; + throw new EndOfFileException(); + } + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.Parser#endClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier) + */ + protected void handleClassSpecifier(IASTClassSpecifier classSpecifier) + throws EndOfFileException { + if( mode != ParserMode.SELECTION_PARSE || ! tokenDupleCompleted() ) + cleanupLastToken(); + else + { + contextNode = classSpecifier; + throw new EndOfFileException(); + } + } + + protected void handleEnumeration(IASTEnumerationSpecifier enumeration) throws EndOfFileException { + if( mode != ParserMode.SELECTION_PARSE || ! tokenDupleCompleted() ) + cleanupLastToken(); + else + { + contextNode = enumeration; + throw new EndOfFileException(); + } + } + + /** + * @param set + * @param string + * @return + */ + private Set reconcileKeywords(Set keywords, String prefix) { + if( keywords == null ) return null; + if( prefix.equals( "")) return keywords; //$NON-NLS-1$ + Set resultSet = new TreeSet(); + Iterator i = keywords.iterator(); + while( i.hasNext() ) + { + String value = (String) i.next(); + if( value.startsWith( prefix ) ) + resultSet.add( value ); + else if( value.compareTo( prefix ) > 0 ) + break; + } + return resultSet; + } + + + /** + * @return + */ + protected Set getKeywordSet() { + return keywordSet; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.Parser#handleOffsetLimitException() + */ + protected void handleOffsetLimitException(OffsetLimitReachedException exception) throws EndOfFileException { + if( mode != ParserMode.COMPLETION_PARSE ) + throw new EndOfFileException(); + + if( exception.getCompletionNode() == null ) + { + setCompletionToken( exception.getFinalToken() ); + if( (finalToken!= null )&& (!finalToken.canBeAPrefix() )) + setCompletionToken(null); + } + else + { + ASTCompletionNode node = (ASTCompletionNode) exception.getCompletionNode(); + setCompletionValues( node.getCompletionKind(), node.getKeywordSet(), node.getCompletionPrefix() ); + } + + throw exception; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.Parser#getCompletionKindForDeclaration(org.eclipse.cdt.core.parser.ast.IASTScope) + */ + protected CompletionKind getCompletionKindForDeclaration(IASTScope scope, CompletionKind overide) { + if( mode != ParserMode.COMPLETION_PARSE ) return null; + IASTCompletionNode.CompletionKind kind = null; + if( overide != null ) + kind = overide; + else if( scope instanceof IASTClassSpecifier ) + kind = CompletionKind.FIELD_TYPE; + else if (scope instanceof IASTCodeScope) + kind = CompletionKind.SINGLE_NAME_REFERENCE; + else + kind = CompletionKind.VARIABLE_TYPE; + return kind; + } + + + protected IToken getCompletionToken() + { + if( mode != ParserMode.COMPLETION_PARSE ) + return null; + return finalToken; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ast.IASTReferenceStore#processReferences() + */ + public static void processReferences(List references, ISourceElementRequestor requestor ) + { + if( references == null || references.isEmpty() ) + return; + + for( int i = 0; i < references.size(); ++i ) + { + IASTReference reference = ((IASTReference)references.get(i)); + reference.acceptElement(requestor ); + } + + references.clear(); + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/QuickParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/QuickParser.java deleted file mode 100644 index c3811e5dc86..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/QuickParser.java +++ /dev/null @@ -1,79 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.internal.core.parser; - -import org.eclipse.cdt.core.parser.BacktrackException; -import org.eclipse.cdt.core.parser.EndOfFileException; -import org.eclipse.cdt.core.parser.IParserLogService; -import org.eclipse.cdt.core.parser.IScanner; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.ParseError; -import org.eclipse.cdt.core.parser.ParserFactory; -import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ParserMode; -import org.eclipse.cdt.core.parser.ParseError.ParseErrorKind; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; -import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.extension.IParserExtension; - -/** - * @author jcamelon - */ -public class QuickParser extends Parser { - - /** - * @param scanner - * @param callback - * @param mode - * @param language - * @param log - */ - public QuickParser(IScanner scanner, ISourceElementRequestor callback, ParserLanguage language, IParserLogService log, IParserExtension extension) { - super(scanner, callback, language, log, extension); - constructInitializersInDeclarations = false; - } - - protected void handleFunctionBody(IASTScope scope) throws BacktrackException, EndOfFileException - { - skipOverCompoundStatement(); - } - - protected void catchBlockCompoundStatement(IASTScope scope) throws BacktrackException, EndOfFileException - { - skipOverCompoundStatement(); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int) - */ - public IASTCompletionNode parse(int offset) throws ParseError { - throw new ParseError( ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int, int) - */ - public ISelectionParseResult parse(int startingOffset, int endingOffset) throws ParseError { - throw new ParseError( ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setupASTFactory(org.eclipse.cdt.core.parser.IScanner, org.eclipse.cdt.core.parser.ParserLanguage) - */ - protected void setupASTFactory(IScanner scanner, ParserLanguage language) { - astFactory = ParserFactory.createASTFactory( ParserMode.QUICK_PARSE, language); - scanner.setASTFactory(astFactory); - astFactory.setLogger(log); - } - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java deleted file mode 100644 index 1c22a7e2b0c..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java +++ /dev/null @@ -1,361 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.internal.core.parser; - -import java.util.Arrays; - -import org.eclipse.cdt.core.parser.EndOfFileException; -import org.eclipse.cdt.core.parser.IParserLogService; -import org.eclipse.cdt.core.parser.IScanner; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.IToken; -import org.eclipse.cdt.core.parser.ITokenDuple; -import org.eclipse.cdt.core.parser.ParseError; -import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; -import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; -import org.eclipse.cdt.core.parser.ast.IASTDeclaration; -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.core.parser.ast.IASTInitializerClause; -import org.eclipse.cdt.core.parser.ast.IASTNode; -import org.eclipse.cdt.core.parser.ast.IASTOffsetableElement; -import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; -import org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement; -import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.extension.IParserExtension; -import org.eclipse.cdt.internal.core.parser.token.OffsetDuple; -import org.eclipse.cdt.internal.core.parser.token.TokenFactory; -import org.eclipse.cdt.internal.core.parser.util.TraceUtil; - -/** - * @author jcamelon - */ -public class SelectionParser extends ContextualParser { - - private OffsetDuple offsetRange; - private IToken firstTokenOfDuple = null, lastTokenOfDuple = null; - private IASTScope ourScope = null; - private IASTCompletionNode.CompletionKind ourKind = null; - private IASTNode ourContext = null; - private ITokenDuple greaterContextDuple = null; - private boolean pastPointOfSelection = false; - private IASTNode contextNode = null; - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#handleNewToken(org.eclipse.cdt.core.parser.IToken) - */ - protected void handleNewToken(IToken value) { - if( value != null && scanner.isOnTopContext() ) - { - TraceUtil.outputTrace(log, "IToken provided w/offsets ", null, value.getOffset(), " & ", value.getEndOffset() ); //$NON-NLS-1$ //$NON-NLS-2$ - boolean change = false; - if( value.getOffset() == offsetRange.getFloorOffset() ) - { - TraceUtil.outputTrace(log, "Offset Floor Hit w/token \"", null, value.getCharImage(), "\"", null ); //$NON-NLS-1$ //$NON-NLS-2$ - firstTokenOfDuple = value; - change = true; - } - if( value.getEndOffset() == offsetRange.getCeilingOffset() ) - { - TraceUtil.outputTrace(log, "Offset Ceiling Hit w/token \"", null, value.getCharImage(), "\"", null ); //$NON-NLS-1$ //$NON-NLS-2$ - change = true; - lastTokenOfDuple = value; - } - if( change && tokenDupleCompleted() ) - { - if ( ourScope == null ) - ourScope = getCompletionScope(); - if( ourContext == null ) - ourContext = getCompletionContext(); - if( ourKind == null ) - ourKind = getCompletionKind(); - } - } - } - - - - - /** - * @return - */ - protected boolean tokenDupleCompleted() { - return lastTokenOfDuple != null && lastTokenOfDuple.getEndOffset() >= offsetRange.getCeilingOffset(); - } - - - - - /** - * @param scanner - * @param callback - * @param mode - * @param language - * @param log - */ - public SelectionParser(IScanner scanner, ISourceElementRequestor callback, ParserLanguage language, IParserLogService log, IParserExtension extension ) { - super(scanner, callback, language, log,extension); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int, int) - */ - public ISelectionParseResult parse(int startingOffset, int endingOffset) { - offsetRange = new OffsetDuple( startingOffset, endingOffset ); - translationUnit(); - return reconcileTokenDuple(); - } - - /** - * - */ - protected ISelectionParseResult reconcileTokenDuple() throws ParseError { - if( firstTokenOfDuple == null || lastTokenOfDuple == null ) - throw new ParseError( ParseError.ParseErrorKind.OFFSET_RANGE_NOT_NAME ); - - if( getCompletionKind() == IASTCompletionNode.CompletionKind.UNREACHABLE_CODE ) - throw new ParseError( ParseError.ParseErrorKind.OFFSETDUPLE_UNREACHABLE ); - - ITokenDuple duple = TokenFactory.createTokenDuple( firstTokenOfDuple, lastTokenOfDuple ); - - if( ! duple.syntaxOfName() ) - throw new ParseError( ParseError.ParseErrorKind.OFFSET_RANGE_NOT_NAME ); - - return provideSelectionNode(duple); - } - - /** - * @param duple - * @return - */ - protected ISelectionParseResult provideSelectionNode(ITokenDuple duple) { - - ITokenDuple finalDuple = null; - // reconcile the name to look up first - if( ! duple.equals( greaterContextDuple )) - { - // 3 cases - // duple is prefix of greaterContextDuple - // or duple is suffix of greaterContextDuple - // duple is a sub-duple of greaterContextDuple - if( duple.getFirstToken().equals( greaterContextDuple.getFirstToken() )) - finalDuple = duple; // => do not use greaterContextDuple - else if( duple.getLastToken().equals( greaterContextDuple.getLastToken() )) - finalDuple = greaterContextDuple; // => use greaterContextDuple - else - throw new ParseError( ParseError.ParseErrorKind.OFFSET_RANGE_NOT_NAME ); - } - else - finalDuple = greaterContextDuple; - - IASTNode node = lookupNode(finalDuple); - if( node == null ) return null; - if( !(node instanceof IASTOffsetableNamedElement )) return null; - return new SelectionParseResult( (IASTOffsetableNamedElement) node, new String( ((IASTOffsetableElement)node).getFilename() )); - } - - - - - /** - * @param finalDuple - * @return - */ - protected IASTNode lookupNode(ITokenDuple finalDuple) { - if( contextNode == null ) return null; - if( contextNode instanceof IASTDeclaration ) - { - if( contextNode instanceof IASTOffsetableNamedElement ) - { - if( ((IASTOffsetableNamedElement)contextNode).getName().equals( finalDuple.toString() ) ) - return contextNode; - } - if( contextNode instanceof IASTQualifiedNameElement ) - { - String [] elementQualifiedName = ((IASTQualifiedNameElement)contextNode).getFullyQualifiedName(); - if( Arrays.equals( elementQualifiedName, finalDuple.toQualifiedName() ) ) - return contextNode; - } - try { - if( ourKind == IASTCompletionNode.CompletionKind.NEW_TYPE_REFERENCE ) - { - if( contextNode instanceof IASTVariable ) - { - IASTInitializerClause initializer = ((IASTVariable)contextNode).getInitializerClause(); - if( initializer != null ) - { - IASTExpression ownerExpression = initializer.findExpressionForDuple( finalDuple ); - return astFactory.lookupSymbolInContext( ourScope, finalDuple, ownerExpression ); - } - } - } - - return astFactory.lookupSymbolInContext( ourScope, finalDuple, null ); - } catch (ASTNotImplementedException e) { - return null; - } - } - else if( contextNode instanceof IASTExpression ) - { - try { - return astFactory.lookupSymbolInContext( ourScope, finalDuple, contextNode ); - } catch (ASTNotImplementedException e) { - return null; - } - } - return null; - } - - - - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int) - */ - public IASTCompletionNode parse(int offset) { - throw new ParseError( ParseError.ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#checkEndOfFile() - */ - protected void checkEndOfFile() throws EndOfFileException { - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setGreaterNameContext(org.eclipse.cdt.core.parser.ITokenDuple) - */ - protected void setGreaterNameContext(ITokenDuple tokenDuple) { - - if( pastPointOfSelection ) return; - if( greaterContextDuple == null && scanner.isOnTopContext() && lastTokenOfDuple != null && firstTokenOfDuple != null ) - { - if( tokenDuple.getStartOffset() > lastTokenOfDuple.getEndOffset() ) - { - pastPointOfSelection = true; - return; - } - int tokensFound = 0; - - for( IToken token = tokenDuple.getFirstToken(); token != null; token = token.getNext() ) - { - if( token == firstTokenOfDuple ) ++tokensFound; - if( token == lastTokenOfDuple ) ++tokensFound; - if( token == tokenDuple.getLastToken() ) - break; - } - if( tokensFound == 2 ) - { - greaterContextDuple = tokenDuple; - pastPointOfSelection = true; - } - - } - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#endDeclaration(org.eclipse.cdt.core.parser.ast.IASTDeclaration) - */ - protected void endDeclaration(IASTDeclaration declaration) - throws EndOfFileException { - if( ! tokenDupleCompleted() ) - super.endDeclaration(declaration); - else - { - contextNode = declaration; - throw new EndOfFileException(); - } - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#endExpressionStatement(org.eclipse.cdt.core.parser.ast.IASTExpression) - */ - protected void endExpression(IASTExpression expression) - throws EndOfFileException { - if( ! tokenDupleCompleted() ) - super.endExpression(expression); - else - { - contextNode = expression; - throw new EndOfFileException(); - } - - } - - - public static class SelectionParseResult implements ISelectionParseResult - { - - public SelectionParseResult( IASTOffsetableNamedElement node, String fileName ) - { - this.node = node; - this.fileName = fileName; - } - - private final String fileName; - private final IASTOffsetableNamedElement node; - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser.ISelectionParseResult#getNode() - */ - public IASTOffsetableNamedElement getOffsetableNamedElement() { - return node; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser.ISelectionParseResult#getFilename() - */ - public String getFilename() { - return fileName; - } - - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#endEnumerator(org.eclipse.cdt.core.parser.ast.IASTEnumerator) - */ - protected void endEnumerator(IASTEnumerator enumerator) throws EndOfFileException { - if( ! tokenDupleCompleted() ) - super.endEnumerator(enumerator); - else - { - contextNode = enumerator; - throw new EndOfFileException(); - } - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#endClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier) - */ - protected void handleClassSpecifier(IASTClassSpecifier classSpecifier) - throws EndOfFileException { - if( ! tokenDupleCompleted() ) - super.handleClassSpecifier(classSpecifier); - else - { - contextNode = classSpecifier; - throw new EndOfFileException(); - } - } - - protected void handleEnumeration(IASTEnumerationSpecifier enumeration) throws EndOfFileException { - if( ! tokenDupleCompleted() ) - super.handleEnumeration(enumeration); - else - { - contextNode = enumeration; - throw new EndOfFileException(); - } - } -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/StructuralParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/StructuralParser.java deleted file mode 100644 index 7207f334049..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/StructuralParser.java +++ /dev/null @@ -1,85 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.internal.core.parser; - -import org.eclipse.cdt.core.parser.BacktrackException; -import org.eclipse.cdt.core.parser.EndOfFileException; -import org.eclipse.cdt.core.parser.IParser; -import org.eclipse.cdt.core.parser.IParserLogService; -import org.eclipse.cdt.core.parser.IScanner; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.ParseError; -import org.eclipse.cdt.core.parser.ParserFactory; -import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ParserMode; -import org.eclipse.cdt.core.parser.ParseError.ParseErrorKind; -import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; -import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.extension.IParserExtension; - -/** - * @author jcamelon - */ -public class StructuralParser extends Parser implements IParser { - - /** - * @param scanner - * @param ourCallback - * @param language - * @param logService - */ - public StructuralParser(IScanner scanner, ISourceElementRequestor ourCallback, ParserLanguage language, IParserLogService logService, IParserExtension extension ) { - super(scanner, ourCallback, language, logService, extension ); - setupASTFactory(scanner, language ); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#handleFunctionBody(org.eclipse.cdt.core.parser.ast.IASTScope, boolean) - */ - protected void handleFunctionBody( - IASTScope scope) - throws BacktrackException, EndOfFileException { - skipOverCompoundStatement(); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.Parser#catchBlockCompoundStatement(org.eclipse.cdt.core.parser.ast.IASTScope) - */ - protected void catchBlockCompoundStatement(IASTScope scope) - throws BacktrackException, EndOfFileException { - skipOverCompoundStatement(); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int) - */ - public IASTCompletionNode parse(int offset) throws ParseError { - throw new ParseError( ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IParser#parse(int, int) - */ - public ISelectionParseResult parse(int startingOffset, int endingOffset) throws ParseError { - throw new ParseError( ParseErrorKind.METHOD_NOT_IMPLEMENTED ); - } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ExpressionParser#setupASTFactory(org.eclipse.cdt.core.parser.IScanner, org.eclipse.cdt.core.parser.ParserLanguage) - */ - protected void setupASTFactory(IScanner scanner, ParserLanguage language) { - astFactory = ParserFactory.createASTFactory( ParserMode.COMPLETE_PARSE, language); - scanner.setASTFactory(astFactory); - astFactory.setLogger(log); - } - -} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTAbstractDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTAbstractDeclaration.java index 59a0e3da318..c902bea54ea 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTAbstractDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTAbstractDeclaration.java @@ -19,7 +19,6 @@ import org.eclipse.cdt.core.parser.ast.ASTPointerOperator; import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration; import org.eclipse.cdt.core.parser.ast.IASTArrayModifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -127,23 +126,23 @@ public class ASTAbstractDeclaration implements IASTAbstractDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { List arrayMods = getArrayModifiersList(); int size = arrayMods.size(); for( int i = 0; i< size; i++ ) - ((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor, manager); + ((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTArrayModifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTArrayModifier.java index 8e91f1c44ab..bd0839088a0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTArrayModifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTArrayModifier.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTArrayModifier; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -41,23 +40,23 @@ public class ASTArrayModifier implements IASTArrayModifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { if( expression != null ) - expression.acceptElement( requestor, manager ); + expression.acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTDesignator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTDesignator.java index 3a3a9ae60c2..cb4fdb06e61 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTDesignator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTDesignator.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTDesignator; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -65,21 +64,21 @@ public class ASTDesignator implements IASTDesignator /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { if( constantExpression != null ) - constantExpression.acceptElement(requestor, manager); + constantExpression.acceptElement(requestor); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager ) + public void enterScope(ISourceElementRequestor requestor ) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager ) + public void exitScope(ISourceElementRequestor requestor ) { } /* (non-Javadoc) 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 1b6e05df4b0..4ae24a65c19 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 @@ -12,7 +12,6 @@ package org.eclipse.cdt.internal.core.parser.ast; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTInclusion; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -109,7 +108,7 @@ public class ASTInclusion implements IASTInclusion { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { // TODO Auto-generated method stub @@ -118,7 +117,7 @@ public class ASTInclusion implements IASTInclusion { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -133,7 +132,7 @@ public class ASTInclusion implements IASTInclusion { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 ca573f5188e..ebe967711ef 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 @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTMacro; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -88,7 +87,7 @@ public class ASTMacro implements IASTMacro { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -102,13 +101,13 @@ public class ASTMacro implements IASTMacro { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 0561cbe27e8..997a750897f 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 @@ -12,7 +12,6 @@ package org.eclipse.cdt.internal.core.parser.ast.complete; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; /** @@ -44,7 +43,7 @@ public class ASTASMDefinition extends ASTAnonymousDeclaration implements IASTASM /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -58,13 +57,13 @@ public class ASTASMDefinition extends ASTAnonymousDeclaration implements IASTASM /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } private int startingLineNumber, startingOffset, endingLineNumber, endingOffset; 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 19ca2ca95e7..4c2c07d18d4 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 @@ -14,7 +14,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplate; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; @@ -48,7 +47,7 @@ public class ASTAbstractTypeSpecifierDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -66,14 +65,14 @@ public class ASTAbstractTypeSpecifierDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java index cd00a720ed7..d4603965c47 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java @@ -16,7 +16,7 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -86,23 +86,23 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { - manager.processReferences( references, requestor ); + Parser.processReferences( references, requestor ); references = null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBinaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBinaryExpression.java index b2360f31f0e..a479272559f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBinaryExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBinaryExpression.java @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -68,26 +67,26 @@ public class ASTBinaryExpression extends ASTUnaryExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() */ - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { - super.reconcileReferences(manager); - rhs.reconcileReferences(manager); - reconcileSubExpression((ASTExpression) rhs, manager); + public void reconcileReferences() throws ASTNotImplementedException { + super.reconcileReferences(); + rhs.reconcileReferences(); + reconcileSubExpression((ASTExpression) rhs ); } /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() */ - protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { - super.processCallbacks(requestor, manager); - rhs.acceptElement( requestor, manager ); + protected void processCallbacks( ISourceElementRequestor requestor ) { + super.processCallbacks(requestor ); + rhs.acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - rhs.freeReferences(manager); + public void freeReferences() { + super.freeReferences(); + rhs.freeReferences(); } public String toString(){ 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 new file mode 100644 index 00000000000..5a509db5ec6 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTClassReference.java @@ -0,0 +1,86 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTClassReference; +import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; +import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; + + +public class ASTClassReference extends ASTReference + implements + IASTClassReference { + private IASTTypeSpecifier reference; + /** + * @param i + * @param specifier + */ + public ASTClassReference(int i, IASTTypeSpecifier specifier) { + super(i); + reference = specifier; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTReference#initialize(int) + */ + public void initialize(int o, ISourceElementCallbackDelegate specifier) { + super.initialize(o); + reference = (IASTTypeSpecifier) specifier; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTReference#reset() + */ + public void reset() { + super.resetOffset(); + reference = null; + } + /** + * + */ + public ASTClassReference() { + super(0); + reference = null; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return (ISourceElementCallbackDelegate) reference; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptClassReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTClassReference#isResolved() + */ + public boolean isResolved() { + return (reference instanceof IASTClassSpecifier); + } +} 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 3493a4aa46d..7608dd7ca51 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 @@ -24,7 +24,7 @@ import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.ast.SymbolIterator; import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol; @@ -161,16 +161,16 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { - manager.processReferences( references, requestor ); + Parser.processReferences( references, requestor ); references = null; try { @@ -186,15 +186,15 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier { IParentSymbol pw = (IParentSymbol)bases.get(i); IASTBaseSpecifier baseSpec = new ASTBaseSpecifier( pw.getParent(), pw.isVirtual(), pw.getAccess(), pw.getOffset(), pw.getReferences() ); - baseSpec.acceptElement(requestor, manager); + baseSpec.acceptElement(requestor); } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { - manager.processReferences( this.resolvedCrossReferences, requestor ); + Parser.processReferences( this.resolvedCrossReferences, requestor ); try { requestor.exitClassSpecifier(this); @@ -271,7 +271,7 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier /** * @param references2 */ - public void setExtraReferences(List references, ReferenceCache cache ) { + public void setExtraReferences(List references ) { if( references != null && !references.isEmpty()) { for( int i = 0; i < references.size(); ++i ) 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 b8086e79435..2c897efed8c 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 @@ -24,7 +24,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTCodeScope; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTFunction; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; /** @@ -49,13 +48,13 @@ public class ASTCodeScope extends ASTScope implements IASTCodeScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) { + public void enterScope(ISourceElementRequestor requestor) { try { requestor.enterCodeBlock( this ); @@ -69,7 +68,7 @@ public class ASTCodeScope extends ASTScope implements IASTCodeScope { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) { + public void exitScope(ISourceElementRequestor requestor) { try { requestor.exitCodeBlock( this ); 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 07d03cd21bf..dde63f57c03 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 @@ -17,7 +17,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -40,13 +39,13 @@ public class ASTCompilationUnit /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -60,7 +59,7 @@ public class ASTCompilationUnit /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConditionalExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConditionalExpression.java index 5b488c99699..99bf13cc085 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConditionalExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConditionalExpression.java @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -71,27 +70,27 @@ public class ASTConditionalExpression extends ASTBinaryExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() */ - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { - super.reconcileReferences(manager); - thirdExpression.reconcileReferences(manager); - reconcileSubExpression((ASTExpression) thirdExpression, manager); + public void reconcileReferences() throws ASTNotImplementedException { + super.reconcileReferences(); + thirdExpression.reconcileReferences(); + reconcileSubExpression((ASTExpression) thirdExpression); } /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() */ - protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { - super.processCallbacks(requestor, manager); - thirdExpression.acceptElement( requestor, manager ); + protected void processCallbacks( ISourceElementRequestor requestor ) { + super.processCallbacks(requestor ); + thirdExpression.acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - thirdExpression.freeReferences(manager); + public void freeReferences() { + super.freeReferences(); + thirdExpression.freeReferences(); } public String toString(){ return ASTUtil.getExpressionString( this ); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConstructorMemberInitializer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConstructorMemberInitializer.java index 56d7da18e9d..30e7bfe9c6b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConstructorMemberInitializer.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTConstructorMemberInitializer.java @@ -15,7 +15,7 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; /** * @author jcamelon @@ -60,23 +60,23 @@ public class ASTConstructorMemberInitializer /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { - manager.processReferences( references, requestor ); + Parser.processReferences( references, requestor ); references = null; if( expression != null ) - expression.freeReferences(manager); + expression.freeReferences(); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /** 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 18ac8e85972..a422738b344 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 @@ -15,7 +15,7 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTClassKind; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; @@ -77,7 +77,7 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { if( isForwardDeclaration ) try @@ -88,18 +88,18 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora { /* do nothing */ } - manager.processReferences( references, requestor ); + Parser.processReferences( references, requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEmptyExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEmptyExpression.java index d824f08ae88..f78462e225e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEmptyExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEmptyExpression.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.complete; import java.util.List; import org.eclipse.cdt.core.parser.ast.ASTUtil; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -31,7 +30,7 @@ public class ASTEmptyExpression extends ASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { } public String toString(){ 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 new file mode 100644 index 00000000000..a4de72a1b28 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumerationReference.java @@ -0,0 +1,77 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTEnumerationReference; +import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; + + +public class ASTEnumerationReference extends ASTReference + implements + IASTEnumerationReference { + private IASTEnumerationSpecifier referencedElement; + /** + * @param offset + * @param specifier + */ + public ASTEnumerationReference(int offset, + IASTEnumerationSpecifier specifier) { + super(offset); + referencedElement = specifier; + } + + /** + * + */ + public ASTEnumerationReference() { + super( 0 ); + referencedElement = null; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return referencedElement; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptEnumerationReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate re) { + initialize(o); + this.referencedElement = (IASTEnumerationSpecifier) re; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + super.resetOffset(); + this.referencedElement = null; + } +} 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 81dbec31626..a1a244ef0a2 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 @@ -18,7 +18,6 @@ import java.util.List; 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.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; @@ -74,7 +73,7 @@ public class ASTEnumerationSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -89,19 +88,19 @@ public class ASTEnumerationSpecifier { IASTEnumerator enumerator = (IASTEnumerator) enumerators.get(i); if( enumerator.getInitialValue() != null ) - enumerator.getInitialValue().acceptElement(requestor, manager ); + enumerator.getInitialValue().acceptElement(requestor ); } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) @@ -131,10 +130,10 @@ public class ASTEnumerationSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager referenceManager) { + public void freeReferences() { if( enumerators.isEmpty() ) return; for( int i = 0; i < enumerators.size(); ++i ) - ((IASTEnumerator) enumerators.get(i)).freeReferences(referenceManager); + ((IASTEnumerator) enumerators.get(i)).freeReferences(); } private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameStartOffset, nameEndOffset, nameLineNumber; 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 a7d67fc042f..4e074deb394 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,6 @@ 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.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -76,27 +75,27 @@ public class ASTEnumerator extends ASTSymbol implements IASTEnumerator /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTEnumerator#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager referenceManager) { + public void freeReferences() { if( initialValue != null ) - initialValue.freeReferences(referenceManager); + initialValue.freeReferences(); } private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameEndOffset; 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 new file mode 100644 index 00000000000..bb975272c3c --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTEnumeratorReference.java @@ -0,0 +1,77 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTEnumerator; +import org.eclipse.cdt.core.parser.ast.IASTEnumeratorReference; + + +public class ASTEnumeratorReference extends ASTReference + implements + IASTEnumeratorReference { + + private IASTEnumerator enumerator; + /** + * @param offset + * @param enumerator + */ + public ASTEnumeratorReference(int offset, IASTEnumerator enumerator) { + super(offset); + this.enumerator = enumerator; + } + + /** + * + */ + public ASTEnumeratorReference() { + super( 0 ); + enumerator = null; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return enumerator; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptEnumeratorReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + super.initialize(o); + this.enumerator = (IASTEnumerator) referencedElement; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + super.resetOffset(); + this.enumerator = null; + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java index b5677893868..bfce765d145 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTExpression.java @@ -19,7 +19,7 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; @@ -66,20 +66,20 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { - reconcileReferences(manager); + reconcileReferences(); } catch (ASTNotImplementedException e) { // will not get thrown } - manager.processReferences( references, requestor ); + Parser.processReferences( references, requestor ); references = null; - processCallbacks(requestor, manager); + processCallbacks(requestor); try { @@ -96,19 +96,19 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression * @param manager TODO * */ - protected void processCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) { + protected void processCallbacks(ISourceElementRequestor requestor ) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } @@ -128,24 +128,23 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() */ - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException + public void reconcileReferences() throws ASTNotImplementedException { } - protected void reconcileSubExpression(ASTExpression subExpression, IReferenceManager manager) + protected void reconcileSubExpression(ASTExpression subExpression ) { if( subExpression != null && subExpression.getReferences() != null ) { List refs = subExpression.getReferences(); int size = refs.size(); - for( int i = 0; i < size; i++ ) + for( int i = 0; i < refs.size(); i++ ) { IASTReference aReference = (IASTReference)refs.get(i); if( aReference != null && references.contains( aReference ) ) { refs.remove(i--); - size--; - manager.returnReference( aReference ); + size--; } } } @@ -295,11 +294,9 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression return null; } - public void freeReferences( IReferenceManager manager ) + public void freeReferences( ) { if( references == null || references.isEmpty() ) return; - for (int i = 0; i < references.size(); ++i) - manager.returnReference( (IASTReference) references.get(i)); references.clear(); } } 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 09ce3eaefec..a5c92c83dcc 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 @@ -18,7 +18,7 @@ import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -53,7 +53,7 @@ public class ASTField extends ASTVariable implements IASTField return visibility; } - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -63,12 +63,12 @@ public class ASTField extends ASTVariable implements IASTField { /* do nothing */ } - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; if( getInitializerClause() != null ) - getInitializerClause().acceptElement(requestor, manager); + getInitializerClause().acceptElement(requestor); if( getAbstractDeclaration() != null ) - getAbstractDeclaration().acceptElement(requestor, manager); + getAbstractDeclaration().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 new file mode 100644 index 00000000000..1423f0585ae --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFieldReference.java @@ -0,0 +1,74 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTField; +import org.eclipse.cdt.core.parser.ast.IASTFieldReference; +import org.eclipse.cdt.core.parser.ast.IASTReference; + + +public class ASTFieldReference extends ASTReference + implements + IASTReference, + IASTFieldReference { + private IASTField referencedElement; + /** + * @param offset + * @param field + */ + public ASTFieldReference(int offset, IASTField field) { + super(offset); + referencedElement = field; + } + /** + * + */ + public ASTFieldReference() { + super(0); + referencedElement = null; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return referencedElement; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptFieldReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate re) { + initialize(o); + this.referencedElement = (IASTField) re; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + resetOffset(); + this.referencedElement = null; + } +} 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 5cbafd63856..b2d37474c54 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 @@ -23,7 +23,7 @@ import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification; import org.eclipse.cdt.core.parser.ast.IASTFunction; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplate; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.pst.IParameterizedSymbol; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; @@ -166,7 +166,7 @@ public class ASTFunction extends ASTScope implements IASTFunction /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -179,33 +179,33 @@ public class ASTFunction extends ASTScope implements IASTFunction { /* do nothing */ } - functionCallbacks(requestor, manager); + functionCallbacks(requestor); } - protected void functionCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) + protected void functionCallbacks(ISourceElementRequestor requestor ) { - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; - processParameterInitializersAndArrayMods(requestor, manager); + processParameterInitializersAndArrayMods(requestor); if( getReturnType() != null ) - getReturnType().acceptElement(requestor, manager); + getReturnType().acceptElement(requestor); } /** * @param requestor * @param manager */ - protected void processParameterInitializersAndArrayMods(ISourceElementRequestor requestor, IReferenceManager manager) + protected void processParameterInitializersAndArrayMods(ISourceElementRequestor requestor ) { int size = parameters.size(); for( int i = 0; i < size; i++ ) { IASTParameterDeclaration parm = (IASTParameterDeclaration)parameters.get(i); if( parm.getDefaultValue() != null ) - parm.getDefaultValue().acceptElement(requestor, manager); + parm.getDefaultValue().acceptElement(requestor); Iterator arrays = parm.getArrayModifiers(); while( arrays.hasNext() ) { - ((IASTArrayModifier)arrays.next()).acceptElement(requestor, manager); + ((IASTArrayModifier)arrays.next()).acceptElement(requestor); } } } @@ -214,7 +214,7 @@ public class ASTFunction extends ASTScope implements IASTFunction /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -224,12 +224,12 @@ public class ASTFunction extends ASTScope implements IASTFunction { /* do nothing */ } - functionCallbacks( requestor, manager ); + functionCallbacks( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 new file mode 100644 index 00000000000..b0e5e7dc851 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTFunctionReference.java @@ -0,0 +1,74 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTFunction; +import org.eclipse.cdt.core.parser.ast.IASTFunctionReference; +import org.eclipse.cdt.core.parser.ast.IASTReference; + + +public class ASTFunctionReference extends ASTReference + implements + IASTReference, + IASTFunctionReference { + private IASTFunction declaration; + /** + * @param offset + */ + public ASTFunctionReference(int offset, + IASTFunction referencedDeclaration) { + super(offset); + this.declaration = referencedDeclaration; + } + /** + * + */ + public ASTFunctionReference() { + super(0); + declaration = null; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return declaration; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptFunctionReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + super.initialize(o); + this.declaration = (IASTFunction) referencedElement; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + resetOffset(); + this.declaration = null; + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTInitializerClause.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTInitializerClause.java index 268e495c415..91e97a633e9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTInitializerClause.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTInitializerClause.java @@ -21,7 +21,7 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; /** @@ -79,30 +79,30 @@ public class ASTInitializerClause implements IASTInitializerClause /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { List initializers = getInitializersList(); int size = initializers.size(); for( int i = 0; i < size; i++ ) - ((IASTInitializerClause)initializers.get(i)).acceptElement(requestor, manager); + ((IASTInitializerClause)initializers.get(i)).acceptElement(requestor); if( assignmentExpression != null ) - assignmentExpression.acceptElement( requestor, manager ); + assignmentExpression.acceptElement( requestor ); - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 6b16ef6d462..8e8e270f8e3 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 @@ -18,7 +18,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; /** @@ -65,13 +64,13 @@ public class ASTLinkageSpecification extends ASTAnonymousDeclaration implements /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -85,7 +84,7 @@ public class ASTLinkageSpecification extends ASTAnonymousDeclaration implements /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 b01725e76a7..35a971b23e6 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 @@ -23,7 +23,6 @@ import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification; import org.eclipse.cdt.core.parser.ast.IASTMethod; import org.eclipse.cdt.core.parser.ast.IASTTemplate; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IParameterizedSymbol; @@ -135,7 +134,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -148,15 +147,15 @@ public class ASTMethod extends ASTFunction implements IASTMethod { /* do nothing */ } - methodCallbacks(requestor, manager); + methodCallbacks(requestor ); } - protected void methodCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) + protected void methodCallbacks(ISourceElementRequestor requestor) { - functionCallbacks(requestor, manager); - processConstructorChain(requestor, manager); + functionCallbacks(requestor); + processConstructorChain(requestor); } - protected void processConstructorChain(ISourceElementRequestor requestor, IReferenceManager manager) + protected void processConstructorChain(ISourceElementRequestor requestor ) { if( constructorChain != null ) { @@ -164,14 +163,14 @@ public class ASTMethod extends ASTFunction implements IASTMethod for( int i = 0; i < initializers.size(); i++ ) { IASTConstructorMemberInitializer c = (IASTConstructorMemberInitializer)initializers.get(i); - c.acceptElement(requestor, manager); + c.acceptElement(requestor); } } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -181,12 +180,12 @@ public class ASTMethod extends ASTFunction implements IASTMethod { /* do nothing */ } - methodCallbacks( requestor, manager ); + methodCallbacks( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 new file mode 100644 index 00000000000..5d61d5b01e4 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTMethodReference.java @@ -0,0 +1,71 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTMethod; +import org.eclipse.cdt.core.parser.ast.IASTMethodReference; + + +public class ASTMethodReference extends ASTReference + implements + IASTMethodReference { + private IASTMethod method; + /** + * @param offset + */ + public ASTMethodReference(int offset, IASTMethod method) { + super(offset); + this.method = method; + } + /** + * + */ + public ASTMethodReference() { + super(0); + this.method = null; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return method; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptMethodReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + super.initialize(o); + this.method = (IASTMethod) referencedElement; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + resetOffset(); + this.method= null; + } +} 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 ba768119269..5b5637b2712 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 @@ -15,7 +15,7 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTNamespaceAlias; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -73,22 +73,22 @@ public class ASTNamespaceAlias extends ASTSymbol implements IASTNamespaceAlias /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 c4f2c019ed3..c202f991828 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 @@ -17,7 +17,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; @@ -66,14 +65,14 @@ public class ASTNamespaceDefinition /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -89,7 +88,7 @@ public class ASTNamespaceDefinition /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 new file mode 100644 index 00000000000..68989c1cfc9 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNamespaceReference.java @@ -0,0 +1,78 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; +import org.eclipse.cdt.core.parser.ast.IASTNamespaceReference; + + +public class ASTNamespaceReference extends ASTReference + implements + IASTNamespaceReference { + private IASTNamespaceDefinition reference; + + /** + * @param offset + * @param definition + */ + public ASTNamespaceReference(int offset, + IASTNamespaceDefinition definition) { + super(offset); + reference = definition; + } + + /** + * + */ + public ASTNamespaceReference() { + super(0); + reference = null; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return reference; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptNamespaceReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + super.initialize(o); + this.reference = (IASTNamespaceDefinition) referencedElement; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + resetOffset(); + this.reference = null; + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java index 5a77fbe5369..f4ab8835cad 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewDescriptor.java @@ -15,7 +15,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; /** @@ -57,11 +56,11 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { - accept( requestor, getNewPlacementExpressions(), manager ); - accept( requestor, getNewTypeIdExpressions() , manager); - accept( requestor, getNewInitializerExpressions() , manager); + accept( requestor, getNewPlacementExpressions() ); + accept( requestor, getNewTypeIdExpressions() ); + accept( requestor, getNewInitializerExpressions() ); } @@ -70,17 +69,17 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor { * @param iterator * @param manager */ - protected void accept(ISourceElementRequestor requestor, Iterator iterator, IReferenceManager manager) + protected void accept(ISourceElementRequestor requestor, Iterator iterator) { while( iterator.hasNext() ) - ((IASTExpression)iterator.next()).acceptElement(requestor, manager); + ((IASTExpression)iterator.next()).acceptElement(requestor); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } @@ -88,7 +87,7 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } @@ -96,10 +95,10 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - free( newPlacementExpressions, manager ); - free( newTypeIdExpressions , manager); - free( newInitializerExpressions , manager); + public void freeReferences() { + free( newPlacementExpressions ); + free( newTypeIdExpressions ); + free( newInitializerExpressions ); } @@ -107,10 +106,10 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor { * @param list * @param manager */ - private void free(List list, IReferenceManager manager) { + private void free(List list ) { if( list == null || list.isEmpty() ) return; for( int i = 0; i < list.size(); ++i) - ((IASTExpression)list.get(i)).freeReferences(manager); + ((IASTExpression)list.get(i)).freeReferences(); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewExpression.java index 77ca9067c46..bea396812d1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTNewExpression.java @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -57,10 +56,10 @@ public class ASTNewExpression extends ASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - protected void processCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) { - super.processCallbacks(requestor, manager); - typeId.acceptElement(requestor, manager); - newDescriptor.acceptElement(requestor, manager); + protected void processCallbacks(ISourceElementRequestor requestor ) { + super.processCallbacks(requestor ); + typeId.acceptElement(requestor); + newDescriptor.acceptElement(requestor); } @@ -77,9 +76,9 @@ public class ASTNewExpression extends ASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - typeId.freeReferences( manager ); + public void freeReferences() { + super.freeReferences(); + typeId.freeReferences( ); } public String toString(){ 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 526104a34dd..00d449b3423 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 @@ -21,7 +21,6 @@ import org.eclipse.cdt.core.parser.ast.IASTFunction; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTAbstractDeclaration; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; @@ -143,20 +142,20 @@ public class ASTParameterDeclaration extends ASTSymbol implements IASTParameterD /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 new file mode 100644 index 00000000000..1d092dbc5f2 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTParameterReference.java @@ -0,0 +1,78 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; +import org.eclipse.cdt.core.parser.ast.IASTParameterReference; + + +public class ASTParameterReference extends ASTReference + implements + IASTParameterReference { + private IASTParameterDeclaration parm; + + /** + * @param offset + * @param declaration + */ + public ASTParameterReference(int offset, + IASTParameterDeclaration declaration) { + super(offset); + parm = declaration; + } + + /** + * + */ + public ASTParameterReference() { + super(0); + parm = null; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return parm; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptParameterReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + initialize(o); + this.parm = (IASTParameterDeclaration) referencedElement; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + resetOffset(); + this.parm = null; + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTReference.java new file mode 100644 index 00000000000..aca7edb38ef --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTReference.java @@ -0,0 +1,90 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; +import org.eclipse.cdt.core.parser.ast.IASTReference; +import org.eclipse.cdt.core.parser.util.CharArrayUtils; + + +public abstract class ASTReference implements IASTReference { + protected int offset; + private static final String EMPTY_STRING = ""; //$NON-NLS-1$ + private static final char[] EMPTY_CHAR_ARRAY = "".toCharArray(); //$NON-NLS-1$ + + public abstract void reset(); + + protected void resetOffset() { + offset = 0; + } + + /** + * @param offset2 + * @param re + */ + public abstract void initialize(int o, ISourceElementCallbackDelegate re ); + + + protected void initialize(int o) { + this.offset = o; + } + + /** + * + */ + public ASTReference(int offset) { + this.offset = offset; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getOffset() + */ + public int getOffset() { + return offset; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getName() + */ + public String getName() { + if (getReferencedElement() instanceof IASTOffsetableNamedElement) + return ((IASTOffsetableNamedElement) getReferencedElement()) + .getName(); + return EMPTY_STRING; + } + public char[] getNameCharArray() { + if (getReferencedElement() instanceof IASTOffsetableNamedElement) + return ((IASTOffsetableNamedElement) getReferencedElement()) + .getNameCharArray(); + return EMPTY_CHAR_ARRAY; + } + public boolean equals(Object obj) { + if (obj == null) + return false; + if (!(obj instanceof IASTReference)) + return false; + + if ( CharArrayUtils.equals( ((IASTReference) obj).getNameCharArray(), getNameCharArray() ) + && ((IASTReference) obj).getOffset() == getOffset()) + return true; + return false; + } + + public void enterScope(ISourceElementRequestor requestor) { + } + + public void exitScope(ISourceElementRequestor requestor) { + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTSimpleTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTSimpleTypeSpecifier.java index 7d7c09fb26b..d712d4bcc4a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTSimpleTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTSimpleTypeSpecifier.java @@ -15,8 +15,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; -import org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; @@ -153,10 +151,8 @@ public class ASTSimpleTypeSpecifier extends ASTNode implements IASTSimpleTypeSpe /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier#releaseReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void releaseReferences(IReferenceManager referenceManager) { + public void releaseReferences() { if( refs == null || refs.isEmpty() ) return; - for( int i = 0; i < refs.size(); ++i ) - referenceManager.returnReference( (ASTReference)refs.get(i)); refs.clear(); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java index 5a9c8960713..f999bcf8d4a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateDeclaration.java @@ -20,7 +20,6 @@ import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension; @@ -139,14 +138,14 @@ public class ASTTemplateDeclaration extends ASTSymbol implements IASTTemplateDec /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -158,12 +157,12 @@ public class ASTTemplateDeclaration extends ASTSymbol implements IASTTemplateDec } if( templateParameters == null || templateParameters.isEmpty()) return; for( int i = 0; i < templateParameters.size(); ++i ) - ((IASTTemplateParameter)templateParameters.get(i)).acceptElement(requestor, manager ); + ((IASTTemplateParameter)templateParameters.get(i)).acceptElement(requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java index ac75952106d..c8531c9c41b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateInstantiation.java @@ -18,7 +18,6 @@ import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ITemplateFactory; @@ -108,14 +107,14 @@ public class ASTTemplateInstantiation extends ASTSymbol implements IASTTemplateI /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -129,7 +128,7 @@ public class ASTTemplateInstantiation extends ASTSymbol implements IASTTemplateI /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameter.java index 6a694a3f667..47dd8edf121 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameter.java @@ -21,7 +21,6 @@ import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; @@ -109,24 +108,24 @@ public class ASTTemplateParameter extends ASTSymbol implements IASTTemplateParam /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { + public void acceptElement(ISourceElementRequestor requestor) { if( defaultValue != null ) - defaultValue.acceptElement( requestor, manager ); + defaultValue.acceptElement( requestor ); if( parameter != null ) - parameter.acceptElement( requestor, manager ); + parameter.acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) { + public void enterScope(ISourceElementRequestor requestor) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) { + public void exitScope(ISourceElementRequestor requestor) { // TODO Auto-generated method stub } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameterReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameterReference.java new file mode 100644 index 00000000000..f6cced58871 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTemplateParameterReference.java @@ -0,0 +1,76 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; +import org.eclipse.cdt.core.parser.ast.IASTTemplateParameterReference; + + +public class ASTTemplateParameterReference extends ASTReference + implements + IASTTemplateParameterReference { + private IASTTemplateParameter parameter; + /** + * @param offset + */ + public ASTTemplateParameterReference(int offset, + IASTTemplateParameter param) { + super(offset); + parameter = param; + } + + /** + * + */ + public ASTTemplateParameterReference() { + super(0); + parameter = null; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return parameter; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptTemplateParameterReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + super.initialize(o); + parameter = (IASTTemplateParameter) referencedElement; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + resetOffset(); + this.parameter = null; + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeId.java index ca4f9acce0f..42840b80c9c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeId.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeId.java @@ -18,10 +18,9 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.IASTArrayModifier; -import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.Type; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -199,38 +198,38 @@ public class ASTTypeId implements IASTTypeId /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; if( tokenDuple != null ) - tokenDuple.acceptElement( requestor, manager ); + tokenDuple.acceptElement( requestor ); List arrayMods = getArrayModifiersList(); int size = arrayMods.size(); for( int i = 0; i < size; i++ ) { - ((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor, manager); + ((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor); } } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /** * @param list */ - public void addReferences(List list, ReferenceCache cache) + public void addReferences(List list ) { if( references == null ) references = new ArrayList( list.size() ); @@ -241,13 +240,11 @@ public class ASTTypeId implements IASTTypeId /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTTypeId#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { if( tokenDuple != null ) - tokenDuple.freeReferences( manager ); + tokenDuple.freeReferences( ); if( references == null || references.isEmpty() ) return; - for( int i =0; i < references.size(); ++i) - manager.returnReference( (IASTReference) references.get(i)); references.clear(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeIdExpression.java index c4b055d489b..bbadffecf2c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeIdExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypeIdExpression.java @@ -15,7 +15,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -39,18 +38,18 @@ public class ASTTypeIdExpression extends ASTExpression { return typeId; } - protected void processCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) { - super.processCallbacks(requestor, manager); - typeId.acceptElement(requestor, manager); + protected void processCallbacks(ISourceElementRequestor requestor ) { + super.processCallbacks(requestor ); + typeId.acceptElement(requestor); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - typeId.freeReferences(manager); + public void freeReferences() { + super.freeReferences(); + typeId.freeReferences(); } public String toString(){ 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 3ef439fe320..de24b3c0bad 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 @@ -18,7 +18,7 @@ import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; @@ -79,7 +79,7 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -89,22 +89,22 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration { /* do nothing */ } - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; - getAbstractDeclarator().acceptElement( requestor, manager ); + getAbstractDeclarator().acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 new file mode 100644 index 00000000000..dbd808831d1 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTTypedefReference.java @@ -0,0 +1,72 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; +import org.eclipse.cdt.core.parser.ast.IASTTypedefReference; + + +public class ASTTypedefReference extends ASTReference + implements + IASTTypedefReference { + private IASTTypedefDeclaration referencedItem; + /** + * @param offset + */ + public ASTTypedefReference(int offset, + IASTTypedefDeclaration referencedItem) { + super(offset); + this.referencedItem = referencedItem; + } + /** + * + */ + public ASTTypedefReference() { + super( 0 ); + this.referencedItem = null; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return referencedItem; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptTypedefReference(this); + } catch (Exception e) { + /* do nothing */ + } + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) + */ + public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { + super.initialize(o); + referencedItem = (IASTTypedefDeclaration) referencedElement; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + super.resetOffset(); + referencedItem = null; + } +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryExpression.java index e05524bd182..6c1ac9eece7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryExpression.java @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -55,9 +54,9 @@ public class ASTUnaryExpression extends ASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() */ - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { - lhs.reconcileReferences(manager); - reconcileSubExpression((ASTExpression) lhs, manager); + public void reconcileReferences() throws ASTNotImplementedException { + lhs.reconcileReferences(); + reconcileSubExpression((ASTExpression) lhs); } /* (non-Javadoc) @@ -72,18 +71,18 @@ public class ASTUnaryExpression extends ASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() */ - protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { - super.processCallbacks(requestor, manager); - lhs.acceptElement( requestor, manager ); + protected void processCallbacks( ISourceElementRequestor requestor ) { + super.processCallbacks(requestor ); + lhs.acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - lhs.freeReferences(manager); + public void freeReferences() { + super.freeReferences(); + lhs.freeReferences(); } public String toString(){ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryIdExpression.java index 85ab5530e32..73045537bb9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryIdExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryIdExpression.java @@ -20,7 +20,6 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author aniefer @@ -56,9 +55,9 @@ public class ASTUnaryIdExpression extends ASTIdExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() */ - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { - lhs.reconcileReferences(manager); - reconcileSubExpression((ASTExpression) lhs, manager); + public void reconcileReferences() throws ASTNotImplementedException { + lhs.reconcileReferences(); + reconcileSubExpression((ASTExpression) lhs); } /* (non-Javadoc) @@ -73,18 +72,18 @@ public class ASTUnaryIdExpression extends ASTIdExpression { /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() */ - protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { - super.processCallbacks(requestor, manager); - lhs.acceptElement( requestor, manager ); + protected void processCallbacks( ISourceElementRequestor requestor ) { + super.processCallbacks(requestor); + lhs.acceptElement( requestor ); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - lhs.freeReferences(manager); + public void freeReferences() { + super.freeReferences(); + lhs.freeReferences(); } public String toString(){ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryTypeIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryTypeIdExpression.java index 3c47b59efdf..dfaa59e25d0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryTypeIdExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTUnaryTypeIdExpression.java @@ -16,7 +16,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -26,9 +25,9 @@ public class ASTUnaryTypeIdExpression extends ASTUnaryExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { - super.freeReferences(manager); - typeId.freeReferences(manager); + public void freeReferences() { + super.freeReferences(); + typeId.freeReferences(); } private final IASTTypeId typeId; @@ -53,9 +52,9 @@ public class ASTUnaryTypeIdExpression extends ASTUnaryExpression { /* (non-Javadoc) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() */ - protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { - super.processCallbacks(requestor, manager); - typeId.acceptElement( requestor, manager ); + protected void processCallbacks( ISourceElementRequestor requestor ) { + super.processCallbacks(requestor ); + typeId.acceptElement( requestor ); } public String toString(){ 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 195ee4c46a2..645ca51cde1 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 @@ -17,7 +17,7 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.SymbolIterator; /** @@ -81,7 +81,7 @@ public class ASTUsingDeclaration extends ASTNode implements IASTUsingDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -91,19 +91,19 @@ public class ASTUsingDeclaration extends ASTNode implements IASTUsingDeclaration { /* do nothing */ } - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor 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 4891349baaa..c8eef34f6a1 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 @@ -15,7 +15,7 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IUsingDirectiveSymbol; @@ -72,7 +72,7 @@ public class ASTUsingDirective extends ASTAnonymousDeclaration implements IASTUs /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -82,19 +82,19 @@ public class ASTUsingDirective extends ASTAnonymousDeclaration implements IASTUs { /* do nothing */ } - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 f021d728da3..7bf8a6840b7 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 @@ -18,7 +18,7 @@ import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; +import org.eclipse.cdt.internal.core.parser.Parser; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; @@ -157,7 +157,7 @@ public class ASTVariable extends ASTSymbol implements IASTVariable /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -167,26 +167,26 @@ public class ASTVariable extends ASTSymbol implements IASTVariable { /* do nothing */ } - manager.processReferences(references, requestor); + Parser.processReferences(references, requestor); references = null; if( initializerClause != null ) - initializerClause.acceptElement(requestor, manager); + initializerClause.acceptElement(requestor); if( constructorExpression != null ) - constructorExpression.acceptElement(requestor, manager); + constructorExpression.acceptElement(requestor); if( getAbstractDeclaration() != null ) - getAbstractDeclaration().acceptElement(requestor, manager); + getAbstractDeclaration().acceptElement(requestor); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) 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 new file mode 100644 index 00000000000..e52eefd53e4 --- /dev/null +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTVariableReference.java @@ -0,0 +1,75 @@ +/********************************************************************** + * Copyright (c) 2002-2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.internal.core.parser.ast.complete; + +import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; +import org.eclipse.cdt.core.parser.ISourceElementRequestor; +import org.eclipse.cdt.core.parser.ast.IASTReference; +import org.eclipse.cdt.core.parser.ast.IASTVariable; +import org.eclipse.cdt.core.parser.ast.IASTVariableReference; + + +public class ASTVariableReference extends ASTReference + implements + IASTReference, + IASTVariableReference { + + private IASTVariable referencedElement; + /** + * @param offset + * @param variable + */ + public ASTVariableReference(int offset, IASTVariable variable) { + super(offset); + referencedElement = variable; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int) + */ + public void initialize(int o, ISourceElementCallbackDelegate var ) { + super.initialize(o); + referencedElement = (IASTVariable) var; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() + */ + public void reset() { + super.resetOffset(); + referencedElement = null; + } + /** + * + */ + public ASTVariableReference() { + super(0); + referencedElement = null; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() + */ + public ISourceElementCallbackDelegate getReferencedElement() { + return referencedElement; + } + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) + */ + public void acceptElement(ISourceElementRequestor requestor) { + try { + requestor.acceptVariableReference(this); + } catch (Exception e) { + /* do nothing */ + } + } +} 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 297da6a7b8d..c191d04747f 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 @@ -19,7 +19,6 @@ import java.util.Map; import org.eclipse.cdt.core.parser.Enum; import org.eclipse.cdt.core.parser.IProblem; -import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; import org.eclipse.cdt.core.parser.IToken; import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ParserLanguage; @@ -66,7 +65,6 @@ import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; @@ -118,7 +116,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto private final static ITypeInfo.OperatorExpression SUBSCRIPT; private final static IProblemFactory problemFactory = new ASTProblemFactory(); private final ParserMode mode; - private final ReferenceCache cache = new ReferenceCache(); + private static final int BUILTIN_TYPE_SIZE = 64; private final Hashtable typeIdCache = new Hashtable( BUILTIN_TYPE_SIZE ); private final Hashtable simpleTypeSpecCache = new Hashtable( BUILTIN_TYPE_SIZE ); @@ -159,10 +157,8 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto if( reference == null ) return; if( references == null ) - { - cache.returnReference( reference ); return; - } + int size = references.size(); for( int i = 0; i < size; i++ ){ IASTReference ref = (IASTReference)references.get(i); @@ -170,7 +166,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto if( (CharArrayUtils.equals( ref.getNameCharArray(), reference.getNameCharArray())) && (ref.getOffset() == reference.getOffset()) ){ - cache.returnReference( ref ); references.remove(i--); size--; break; @@ -195,7 +190,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto int numRefs = refs.size(); for( int j = 0; j < numRefs; j++ ){ IASTReference r = (IASTReference) refs.get(j); - addReference( references, cache.getReference(r.getOffset(), r.getReferencedElement())); + addReference( references, r ); } } } @@ -343,7 +338,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto if( args != null && references != null ) { addTemplateIdReferences( references, templateArgLists[0] ); - name.freeReferences( cache ); + name.freeReferences( ); } } else @@ -417,7 +412,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto if( references != null && templateArgLists != null && templateArgLists[idx] != null ) { addTemplateIdReferences( references, templateArgLists[idx] ); - name.freeReferences(cache); + name.freeReferences(); } } else @@ -785,7 +780,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto { for( int i = 0; i < name.getTemplateIdArgLists().length; ++i ) addTemplateIdReferences( references, name.getTemplateIdArgLists()[i]); - name.freeReferences( cache ); + name.freeReferences( ); } ASTClassSpecifier classSpecifier = new ASTClassSpecifier( newSymbol, kind, type, access, startingOffset, startingLine, nameOffset, nameEndOffset, nameLine, references, filename ); attachSymbolExtension(newSymbol, classSpecifier, true ); @@ -907,7 +902,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto for( int i = 0; i < templateArgumentLists.length; ++i ) addTemplateIdReferences( references, templateArgumentLists[i]); } - parentClassName.freeReferences(cache); + parentClassName.freeReferences(); classSymbol.addParent( symbol, isVirtual, visibility, parentClassName.getFirstToken().getOffset(), references ); } @@ -933,24 +928,24 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto // assert (symbol != null ) : "createReference cannot be called on null symbol "; if( symbol.getTypeInfo().checkBit( ITypeInfo.isTypedef ) || symbol.getASTExtension().getPrimaryDeclaration() instanceof IASTTypedefDeclaration ) - return cache.getReference( offset, declaration); + return new ASTTypedefReference ( offset, (IASTTypedefDeclaration) declaration ); else if( symbol.getType() == ITypeInfo.t_namespace ) - return cache.getReference( offset, declaration); + return new ASTNamespaceReference( offset, (IASTNamespaceDefinition) declaration); else if( symbol.getType() == ITypeInfo.t_class || symbol.getType() == ITypeInfo.t_struct || symbol.getType() == ITypeInfo.t_union ) - return cache.getReference( offset, (ISourceElementCallbackDelegate)symbol.getASTExtension().getPrimaryDeclaration() ); + return new ASTClassReference( offset, (IASTTypeSpecifier)symbol.getASTExtension().getPrimaryDeclaration() ); else if( symbol.getType() == ITypeInfo.t_enumeration ) - return cache.getReference( offset, (IASTEnumerationSpecifier)symbol.getASTExtension().getPrimaryDeclaration() ); + return new ASTEnumerationReference( offset, (IASTEnumerationSpecifier)symbol.getASTExtension().getPrimaryDeclaration() ); else if( symbol.getType() == ITypeInfo.t_enumerator ) - return cache.getReference( offset, declaration ); + return new ASTEnumeratorReference( offset, (IASTEnumerator) declaration ); else if(( symbol.getType() == ITypeInfo.t_function ) || (symbol.getType() == ITypeInfo.t_constructor)) { ASTNode referenced = (definition != null) ? definition : declaration; if( referenced instanceof IASTMethod ) - return cache.getReference( offset, (IASTMethod)referenced ); - return cache.getReference( offset, (IASTFunction)referenced ); + return new ASTMethodReference( offset, (IASTMethod)referenced ); + return new ASTFunctionReference( offset, (IASTFunction)referenced ); } else if( ( symbol.getType() == ITypeInfo.t_type ) || ( symbol.getType() == ITypeInfo.t_bool )|| @@ -968,7 +963,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto symbol.getContainingSymbol().getType() == ITypeInfo.t_struct || symbol.getContainingSymbol().getType() == ITypeInfo.t_union ) { - return cache.getReference( offset, (definition != null ? definition : declaration )); + return new ASTFieldReference( offset, (IASTField) (definition != null ? definition : declaration )); } else if( ( symbol.getContainingSymbol().getType() == ITypeInfo.t_function || symbol.getContainingSymbol().getType() == ITypeInfo.t_constructor ) && @@ -976,17 +971,17 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto ((IParameterizedSymbol)symbol.getContainingSymbol()).getParameterList() != null && ((IParameterizedSymbol)symbol.getContainingSymbol()).getParameterList().contains( symbol ) ) { - return cache.getReference( offset, declaration ); + return new ASTParameterReference( offset, (IASTParameterDeclaration) declaration ); } else { ASTNode s = (definition != null) ? definition : declaration; if(s instanceof IASTVariable) - return cache.getReference( offset, (IASTVariable)s); + return new ASTVariableReference( offset, (IASTVariable)s); else if (s instanceof IASTParameterDeclaration) - return cache.getReference( offset, (IASTParameterDeclaration)s); + return new ASTParameterReference( offset, (IASTParameterDeclaration)s); else if (s instanceof IASTTemplateParameter ) - return cache.getReference( offset, (IASTTemplateParameter)s ); + return new ASTTemplateParameterReference( offset, (IASTTemplateParameter)s ); } } // assert false : "Unreachable code : createReference()"; @@ -1147,11 +1142,10 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto int size = refs.size(); for( int i = 0; i < size; i++ ) { - ReferenceCache.ASTReference ref = (ReferenceCache.ASTReference) refs.get(i); + ASTReference ref = (ASTReference) refs.get(i); if( CharArrayUtils.equals( ref.getNameCharArray(), duple.toCharArray() ) && ref.getOffset() == duple.getStartOffset() ) { - cache.returnReference( ref ); refs.remove( i-- ); size--; } @@ -1219,7 +1213,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto { refs.remove(i--); size--; - cache.returnReference(r); } } } @@ -1864,7 +1857,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto for( int i = 0; i < eRefs.size(); ++i ) { IASTReference r = (IASTReference)eRefs.get(i); - references.add( cache.getReference( r.getOffset(), r.getReferencedElement() )); + references.add( r ); } } if( expression.getLHSExpression() != null ) @@ -2035,7 +2028,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto if( argLists != null && argLists[idx] != null ) { addTemplateIdReferences( references, argLists[idx] ); - typeName.freeReferences(cache); + typeName.freeReferences(); } } else @@ -2319,7 +2312,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto for( int i = 0; i < elabReferences.size(); ++i ) { IASTReference r = (IASTReference)elabReferences.get(i); - newReferences.add( cache.getReference(r.getOffset(), r.getReferencedElement())); + newReferences.add( r ); } if( xrefSymbol != null ) addReference( newReferences, createReference( xrefSymbol, elab.getNameCharArray(), elab.getNameOffset()) ); @@ -2852,7 +2845,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto for( int i = 0; i < absRefs.size(); ++i ) { IASTReference r = (IASTReference) absRefs.get(i); - references.add( cache.getReference( r.getOffset(), r.getReferencedElement() )); + references.add( r ); } } } @@ -3147,7 +3140,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto for( int i = 0; i < mappingReferences.size(); ++i ) { IASTReference r = (IASTReference) mappingReferences.get(i); - references.add( cache.getReference(r.getOffset(), r.getReferencedElement())); + references.add( r ); } } } @@ -3506,7 +3499,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto handleProblem( scope, IProblem.SEMANTIC_INVALID_TYPE, typeId.getTypeOrClassNameCharArray() ); } result.setTypeSymbol( typeSymbol ); - typeId.addReferences( refs, cache ); + typeId.addReferences( refs ); } setPointerOperators( result, ((ASTTypeId)id).getPointerOperatorsList(), ((ASTTypeId)id).getArrayModifiersList() ); @@ -3518,8 +3511,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto */ private void freeReferences(List refs) { if( refs == null || refs.isEmpty() ) return; - for( int i =0; i < refs.size(); ++i) - cache.returnReference((IASTReference) refs.get(i)); refs.clear(); } @@ -3558,7 +3549,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto astImplementation.setProcessingUnresolvedReferences( false ); if( ! references.isEmpty() ) - astImplementation.setExtraReferences( references, cache ); + astImplementation.setExtraReferences( references ); } @@ -3759,18 +3750,12 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto //ignore } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTFactory#getReferenceManager() - */ - public IReferenceManager getReferenceManager() { - return cache; - } /** * @return */ public boolean validateCaches() { - return cache.isBalanced() && (pst.getTypeInfoProvider().numAllocated() == 0); + return (pst.getTypeInfoProvider().numAllocated() == 0); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ReferenceCache.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ReferenceCache.java deleted file mode 100644 index 8f9ba7b357b..00000000000 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ReferenceCache.java +++ /dev/null @@ -1,1379 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002-2004 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation - ***********************************************************************/ -package org.eclipse.cdt.internal.core.parser.ast.complete; - -import java.util.List; - -import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate; -import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.ast.IASTClassReference; -import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTEnumerationReference; -import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTEnumerator; -import org.eclipse.cdt.core.parser.ast.IASTEnumeratorReference; -import org.eclipse.cdt.core.parser.ast.IASTField; -import org.eclipse.cdt.core.parser.ast.IASTFieldReference; -import org.eclipse.cdt.core.parser.ast.IASTFunction; -import org.eclipse.cdt.core.parser.ast.IASTFunctionReference; -import org.eclipse.cdt.core.parser.ast.IASTMethod; -import org.eclipse.cdt.core.parser.ast.IASTMethodReference; -import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; -import org.eclipse.cdt.core.parser.ast.IASTNamespaceReference; -import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; -import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; -import org.eclipse.cdt.core.parser.ast.IASTParameterReference; -import org.eclipse.cdt.core.parser.ast.IASTReference; -import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; -import org.eclipse.cdt.core.parser.ast.IASTTemplateParameterReference; -import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; -import org.eclipse.cdt.core.parser.ast.IASTTypedefReference; -import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IASTVariableReference; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; -import org.eclipse.cdt.core.parser.util.CharArrayUtils; - -/** - * @author jcamelon - * - */ -public class ReferenceCache implements IReferenceManager { - - /** - * @author jcamelon - * - */ - private interface IReferenceFactory { - ASTReference createReference(); - ASTReference [] createReferenceArray( int size ); - } - - private static final int DEFAULT_CACHE_SIZE = 64; - - private boolean[] classReferencesAvailable; - private ASTReference[] classReferences; - private boolean[] variableReferencesAvailable; - private ASTReference[] variableReferences; - private boolean[] fieldReferencesAvailable; - private ASTReference[] fieldReferences; - private boolean[] functionReferencesAvailable; - private ASTReference[] functionReferences; - private boolean[] methodReferencesAvailable; - private ASTReference[] methodReferences; - private boolean[] enumerationReferencesAvailable; - private ASTReference[] enumerationReferences; - private boolean[] enumeratorReferencesAvailable; - private ASTReference[] enumeratorReferences; - private boolean[] namespaceReferencesAvailable; - private ASTReference[] namespaceReferences; - private boolean[] typedefReferencesAvailable; - private ASTReference[] typedefReferences; - private boolean[] parameterReferencesAvailable; - private ASTReference[] parameterReferences; - private boolean[] templateParameterReferencesAvailable; - private ASTReference[] templateParameterReferences; - - - - private abstract static class BaseReferenceFactory implements IReferenceFactory - { - public ASTReference[] createReferenceArray(int size) { - return new ASTReference[ size ]; - } - } - - private static final IReferenceFactory TYPEDEFREF_FACTORY = - new BaseReferenceFactory() { - public ASTReference createReference() { return new ASTTypedefReference(); } - }; - - private static final IReferenceFactory NAMESPACEREF_FACTORY = - new BaseReferenceFactory() { - public ASTReference createReference() { return new ASTNamespaceReference(); } - }; - - private static final IReferenceFactory PARMREF_FACTORY = - new BaseReferenceFactory() { - public ASTReference createReference() { return new ASTParameterReference(); } - }; - - private static final IReferenceFactory TEMPPARMREF_FACTORY = - new BaseReferenceFactory() { - public ASTReference createReference() { return new ASTTemplateParameterReference(); } - }; - - - - private static final IReferenceFactory CLASSREF_FACTORY = - new BaseReferenceFactory() { - public ASTReference createReference() { return new ASTClassReference(); } - - - }; - - private static final IReferenceFactory FUNCTIONREF_FACTORY = - new BaseReferenceFactory() { - - public ASTReference createReference() { - return new ASTFunctionReference(); - } - - }; - - private static final IReferenceFactory METHODREF_FACTORY = - new BaseReferenceFactory() { - - public ASTReference createReference() { - return new ASTMethodReference(); - } - - }; - - private static final IReferenceFactory VARIABLEREF_FACTORY = - new BaseReferenceFactory() { - - public ASTReference createReference() { - return new ASTVariableReference(); - } - - }; - - private static final IReferenceFactory FIELDREF_FACTORY = new BaseReferenceFactory() - { - public ASTReference createReference() - { - return new ASTFieldReference(); - } - }; - - private static final IReferenceFactory ENUMSPECREF_FACTORY = new BaseReferenceFactory() - { - public ASTReference createReference() - { - return new ASTEnumerationReference(); - } - }; - - private static final IReferenceFactory ENUMERATORREF_FACTORY = new BaseReferenceFactory() - { - public ASTReference createReference() - { - return new ASTEnumeratorReference(); - } - }; - - - { - classReferences = CLASSREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - variableReferences = VARIABLEREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - fieldReferences = FIELDREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - functionReferences = FUNCTIONREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - methodReferences = METHODREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - enumerationReferences = ENUMSPECREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - enumeratorReferences = ENUMERATORREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - namespaceReferences = NAMESPACEREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - typedefReferences = TYPEDEFREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - parameterReferences = PARMREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - templateParameterReferences = TEMPPARMREF_FACTORY.createReferenceArray(DEFAULT_CACHE_SIZE); - classReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - variableReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - fieldReferencesAvailable = new boolean[ DEFAULT_CACHE_SIZE ]; - functionReferencesAvailable = new boolean[ DEFAULT_CACHE_SIZE ]; - methodReferencesAvailable = new boolean[ DEFAULT_CACHE_SIZE ]; - enumerationReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - enumeratorReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - templateParameterReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - namespaceReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - typedefReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - parameterReferencesAvailable = new boolean[DEFAULT_CACHE_SIZE]; - for (int i = 0; i < DEFAULT_CACHE_SIZE; ++i) { - classReferencesAvailable[i] = true; - variableReferencesAvailable[i] = true; - fieldReferencesAvailable[i] = true; - functionReferencesAvailable[i] = true; - methodReferencesAvailable[i] = true; - enumerationReferencesAvailable[i] = true; - enumeratorReferencesAvailable[i] = true; - namespaceReferencesAvailable[i] = true; - typedefReferencesAvailable[i] = true; - parameterReferencesAvailable[i] = true; - templateParameterReferencesAvailable[i] = true; - methodReferences[i] = METHODREF_FACTORY.createReference(); - classReferences[i] = CLASSREF_FACTORY.createReference(); - variableReferences[i] = VARIABLEREF_FACTORY.createReference(); - fieldReferences[i] = FIELDREF_FACTORY.createReference(); - functionReferences[i] = FUNCTIONREF_FACTORY.createReference(); - enumerationReferences[i] = ENUMSPECREF_FACTORY.createReference(); - enumeratorReferences[i] = ENUMERATORREF_FACTORY.createReference(); - typedefReferences[i] = TYPEDEFREF_FACTORY.createReference(); - namespaceReferences[i] = NAMESPACEREF_FACTORY.createReference(); - parameterReferences[i] = PARMREF_FACTORY.createReference(); - templateParameterReferences[i] = TEMPPARMREF_FACTORY.createReference(); - } - } - - public void returnReference(IASTReference reference) { - if (reference instanceof IASTClassReference) - { - returnReference(classReferencesAvailable, classReferences, - reference); - return; - } - if( reference instanceof IASTVariableReference ) - { - returnReference( variableReferencesAvailable, variableReferences, reference ); - return; - } - if( reference instanceof IASTFieldReference ) - { - returnReference( fieldReferencesAvailable, fieldReferences, reference ); - return; - } - if( reference instanceof IASTFunctionReference ) - { - returnReference( functionReferencesAvailable, functionReferences, reference ); - return; - } - if( reference instanceof IASTMethodReference ) - { - returnReference( methodReferencesAvailable, methodReferences, reference ); - return; - } - if( reference instanceof IASTEnumerationReference ) - { - returnReference( enumerationReferencesAvailable, enumerationReferences, reference ); - return; - } - if( reference instanceof IASTEnumeratorReference ) - { - returnReference( enumeratorReferencesAvailable, enumeratorReferences, reference ); - return; - } - if( reference instanceof IASTNamespaceReference ) - { - returnReference( namespaceReferencesAvailable, namespaceReferences, reference ); - return; - } - if( reference instanceof IASTTypedefReference ) - { - returnReference( typedefReferencesAvailable, typedefReferences, reference ); - return; - } - if( reference instanceof IASTParameterReference ) - { - returnReference( parameterReferencesAvailable, parameterReferences, reference ); - return; - } - if( reference instanceof IASTTemplateParameterReference) - { - returnReference( templateParameterReferencesAvailable, templateParameterReferences, reference ); - } - } - - /** - * @param referencesAvailable - * @param references - * @param reference - */ - private void returnReference(boolean[] referencesAvailable, - ASTReference[] references, IASTReference reference) { - for (int i = 0; i < referencesAvailable.length; ++i) - if (references[i] == reference) { - referencesAvailable[i] = true; - references[i].reset(); - break; - } - - } - - public IASTReference getReference(int offset, - ISourceElementCallbackDelegate referencedElement) { - if (referencedElement instanceof IASTTypedefDeclaration) - return getTypedefReference(offset, - (IASTTypedefDeclaration) referencedElement); - if (referencedElement instanceof IASTEnumerationSpecifier) - return getEnumerationReference(offset, - (IASTEnumerationSpecifier) referencedElement); - if (referencedElement instanceof IASTTemplateParameter) - return getTemplateParameterReference(offset, - (IASTTemplateParameter) referencedElement); - if (referencedElement instanceof IASTParameterDeclaration) - return getParameterReference(offset, - (IASTParameterDeclaration) referencedElement); - if (referencedElement instanceof IASTTypeSpecifier) - return getClassReference(offset, referencedElement); - if (referencedElement instanceof IASTNamespaceDefinition) - return getNamespaceReference(offset, - (IASTNamespaceDefinition) referencedElement); - if (referencedElement instanceof IASTMethod) - return getMethodReference(offset, (IASTMethod) referencedElement); - if (referencedElement instanceof IASTFunction) - return getFunctionReference(offset, - (IASTFunction) referencedElement); - if (referencedElement instanceof IASTField) - return getFieldReference(offset, (IASTField) referencedElement); - if (referencedElement instanceof IASTVariable) - return getVariableReference(offset, - (IASTVariable) referencedElement); - if (referencedElement instanceof IASTEnumerator) - return getEnumeratorReference(offset, - (IASTEnumerator) referencedElement); - return null; - } - - private IASTReference getClassReference(int offset, - ISourceElementCallbackDelegate referencedElement) { - for (int i = 0; i < classReferencesAvailable.length; ++i) { - if (classReferencesAvailable[i]) { - classReferencesAvailable[i] = false; - classReferences[i].initialize(offset, referencedElement); - return classReferences[i]; - } - } - int currentSize = classReferences.length; - GrowResult g = growArrays(classReferences, classReferencesAvailable, CLASSREF_FACTORY ); - classReferences = g.getReferences(); - classReferencesAvailable = g.getAvailables(); - classReferencesAvailable[currentSize] = false; - classReferences[currentSize].initialize(offset, referencedElement); - return classReferences[currentSize]; - } - - protected static class GrowResult - { - private boolean[] b; - private ASTReference[] r; - - public void initialize( boolean [] bools, ASTReference [] refs ) - { - this.b = bools; - this.r = refs; - } - /** - * @return Returns the b. - */ - public boolean[] getAvailables() { - return b; - } - /** - * @return Returns the r. - */ - public ASTReference[] getReferences() { - return r; - } - } - - protected static final GrowResult growResult = new GrowResult(); - - /** - * @param inReferences, boolean [] inReferencesAvailable, IReferenceFactory factory - * @return - */ - protected static GrowResult growArrays(ASTReference[] inReferences, boolean [] inReferencesAvailable, IReferenceFactory factory ) { - int currentSize = inReferences.length; - boolean[] availables = new boolean[currentSize * 2]; - System.arraycopy(inReferencesAvailable, 0, availables, 0, currentSize); - ASTReference[] refs = factory.createReferenceArray(currentSize * 2); - System.arraycopy(inReferences, 0, refs, 0, currentSize); - for (int i = currentSize; i < availables.length; ++i) { - refs[i] = factory.createReference(); - availables[i] = true; - } - growResult.initialize( availables, refs ); - return growResult; - } - - /** - * @param offset - * @param declaration - * @return - */ - private IASTReference getTypedefReference(int offset, - IASTTypedefDeclaration referencedElement) { - for (int i = 0; i < typedefReferencesAvailable.length; ++i) { - if (typedefReferencesAvailable[i]) { - typedefReferencesAvailable[i] = false; - typedefReferences[i].initialize(offset, referencedElement); - return typedefReferences[i]; - } - } - int currentSize = typedefReferences.length; - GrowResult g = growArrays( typedefReferences, typedefReferencesAvailable, TYPEDEFREF_FACTORY); - typedefReferencesAvailable = g.getAvailables(); - typedefReferences = g.getReferences(); - typedefReferencesAvailable[currentSize] = false; - typedefReferences[currentSize].initialize(offset, referencedElement); - return typedefReferences[currentSize]; - } - - /** - * @param offset - * @param variable - * @return - */ - private IASTReference getVariableReference(int offset, IASTVariable referencedElement) { - for (int i = 0; i < variableReferencesAvailable.length; ++i) { - if (variableReferencesAvailable[i]) { - variableReferencesAvailable[i] = false; - variableReferences[i].initialize(offset, referencedElement); - return variableReferences[i]; - } - } - int currentSize = variableReferences.length; - GrowResult g = growArrays( variableReferences, variableReferencesAvailable, VARIABLEREF_FACTORY ); - variableReferencesAvailable = g.getAvailables(); - variableReferences = g.getReferences(); - variableReferencesAvailable[currentSize] = false; - variableReferences[currentSize].initialize(offset, referencedElement); - return variableReferences[currentSize]; - } - - /** - * @param offset - * @param declaration - * @return - */ - private IASTReference getParameterReference(int offset, - IASTParameterDeclaration referencedElement) { - for (int i = 0; i < parameterReferencesAvailable.length; ++i) { - if (parameterReferencesAvailable[i]) { - parameterReferencesAvailable[i] = false; - parameterReferences[i].initialize(offset, referencedElement); - return parameterReferences[i]; - } - } - int currentSize = parameterReferences.length; - GrowResult g = growArrays( parameterReferences, parameterReferencesAvailable, PARMREF_FACTORY); - parameterReferencesAvailable = g.getAvailables(); - parameterReferences = g.getReferences(); - parameterReferencesAvailable[currentSize] = false; - parameterReferences[currentSize].initialize(offset, referencedElement); - return parameterReferences[currentSize]; - } - - /** - * @param offset - * @param parameter - * @return - */ - private IASTReference getTemplateParameterReference(int offset, - IASTTemplateParameter referencedElement) { - for (int i = 0; i < templateParameterReferencesAvailable.length; ++i) { - if (templateParameterReferencesAvailable[i]) { - templateParameterReferencesAvailable[i] = false; - templateParameterReferences[i].initialize(offset, referencedElement); - return templateParameterReferences[i]; - } - } - int currentSize = templateParameterReferences.length; - GrowResult g = growArrays( templateParameterReferences, templateParameterReferencesAvailable, TEMPPARMREF_FACTORY); - templateParameterReferencesAvailable = g.getAvailables(); - templateParameterReferences = g.getReferences(); - templateParameterReferencesAvailable[currentSize] = false; - templateParameterReferences[currentSize].initialize(offset, referencedElement); - return templateParameterReferences[currentSize]; - } - - /** - * @param offset - * @param definition - * @return - */ - private IASTReference getNamespaceReference(int offset, - IASTNamespaceDefinition referencedElement) { - for (int i = 0; i < namespaceReferencesAvailable.length; ++i) { - if (namespaceReferencesAvailable[i]) { - namespaceReferencesAvailable[i] = false; - namespaceReferences[i].initialize(offset, referencedElement); - return namespaceReferences[i]; - } - } - int currentSize = namespaceReferences.length; - GrowResult g = growArrays( namespaceReferences, namespaceReferencesAvailable, NAMESPACEREF_FACTORY); - namespaceReferencesAvailable = g.getAvailables(); - namespaceReferences = g.getReferences(); - namespaceReferencesAvailable[currentSize] = false; - namespaceReferences[currentSize].initialize(offset, referencedElement); - return namespaceReferences[currentSize]; - } - - /** - * @param offset - * @param specifier - * @return - */ - private IASTReference getEnumerationReference(int offset, - IASTEnumerationSpecifier referencedElement) { - for (int i = 0; i < enumerationReferencesAvailable.length; ++i) { - if (enumerationReferencesAvailable[i]) { - enumerationReferencesAvailable[i] = false; - enumerationReferences[i].initialize(offset, referencedElement); - return enumerationReferences[i]; - } - } - int currentSize = enumerationReferences.length; - GrowResult g = growArrays( enumerationReferences, enumerationReferencesAvailable, ENUMSPECREF_FACTORY ); - enumerationReferencesAvailable = g.getAvailables(); - enumerationReferences = g.getReferences(); - enumerationReferencesAvailable[currentSize] = false; - enumerationReferences[currentSize].initialize(offset, referencedElement); - return enumerationReferences[currentSize]; - } - - /** - * @param offset - * @param enumerator - * @return - */ - private IASTReference getEnumeratorReference(int offset, - IASTEnumerator referencedElement ) { - for (int i = 0; i < enumeratorReferencesAvailable.length; ++i) { - if (enumeratorReferencesAvailable[i]) { - enumeratorReferencesAvailable[i] = false; - enumeratorReferences[i].initialize(offset, referencedElement); - return enumeratorReferences[i]; - } - } - int currentSize = enumeratorReferences.length; - GrowResult g = growArrays( enumeratorReferences, enumeratorReferencesAvailable, ENUMERATORREF_FACTORY ); - enumeratorReferencesAvailable = g.getAvailables(); - enumeratorReferences = g.getReferences(); - enumeratorReferencesAvailable[currentSize] = false; - enumeratorReferences[currentSize].initialize(offset, referencedElement); - return enumeratorReferences[currentSize]; - } - - /** - * @param offset - * @param method - * @return - */ - private IASTReference getMethodReference(int offset, IASTMethod referencedElement ) { - for (int i = 0; i < methodReferencesAvailable.length; ++i) { - if (methodReferencesAvailable[i]) { - methodReferencesAvailable[i] = false; - methodReferences[i].initialize(offset, referencedElement); - return methodReferences[i]; - } - } - int currentSize = methodReferences.length; - GrowResult g = growArrays( methodReferences, methodReferencesAvailable, METHODREF_FACTORY ); - methodReferencesAvailable = g.getAvailables(); - methodReferences = g.getReferences(); - methodReferencesAvailable[currentSize] = false; - methodReferences[currentSize].initialize(offset, referencedElement); - return methodReferences[currentSize]; - } - - /** - * @param offset - * @param function - * @return - */ - private IASTReference getFunctionReference(int offset, IASTFunction referencedElement ) { - for (int i = 0; i < functionReferencesAvailable.length; ++i) { - if (functionReferencesAvailable[i]) { - functionReferencesAvailable[i] = false; - functionReferences[i].initialize(offset, referencedElement); - return functionReferences[i]; - } - } - int currentSize = functionReferences.length; - GrowResult g = growArrays( functionReferences, functionReferencesAvailable, FUNCTIONREF_FACTORY ); - functionReferencesAvailable = g.getAvailables(); - functionReferences = g.getReferences(); - functionReferencesAvailable[currentSize] = false; - functionReferences[currentSize].initialize(offset, referencedElement); - return functionReferences[currentSize]; - } - - /** - * @param offset - * @param field - * @return - */ - private IASTReference getFieldReference(int offset, IASTField referencedElement) { - for (int i = 0; i < fieldReferencesAvailable.length; ++i) { - if (fieldReferencesAvailable[i]) { - fieldReferencesAvailable[i] = false; - fieldReferences[i].initialize(offset, referencedElement); - return fieldReferences[i]; - } - } - int currentSize = fieldReferences.length; - GrowResult g = growArrays( fieldReferences, fieldReferencesAvailable, FIELDREF_FACTORY ); - fieldReferencesAvailable = g.getAvailables(); - fieldReferences = g.getReferences(); - fieldReferencesAvailable[currentSize] = false; - fieldReferences[currentSize].initialize(offset, referencedElement); - return fieldReferences[currentSize]; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTReferenceStore#processReferences() - */ - public void processReferences(List references, ISourceElementRequestor requestor) - { - if( references == null || references.isEmpty() ) - return; - - for( int i = 0; i < references.size(); ++i ) - { - IASTReference reference = ((IASTReference)references.get(i)); - reference.acceptElement(requestor, this ); - returnReference( reference ); - } - - references.clear(); - } - - public abstract static class ASTReference implements IASTReference { - protected int offset; - private static final String EMPTY_STRING = ""; //$NON-NLS-1$ - private static final char[] EMPTY_CHAR_ARRAY = "".toCharArray(); //$NON-NLS-1$ - - public abstract void reset(); - - protected void resetOffset() { - offset = 0; - } - - /** - * @param offset2 - * @param re - */ - public abstract void initialize(int o, ISourceElementCallbackDelegate re ); - - - protected void initialize(int o) { - this.offset = o; - } - - /** - * - */ - public ASTReference(int offset) { - this.offset = offset; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getOffset() - */ - public int getOffset() { - return offset; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getName() - */ - public String getName() { - if (getReferencedElement() instanceof IASTOffsetableNamedElement) - return ((IASTOffsetableNamedElement) getReferencedElement()) - .getName(); - return EMPTY_STRING; - } - public char[] getNameCharArray() { - if (getReferencedElement() instanceof IASTOffsetableNamedElement) - return ((IASTOffsetableNamedElement) getReferencedElement()) - .getNameCharArray(); - return EMPTY_CHAR_ARRAY; - } - public boolean equals(Object obj) { - if (obj == null) - return false; - if (!(obj instanceof IASTReference)) - return false; - - if ( CharArrayUtils.equals( ((IASTReference) obj).getNameCharArray(), getNameCharArray() ) - && ((IASTReference) obj).getOffset() == getOffset()) - return true; - return false; - } - - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) { - } - - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) { - } - } - public static class ASTClassReference extends ASTReference - implements - IASTClassReference { - private IASTTypeSpecifier reference; - /** - * @param i - * @param specifier - */ - public ASTClassReference(int i, IASTTypeSpecifier specifier) { - super(i); - reference = specifier; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTReference#initialize(int) - */ - public void initialize(int o, ISourceElementCallbackDelegate specifier) { - super.initialize(o); - reference = (IASTTypeSpecifier) specifier; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTReference#reset() - */ - public void reset() { - super.resetOffset(); - reference = null; - } - /** - * - */ - public ASTClassReference() { - super(0); - reference = null; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return (ISourceElementCallbackDelegate) reference; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptClassReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTClassReference#isResolved() - */ - public boolean isResolved() { - return (reference instanceof IASTClassSpecifier); - } - } - - public static class ASTEnumerationReference extends ASTReference - implements - IASTEnumerationReference { - private IASTEnumerationSpecifier referencedElement; - /** - * @param offset - * @param specifier - */ - public ASTEnumerationReference(int offset, - IASTEnumerationSpecifier specifier) { - super(offset); - referencedElement = specifier; - } - - /** - * - */ - public ASTEnumerationReference() { - super( 0 ); - referencedElement = null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return referencedElement; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptEnumerationReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate re) { - initialize(o); - this.referencedElement = (IASTEnumerationSpecifier) re; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - super.resetOffset(); - this.referencedElement = null; - } - } - - public static class ASTEnumeratorReference extends ASTReference - implements - IASTEnumeratorReference { - - private IASTEnumerator enumerator; - /** - * @param offset - * @param enumerator - */ - public ASTEnumeratorReference(int offset, IASTEnumerator enumerator) { - super(offset); - this.enumerator = enumerator; - } - - /** - * - */ - public ASTEnumeratorReference() { - super( 0 ); - enumerator = null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return enumerator; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptEnumeratorReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - super.initialize(o); - this.enumerator = (IASTEnumerator) referencedElement; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - super.resetOffset(); - this.enumerator = null; - } - } - public static class ASTFieldReference extends ASTReference - implements - IASTReference, - IASTFieldReference { - private IASTField referencedElement; - /** - * @param offset - * @param field - */ - public ASTFieldReference(int offset, IASTField field) { - super(offset); - referencedElement = field; - } - /** - * - */ - public ASTFieldReference() { - super(0); - referencedElement = null; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return referencedElement; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptFieldReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate re) { - initialize(o); - this.referencedElement = (IASTField) re; - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - resetOffset(); - this.referencedElement = null; - } - } - - public static class ASTFunctionReference extends ASTReference - implements - IASTReference, - IASTFunctionReference { - private IASTFunction declaration; - /** - * @param offset - */ - public ASTFunctionReference(int offset, - IASTFunction referencedDeclaration) { - super(offset); - this.declaration = referencedDeclaration; - } - /** - * - */ - public ASTFunctionReference() { - super(0); - declaration = null; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return declaration; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptFunctionReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - super.initialize(o); - this.declaration = (IASTFunction) referencedElement; - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - resetOffset(); - this.declaration = null; - } - } - public static class ASTMethodReference extends ASTReference - implements - IASTMethodReference { - private IASTMethod method; - /** - * @param offset - */ - public ASTMethodReference(int offset, IASTMethod method) { - super(offset); - this.method = method; - } - /** - * - */ - public ASTMethodReference() { - super(0); - this.method = null; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return method; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptMethodReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - super.initialize(o); - this.method = (IASTMethod) referencedElement; - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - resetOffset(); - this.method= null; - } - } - public static class ASTNamespaceReference extends ASTReference - implements - IASTNamespaceReference { - private IASTNamespaceDefinition reference; - - /** - * @param offset - * @param definition - */ - public ASTNamespaceReference(int offset, - IASTNamespaceDefinition definition) { - super(offset); - reference = definition; - } - - /** - * - */ - public ASTNamespaceReference() { - super(0); - reference = null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return reference; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptNamespaceReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - super.initialize(o); - this.reference = (IASTNamespaceDefinition) referencedElement; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - resetOffset(); - this.reference = null; - } - } - - public static class ASTParameterReference extends ASTReference - implements - IASTParameterReference { - private IASTParameterDeclaration parm; - - /** - * @param offset - * @param declaration - */ - public ASTParameterReference(int offset, - IASTParameterDeclaration declaration) { - super(offset); - parm = declaration; - } - - /** - * - */ - public ASTParameterReference() { - super(0); - parm = null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return parm; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptParameterReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - initialize(o); - this.parm = (IASTParameterDeclaration) referencedElement; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - resetOffset(); - this.parm = null; - } - } - public static class ASTTemplateParameterReference extends ASTReference - implements - IASTTemplateParameterReference { - private IASTTemplateParameter parameter; - /** - * @param offset - */ - public ASTTemplateParameterReference(int offset, - IASTTemplateParameter param) { - super(offset); - parameter = param; - } - - /** - * - */ - public ASTTemplateParameterReference() { - super(0); - parameter = null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return parameter; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptTemplateParameterReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - super.initialize(o); - parameter = (IASTTemplateParameter) referencedElement; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - resetOffset(); - this.parameter = null; - } - } - public static class ASTTypedefReference extends ASTReference - implements - IASTTypedefReference { - private IASTTypedefDeclaration referencedItem; - /** - * @param offset - */ - public ASTTypedefReference(int offset, - IASTTypedefDeclaration referencedItem) { - super(offset); - this.referencedItem = referencedItem; - } - /** - * - */ - public ASTTypedefReference() { - super( 0 ); - this.referencedItem = null; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return referencedItem; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptTypedefReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int, org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate) - */ - public void initialize(int o, ISourceElementCallbackDelegate referencedElement) { - super.initialize(o); - referencedItem = (IASTTypedefDeclaration) referencedElement; - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - super.resetOffset(); - referencedItem = null; - } - } - public static class ASTVariableReference extends ASTReference - implements - IASTReference, - IASTVariableReference { - - private IASTVariable referencedElement; - /** - * @param offset - * @param variable - */ - public ASTVariableReference(int offset, IASTVariable variable) { - super(offset); - referencedElement = variable; - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#initialize(int) - */ - public void initialize(int o, ISourceElementCallbackDelegate var ) { - super.initialize(o); - referencedElement = (IASTVariable) var; - } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTReference#reset() - */ - public void reset() { - super.resetOffset(); - referencedElement = null; - } - /** - * - */ - public ASTVariableReference() { - super(0); - referencedElement = null; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ast.IASTReference#getReferencedElement() - */ - public ISourceElementCallbackDelegate getReferencedElement() { - return referencedElement; - } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) - */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { - try { - requestor.acceptVariableReference(this); - } catch (Exception e) { - /* do nothing */ - } - } - } - /** - * @return - */ - public boolean isBalanced() { - return isBalanced( classReferencesAvailable ) && - isBalanced( variableReferencesAvailable ) && - isBalanced( fieldReferencesAvailable ) && - isBalanced( functionReferencesAvailable ) && - isBalanced( methodReferencesAvailable ) && - isBalanced( enumerationReferencesAvailable ) && - isBalanced( enumeratorReferencesAvailable ) && - isBalanced( parameterReferencesAvailable ) && - isBalanced( templateParameterReferencesAvailable ) && - isBalanced( typedefReferencesAvailable); - } - - /** - * @param referencesAvailable - * @return - */ - private boolean isBalanced(boolean[] referencesAvailable ) { - for( int i = 0; i < referencesAvailable.length; ++i ) - { - if( !referencesAvailable[i] ) - return false; - } - return true; - } - -} \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java index bad54af1688..70204b45590 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java @@ -22,7 +22,6 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTNode; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; @@ -178,21 +177,21 @@ public class ASTExpression implements IASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } @@ -210,7 +209,7 @@ public class ASTExpression implements IASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() */ - public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException + public void reconcileReferences() throws ASTNotImplementedException { throw new ASTNotImplementedException(); } @@ -233,7 +232,7 @@ public class ASTExpression implements IASTExpression { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences() */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ExpressionParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ExpressionParseASTFactory.java index 0e155d0c64f..d05e59ec0b8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ExpressionParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ExpressionParseASTFactory.java @@ -59,7 +59,6 @@ import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType; import org.eclipse.cdt.core.parser.ast.IASTDesignator.DesignatorKind; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; @@ -913,11 +912,4 @@ public class ExpressionParseASTFactory extends BaseASTFactory implements IASTFac //ignore } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTFactory#getReferenceManager() - */ - public IReferenceManager getReferenceManager() { - // TODO Auto-generated method stub - return null; - } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/gcc/ASTGCCDesignator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/gcc/ASTGCCDesignator.java index 128f39d1fdb..20be43609c0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/gcc/ASTGCCDesignator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/gcc/ASTGCCDesignator.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.gcc; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTDesignator; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.gcc.IASTGCCDesignator; import org.eclipse.cdt.internal.core.parser.ast.ASTDesignator; @@ -47,10 +46,10 @@ public class ASTGCCDesignator extends ASTDesignator /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { - super.acceptElement( requestor, manager ); + super.acceptElement( requestor ); if( secondExpression != null ) - secondExpression.acceptElement(requestor, manager); + secondExpression.acceptElement(requestor); } } 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 3c6d370d856..fa5eaecde45 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 @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.quick; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -52,7 +51,7 @@ public class ASTASMDefinition /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -67,14 +66,14 @@ public class ASTASMDefinition /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } private int startingLineNumber, startingOffset, endingLineNumber, endingOffset; 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 cc44a49202e..2773fea5266 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 @@ -15,7 +15,6 @@ import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplate; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -72,7 +71,7 @@ public class ASTAbstractTypeSpecifierDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -90,14 +89,14 @@ public class ASTAbstractTypeSpecifierDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java index f57d79435d4..4efe0665d7b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java @@ -16,7 +16,6 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -87,20 +86,20 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { // no references to process } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 f6bd7d74d8a..db485aea76a 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 @@ -19,7 +19,6 @@ import org.eclipse.cdt.core.parser.ast.ASTClassKind; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon * @@ -130,13 +129,13 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -150,7 +149,7 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 b6cb162df90..264c0a451b9 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 @@ -17,7 +17,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -42,13 +41,13 @@ public class ASTCompilationUnit extends ASTNode implements IASTCompilationUnit, /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -63,7 +62,7 @@ public class ASTCompilationUnit extends ASTNode implements IASTCompilationUnit, /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTConstructorMemberInitializer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTConstructorMemberInitializer.java index aac5c828e8f..091e418094d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTConstructorMemberInitializer.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTConstructorMemberInitializer.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.quick; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -54,19 +53,19 @@ public class ASTConstructorMemberInitializer /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } } 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 f020749e82b..096d1faa1da 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 @@ -15,7 +15,6 @@ import org.eclipse.cdt.core.parser.ast.ASTClassKind; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; /** @@ -87,7 +86,7 @@ public class ASTElaboratedTypeSpecifier extends ASTNode implements IASTElaborate /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -101,13 +100,13 @@ public class ASTElaboratedTypeSpecifier extends ASTNode implements IASTElaborate /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 56386e78573..94e2d23b923 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 @@ -19,7 +19,6 @@ import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerator; import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -75,7 +74,7 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -89,20 +88,20 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager referenceManager) { + public void freeReferences() { // do nothing } private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameStartOffset, nameEndOffset, nameLineNumber; 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 0bbe7833d98..e91917bdd95 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 @@ -15,7 +15,6 @@ 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.core.parser.ast.IASTOffsetableNamedElement; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.complete.ASTNode; /** @@ -79,26 +78,26 @@ public class ASTEnumerator extends ASTNode /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTEnumerator#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager referenceManager) { + public void freeReferences() { // do nothing } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExceptionSpecification.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExceptionSpecification.java index 07e3d47dfbf..e0a0c96ed72 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExceptionSpecification.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTExceptionSpecification.java @@ -17,7 +17,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -48,21 +47,21 @@ public class ASTExceptionSpecification implements IASTExceptionSpecification /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor ) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor ) { } } 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 087bccb68a0..7fb4b03fc66 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 @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -63,7 +62,7 @@ public class ASTField extends ASTVariable implements IASTField return visibility; } - public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ) + public void acceptElement( ISourceElementRequestor requestor ) { try { @@ -75,11 +74,11 @@ public class ASTField extends ASTVariable implements IASTField } } - public void enterScope( ISourceElementRequestor requestor, IReferenceManager manager ) + public void enterScope( ISourceElementRequestor requestor ) { } - public void exitScope( ISourceElementRequestor requestor, IReferenceManager manager ) + public void exitScope( 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 1050d97a7d9..1cbad8fc151 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 @@ -22,7 +22,6 @@ import org.eclipse.cdt.core.parser.ast.IASTFunction; import org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplate; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; /** @@ -154,7 +153,7 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -172,7 +171,7 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -187,7 +186,7 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTInitializerClause.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTInitializerClause.java index c71c9caf86d..fba26f73d69 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTInitializerClause.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTInitializerClause.java @@ -18,7 +18,6 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; /** @@ -61,21 +60,21 @@ public class ASTInitializerClause implements IASTInitializerClause { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 a27bf76bd2b..ffb5fc83560 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 @@ -18,7 +18,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -70,14 +69,14 @@ public class ASTLinkageSpecification /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -92,7 +91,7 @@ public class ASTLinkageSpecification /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 69174778c4c..a1a617b78ee 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 @@ -21,7 +21,6 @@ import org.eclipse.cdt.core.parser.ast.IASTMethod; import org.eclipse.cdt.core.parser.ast.IASTQualifiedNameElement; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplate; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; /** @@ -169,7 +168,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod */ - public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ) + public void acceptElement( ISourceElementRequestor requestor ) { try { @@ -184,7 +183,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod } } - public void enterScope( ISourceElementRequestor requestor, IReferenceManager manager ) + public void enterScope( ISourceElementRequestor requestor ) { try { @@ -196,7 +195,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod } } - public void exitScope( ISourceElementRequestor requestor, IReferenceManager manager ) + public void exitScope( ISourceElementRequestor requestor ) { try { 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 f98ecd8f7d3..9de346f6cf4 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 @@ -15,7 +15,6 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTNamespaceAlias; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -57,21 +56,21 @@ public class ASTNamespaceAlias extends ASTDeclaration implements IASTNamespaceAl /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 63df6cc4bdd..60d03f109ba 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 @@ -18,7 +18,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTScope; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; /** @@ -80,13 +79,13 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -100,7 +99,7 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java index 5ec90a68c05..2261c5b1f16 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTNewDescriptor.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.quick; import java.util.Iterator; import org.eclipse.cdt.core.parser.ISourceElementRequestor; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; @@ -47,28 +46,28 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTSimpleTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTSimpleTypeSpecifier.java index 9dfb676a616..3dd1d3f01bc 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTSimpleTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTSimpleTypeSpecifier.java @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -141,7 +140,7 @@ public class ASTSimpleTypeSpecifier extends ASTNode implements IASTSimpleTypeSpe /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier#releaseReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void releaseReferences(IReferenceManager referenceManager) { + public void releaseReferences() { // DO NOTHING } } 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 77ab980fa5b..d2f26ae2bf0 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 @@ -19,7 +19,6 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; /** @@ -85,14 +84,14 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -107,7 +106,7 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { 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 e3bd0b10a6e..bd2a01da1e0 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 @@ -18,7 +18,6 @@ import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -66,14 +65,14 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -89,7 +88,7 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateParameter.java index ec46e054b0f..686937f528f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateParameter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTemplateParameter.java @@ -20,7 +20,6 @@ import org.eclipse.cdt.core.parser.ast.IASTNode; import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -100,18 +99,18 @@ public class ASTTemplateParameter implements IASTTemplateParameter, IASTOffsetab /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) { + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) { + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind[], org.eclipse.cdt.core.parser.ast.IASTNode) 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 ed19a8bcd6e..12d5fc9a306 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 @@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.quick; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -33,14 +32,14 @@ public class ASTTemplateSpecialization extends ASTTemplateDeclaration implements /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { try { @@ -55,7 +54,7 @@ public class ASTTemplateSpecialization extends ASTTemplateDeclaration implements /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypeId.java index 7b333f4cb7c..f891db939d5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypeId.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTTypeId.java @@ -16,7 +16,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTTypeId; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.Type; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; @@ -161,25 +160,25 @@ public class ASTTypeId implements IASTTypeId /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTTypeId#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { // 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 128f3a865a2..0c92e63615b 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 @@ -16,7 +16,6 @@ import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; /** @@ -81,7 +80,7 @@ public class ASTTypedefDeclaration extends ASTDeclaration implements IASTTypedef /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -95,13 +94,13 @@ public class ASTTypedefDeclaration extends ASTDeclaration implements IASTTypedef /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } 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 1e5e1010f3a..614ecba5255 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 @@ -16,7 +16,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -66,7 +65,7 @@ public class ASTUsingDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -80,13 +79,13 @@ public class ASTUsingDeclaration /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) 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 1d5f085cbbf..4ebcf1eaae2 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 @@ -15,7 +15,6 @@ import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -52,7 +51,7 @@ public class ASTUsingDirective /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -66,13 +65,13 @@ public class ASTUsingDirective /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) 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 545f488436c..f1b834704cf 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 @@ -16,7 +16,6 @@ import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement; /** @@ -153,7 +152,7 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) + public void acceptElement(ISourceElementRequestor requestor) { try { @@ -167,13 +166,13 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void enterScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) */ - public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) + public void exitScope(ISourceElementRequestor requestor) { } /* (non-Javadoc) 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 56a5ce3aec8..be742022fc2 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 @@ -54,7 +54,6 @@ import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTVariable; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier.ClassNameType; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; @@ -392,13 +391,4 @@ public class QuickParseASTFactory extends BaseASTFactory implements IASTFactory public void constructExpressions(boolean flag) { temporarilyDisableNodeConstruction = flag; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.ast.IASTFactory#getReferenceManager() - */ - public IReferenceManager getReferenceManager() { - // TODO Auto-generated method stub - return null; - } - } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/AbstractToken.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/AbstractToken.java index bb5add0ecf0..f9c0d988393 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/AbstractToken.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/AbstractToken.java @@ -16,7 +16,6 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.IToken; import org.eclipse.cdt.core.parser.ITokenDuple; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.util.CharArrayUtils; @@ -327,13 +326,13 @@ public abstract class AbstractToken implements IToken, ITokenDuple { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ITokenDuple#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ITokenDuple#acceptElement(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { + public void acceptElement(ISourceElementRequestor requestor) { } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java index 48ee0aa2f45..025b34c1861 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java @@ -18,7 +18,6 @@ import java.util.NoSuchElementException; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.IToken; import org.eclipse.cdt.core.parser.ITokenDuple; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.core.parser.util.CharArrayUtils; /** @@ -531,13 +530,13 @@ public class BasicTokenDuple implements ITokenDuple { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ITokenDuple#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ITokenDuple#acceptElement(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { + public void acceptElement(ISourceElementRequestor requestor) { } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TemplateTokenDuple.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TemplateTokenDuple.java index f3499dbb679..6c39f3c12bf 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TemplateTokenDuple.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TemplateTokenDuple.java @@ -17,7 +17,6 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.IToken; import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ast.IASTExpression; -import org.eclipse.cdt.core.parser.ast.IReferenceManager; /** * @author jcamelon @@ -102,7 +101,7 @@ public class TemplateTokenDuple extends BasicTokenDuple { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ITokenDuple#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void freeReferences(IReferenceManager manager) { + public void freeReferences() { if( argLists == null ) return; for( int i = 0; i < argLists.length; ++i ) { @@ -110,7 +109,7 @@ public class TemplateTokenDuple extends BasicTokenDuple { for( int j = 0; j < argLists[i].size(); ++ j ) { IASTExpression e = (IASTExpression) argLists[i].get(j); - e.freeReferences(manager); + e.freeReferences(); } } @@ -120,7 +119,7 @@ public class TemplateTokenDuple extends BasicTokenDuple { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ITokenDuple#acceptElement(org.eclipse.cdt.core.parser.ast.IReferenceManager) */ - public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) { + public void acceptElement(ISourceElementRequestor requestor) { if( argLists == null ) return; for( int i = 0; i < argLists.length; ++i ) { @@ -128,7 +127,7 @@ public class TemplateTokenDuple extends BasicTokenDuple { for( int j = 0; j < argLists[i].size(); ++ j ) { IASTExpression e = (IASTExpression) argLists[i].get(j); - e.acceptElement(requestor,manager); + e.acceptElement(requestor); } } }