1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-20 23:45:23 +02:00

Parser performance improvement through flattening the inheritence structure & removing reference caching.

This commit is contained in:
John Camelon 2004-09-07 18:56:39 +00:00
parent cee8b24391
commit f8a318d59e
110 changed files with 2100 additions and 3218 deletions

View file

@ -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.IASTUsingDirective;
import org.eclipse.cdt.core.parser.ast.IASTVariable; import org.eclipse.cdt.core.parser.ast.IASTVariable;
import org.eclipse.cdt.core.parser.ast.IASTVariableReference; import org.eclipse.cdt.core.parser.ast.IASTVariableReference;
import org.eclipse.cdt.core.parser.ast.IReferenceManager; import org.eclipse.cdt.internal.core.parser.Parser;
import org.eclipse.cdt.internal.core.parser.CompleteParser;
import org.eclipse.cdt.internal.core.parser.ParserException; 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.ASTClassReference;
import org.eclipse.cdt.internal.core.parser.ast.complete.ReferenceCache.ASTTypedefReference; 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 * @author jcamelon
@ -178,21 +186,21 @@ public class CompleteParseBaseTest extends TestCase
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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(), r = new ASTTypedefReference(reference.getOffset(),
(IASTTypedefDeclaration) referencedElement); (IASTTypedefDeclaration) referencedElement);
if (referencedElement instanceof IASTEnumerationSpecifier) if (referencedElement instanceof IASTEnumerationSpecifier)
r = new ReferenceCache.ASTEnumerationReference(reference.getOffset(), r = new ASTEnumerationReference(reference.getOffset(),
(IASTEnumerationSpecifier) referencedElement); (IASTEnumerationSpecifier) referencedElement);
if (referencedElement instanceof IASTTemplateParameter) if (referencedElement instanceof IASTTemplateParameter)
r = new ReferenceCache.ASTTemplateParameterReference(reference.getOffset(), r = new ASTTemplateParameterReference(reference.getOffset(),
(IASTTemplateParameter) referencedElement); (IASTTemplateParameter) referencedElement);
if (referencedElement instanceof IASTParameterDeclaration) if (referencedElement instanceof IASTParameterDeclaration)
r = new ReferenceCache.ASTParameterReference(reference.getOffset(), r = new ASTParameterReference(reference.getOffset(),
(IASTParameterDeclaration) referencedElement); (IASTParameterDeclaration) referencedElement);
if (referencedElement instanceof IASTTypeSpecifier) if (referencedElement instanceof IASTTypeSpecifier)
r = new ReferenceCache.ASTClassReference(reference.getOffset(), r = new ASTClassReference(reference.getOffset(),
(IASTTypeSpecifier) referencedElement); (IASTTypeSpecifier) referencedElement);
if (referencedElement instanceof IASTNamespaceDefinition) if (referencedElement instanceof IASTNamespaceDefinition)
r = new ReferenceCache.ASTNamespaceReference(reference.getOffset(), r = new ASTNamespaceReference(reference.getOffset(),
(IASTNamespaceDefinition) referencedElement); (IASTNamespaceDefinition) referencedElement);
if (referencedElement instanceof IASTFunction) if (referencedElement instanceof IASTFunction)
r = new ReferenceCache.ASTFunctionReference(reference.getOffset(), r = new ASTFunctionReference(reference.getOffset(),
(IASTFunction) referencedElement); (IASTFunction) referencedElement);
if (referencedElement instanceof IASTMethod) if (referencedElement instanceof IASTMethod)
r = new ReferenceCache.ASTMethodReference(reference.getOffset(), (IASTMethod) referencedElement); r = new ASTMethodReference(reference.getOffset(), (IASTMethod) referencedElement);
if (referencedElement instanceof IASTField) if (referencedElement instanceof IASTField)
r = new ReferenceCache.ASTFieldReference(reference.getOffset(), (IASTField) referencedElement); r = new ASTFieldReference(reference.getOffset(), (IASTField) referencedElement);
if (referencedElement instanceof IASTVariable) if (referencedElement instanceof IASTVariable)
r = new ReferenceCache.ASTVariableReference(reference.getOffset(), r = new ASTVariableReference(reference.getOffset(),
(IASTVariable) referencedElement); (IASTVariable) referencedElement);
if (referencedElement instanceof IASTEnumerator) if (referencedElement instanceof IASTEnumerator)
r = new ReferenceCache.ASTEnumeratorReference(reference.getOffset(), r = new ASTEnumeratorReference(reference.getOffset(),
(IASTEnumerator) referencedElement); (IASTEnumerator) referencedElement);
if( r != null ) if( r != null )
references.add( r ); 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 || callback.getProblems().hasNext() ) && throwOnError ) throw new ParserException( "FAILURE"); //$NON-NLS-1$
if( parseResult ) if( parseResult )
{ {
assertTrue( ((CompleteParser)parser).validateCaches()); assertTrue( ((Parser)parser).validateCaches());
assertTrue( callback.isBalanced() ); assertTrue( callback.isBalanced() );
} }
return callback.getCompilationUnit(); return callback.getCompilationUnit();

View file

@ -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.IASTUsingDirective;
import org.eclipse.cdt.core.parser.ast.IASTVariable; import org.eclipse.cdt.core.parser.ast.IASTVariable;
import org.eclipse.cdt.core.parser.ast.IASTVariableReference; 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.parser.ParserException;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager; import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
import org.eclipse.cdt.testplugin.CProjectHelper; 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 ) throw new ParserException( "FAILURE"); //$NON-NLS-1$
if( parseResult ) if( parseResult )
{ {
assertTrue( ((CompleteParser)parser).validateCaches()); assertTrue( ((Parser)parser).validateCaches());
} }
return callback.getCompilationUnit(); return callback.getCompilationUnit();
} }

View file

@ -10,7 +10,6 @@
***********************************************************************/ ***********************************************************************/
package org.eclipse.cdt.core.parser; package org.eclipse.cdt.core.parser;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -18,7 +17,7 @@ import org.eclipse.cdt.core.parser.ast.IReferenceManager;
*/ */
public interface ISourceElementCallbackDelegate public interface ISourceElementCallbackDelegate
{ {
public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ); public void acceptElement( ISourceElementRequestor requestor );
public void enterScope( ISourceElementRequestor requestor, IReferenceManager manager ); public void enterScope( ISourceElementRequestor requestor );
public void exitScope( ISourceElementRequestor requestor, IReferenceManager manager ); public void exitScope( ISourceElementRequestor requestor );
} }

View file

@ -13,8 +13,6 @@ package org.eclipse.cdt.core.parser;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -68,6 +66,6 @@ public interface ITokenDuple {
*/ */
public abstract String [] toQualifiedName(); public abstract String [] toQualifiedName();
public void freeReferences( IReferenceManager manager ); public void freeReferences( );
public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ); public void acceptElement( ISourceElementRequestor requestor );
} }

View file

@ -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.ExtensionDialect;
import org.eclipse.cdt.core.parser.extension.IParserExtension; import org.eclipse.cdt.core.parser.extension.IParserExtension;
import org.eclipse.cdt.core.parser.extension.IParserExtensionFactory; import org.eclipse.cdt.core.parser.extension.IParserExtensionFactory;
import org.eclipse.cdt.internal.core.parser.CompleteParser; import org.eclipse.cdt.internal.core.parser.Parser;
import org.eclipse.cdt.internal.core.parser.CompletionParser;
import org.eclipse.cdt.internal.core.parser.ParserExtensionFactory; import org.eclipse.cdt.internal.core.parser.ParserExtensionFactory;
import org.eclipse.cdt.internal.core.parser.QuickParseCallback; 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.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.complete.CompleteParseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.expression.ExpressionParseASTFactory; import org.eclipse.cdt.internal.core.parser.ast.expression.ExpressionParseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.quick.QuickParseASTFactory; 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 ); ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode );
ISourceElementRequestor ourCallback = (( callback == null) ? new NullSourceElementRequestor() : callback ); ISourceElementRequestor ourCallback = (( callback == null) ? new NullSourceElementRequestor() : callback );
IParserExtension extension = extensionFactory.createParserExtension(); IParserExtension extension = extensionFactory.createParserExtension();
if( ourMode == ParserMode.COMPLETE_PARSE) return new Parser( scanner, ourMode, ourCallback, language, logService, extension );
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 );
} }
/** /**

View file

@ -25,5 +25,5 @@ public interface IASTEnumerationSpecifier extends ISourceElementCallbackDelegate
/** /**
* @param referenceManager * @param referenceManager
*/ */
public void freeReferences(IReferenceManager referenceManager); public void freeReferences();
} }

View file

@ -23,5 +23,5 @@ public interface IASTEnumerator extends IASTOffsetableNamedElement, IASTNode, IS
/** /**
* @param referenceManager * @param referenceManager
*/ */
public void freeReferences(IReferenceManager referenceManager); public void freeReferences();
} }

View file

@ -312,7 +312,7 @@ public interface IASTExpression extends ISourceElementCallbackDelegate, IASTNode
public Iterator getNewPlacementExpressions(); public Iterator getNewPlacementExpressions();
public Iterator getNewTypeIdExpressions(); public Iterator getNewTypeIdExpressions();
public Iterator getNewInitializerExpressions(); 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 IASTNewExpressionDescriptor getNewExpressionDescriptor();
public long evaluateExpression() throws ASTExpressionEvaluationException; public long evaluateExpression() throws ASTExpressionEvaluationException;
public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException; public void reconcileReferences() throws ASTNotImplementedException;
public void purgeReferences() throws ASTNotImplementedException; public void purgeReferences() throws ASTNotImplementedException;
/** /**
* @param manager TODO * @param manager TODO
* *
*/ */
public void freeReferences(IReferenceManager manager); public void freeReferences();
} }

View file

@ -271,8 +271,5 @@ public interface IASTFactory
public boolean validateDirectMemberOperation(IASTNode node); public boolean validateDirectMemberOperation(IASTNode node);
public void constructExpressions( boolean flag ); public void constructExpressions( boolean flag );
public IReferenceManager getReferenceManager();
} }

View file

@ -57,5 +57,5 @@ public interface IASTSimpleTypeSpecifier extends IASTTypeSpecifier
/** /**
* @param referenceManager * @param referenceManager
*/ */
public void releaseReferences(IReferenceManager referenceManager); public void releaseReferences();
} }

View file

@ -42,5 +42,5 @@ public interface IASTTypeId extends ISourceElementCallbackDelegate
/** /**
* @param manager * @param manager
*/ */
public void freeReferences(IReferenceManager manager); public void freeReferences();
} }

View file

@ -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);
}

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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();
}
}
}

View file

@ -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);
}
}

View file

@ -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.IASTAbstractDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTArrayModifier; import org.eclipse.cdt.core.parser.ast.IASTArrayModifier;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -127,23 +126,23 @@ public class ASTAbstractDeclaration implements IASTAbstractDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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(); List arrayMods = getArrayModifiersList();
int size = arrayMods.size(); int size = arrayMods.size();
for( int i = 0; i< size; i++ ) for( int i = 0; i< size; i++ )
((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor, manager); ((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor);
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }
} }

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTArrayModifier; import org.eclipse.cdt.core.parser.ast.IASTArrayModifier;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -41,23 +40,23 @@ public class ASTArrayModifier implements IASTArrayModifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 ) if( expression != null )
expression.acceptElement( requestor, manager ); expression.acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }
} }

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTDesignator; import org.eclipse.cdt.core.parser.ast.IASTDesignator;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -65,21 +64,21 @@ public class ASTDesignator implements IASTDesignator
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 ) if( constantExpression != null )
constantExpression.acceptElement(requestor, manager); constantExpression.acceptElement(requestor);
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTInclusion; import org.eclipse.cdt.core.parser.ast.IASTInclusion;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -109,7 +108,7 @@ public class ASTInclusion implements IASTInclusion {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 // TODO Auto-generated method stub
@ -118,7 +117,7 @@ public class ASTInclusion implements IASTInclusion {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -133,7 +132,7 @@ public class ASTInclusion implements IASTInclusion {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTMacro; import org.eclipse.cdt.core.parser.ast.IASTMacro;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -88,7 +87,7 @@ public class ASTMacro implements IASTMacro {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -102,13 +101,13 @@ public class ASTMacro implements IASTMacro {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; 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; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
/** /**
@ -44,7 +43,7 @@ public class ASTASMDefinition extends ASTAnonymousDeclaration implements IASTASM
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -58,13 +57,13 @@ public class ASTASMDefinition extends ASTAnonymousDeclaration implements IASTASM
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; private int startingLineNumber, startingOffset, endingLineNumber, endingOffset;

View file

@ -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.IASTAbstractTypeSpecifierDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplate; import org.eclipse.cdt.core.parser.ast.IASTTemplate;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; 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; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
@ -48,7 +47,7 @@ public class ASTAbstractTypeSpecifierDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -66,14 +65,14 @@ public class ASTAbstractTypeSpecifierDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; 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; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
/** /**
@ -86,23 +86,23 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; references = null;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }
} }

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -68,26 +67,26 @@ public class ASTBinaryExpression extends ASTUnaryExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences()
*/ */
public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { public void reconcileReferences() throws ASTNotImplementedException {
super.reconcileReferences(manager); super.reconcileReferences();
rhs.reconcileReferences(manager); rhs.reconcileReferences();
reconcileSubExpression((ASTExpression) rhs, manager); reconcileSubExpression((ASTExpression) rhs );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks()
*/ */
protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { protected void processCallbacks( ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor );
rhs.acceptElement( requestor, manager ); rhs.acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
rhs.freeReferences(manager); rhs.freeReferences();
} }
public String toString(){ public String toString(){

View file

@ -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);
}
}

View file

@ -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.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTReference;
import org.eclipse.cdt.core.parser.ast.IASTScope; 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.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.ast.SymbolIterator; import org.eclipse.cdt.internal.core.parser.ast.SymbolIterator;
import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IDerivableContainerSymbol;
@ -161,16 +161,16 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; references = null;
try try
{ {
@ -186,15 +186,15 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier
{ {
IParentSymbol pw = (IParentSymbol)bases.get(i); IParentSymbol pw = (IParentSymbol)bases.get(i);
IASTBaseSpecifier baseSpec = new ASTBaseSpecifier( pw.getParent(), pw.isVirtual(), pw.getAccess(), pw.getOffset(), pw.getReferences() ); IASTBaseSpecifier baseSpec = new ASTBaseSpecifier( pw.getParent(), pw.isVirtual(), pw.getAccess(), pw.getOffset(), pw.getReferences() );
baseSpec.acceptElement(requestor, manager); baseSpec.acceptElement(requestor);
} }
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
requestor.exitClassSpecifier(this); requestor.exitClassSpecifier(this);
@ -271,7 +271,7 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier
/** /**
* @param references2 * @param references2
*/ */
public void setExtraReferences(List references, ReferenceCache cache ) { public void setExtraReferences(List references ) {
if( references != null && !references.isEmpty()) if( references != null && !references.isEmpty())
{ {
for( int i = 0; i < references.size(); ++i ) for( int i = 0; i < references.size(); ++i )

View file

@ -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.IASTCodeScope;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTFunction; 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; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
/** /**
@ -49,13 +48,13 @@ public class ASTCodeScope extends ASTScope implements IASTCodeScope {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
requestor.enterCodeBlock( this ); requestor.enterCodeBlock( this );
@ -69,7 +68,7 @@ public class ASTCodeScope extends ASTScope implements IASTCodeScope {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
requestor.exitCodeBlock( this ); requestor.exitCodeBlock( this );

View file

@ -17,7 +17,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; 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; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
/** /**
@ -40,13 +39,13 @@ public class ASTCompilationUnit
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -60,7 +59,7 @@ public class ASTCompilationUnit
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -71,27 +70,27 @@ public class ASTConditionalExpression extends ASTBinaryExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences()
*/ */
public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { public void reconcileReferences() throws ASTNotImplementedException {
super.reconcileReferences(manager); super.reconcileReferences();
thirdExpression.reconcileReferences(manager); thirdExpression.reconcileReferences();
reconcileSubExpression((ASTExpression) thirdExpression, manager); reconcileSubExpression((ASTExpression) thirdExpression);
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks()
*/ */
protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { protected void processCallbacks( ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor );
thirdExpression.acceptElement( requestor, manager ); thirdExpression.acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
thirdExpression.freeReferences(manager); thirdExpression.freeReferences();
} }
public String toString(){ public String toString(){
return ASTUtil.getExpressionString( this ); return ASTUtil.getExpressionString( this );

View file

@ -15,7 +15,7 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer; import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer;
import org.eclipse.cdt.core.parser.ast.IASTExpression; 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 * @author jcamelon
@ -60,23 +60,23 @@ public class ASTConstructorMemberInitializer
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; references = null;
if( expression != null ) if( expression != null )
expression.freeReferences(manager); expression.freeReferences();
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }
/** /**

View file

@ -15,7 +15,7 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.ASTClassKind; import org.eclipse.cdt.core.parser.ast.ASTClassKind;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.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.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
@ -77,7 +77,7 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 ) if( isForwardDeclaration )
try try
@ -88,18 +88,18 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora
{ {
/* do nothing */ /* do nothing */
} }
manager.processReferences( references, requestor ); Parser.processReferences( references, requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)

View file

@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.complete;
import java.util.List; import java.util.List;
import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -31,7 +30,7 @@ public class ASTEmptyExpression extends ASTExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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(){ public String toString(){

View file

@ -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;
}
}

View file

@ -18,7 +18,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTEnumerator; 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.ast.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
@ -74,7 +73,7 @@ public class ASTEnumerationSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -89,19 +88,19 @@ public class ASTEnumerationSpecifier
{ {
IASTEnumerator enumerator = (IASTEnumerator) enumerators.get(i); IASTEnumerator enumerator = (IASTEnumerator) enumerators.get(i);
if( enumerator.getInitialValue() != null ) if( enumerator.getInitialValue() != null )
enumerator.getInitialValue().acceptElement(requestor, manager ); enumerator.getInitialValue().acceptElement(requestor );
} }
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
@ -131,10 +130,10 @@ public class ASTEnumerationSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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; if( enumerators.isEmpty() ) return;
for( int i = 0; i < enumerators.size(); ++i ) 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; private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameStartOffset, nameEndOffset, nameLineNumber;

View file

@ -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.IASTEnumerationSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTEnumerator; import org.eclipse.cdt.core.parser.ast.IASTEnumerator;
import org.eclipse.cdt.core.parser.ast.IASTExpression; 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; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
/** /**
@ -76,27 +75,27 @@ public class ASTEnumerator extends ASTSymbol implements IASTEnumerator
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTEnumerator#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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 ) if( initialValue != null )
initialValue.freeReferences(referenceManager); initialValue.freeReferences();
} }
private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameEndOffset; private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameEndOffset;

View file

@ -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;
}
}

View file

@ -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.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTReference;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; 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.IContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo;
@ -66,20 +66,20 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
reconcileReferences(manager); reconcileReferences();
} }
catch (ASTNotImplementedException e) catch (ASTNotImplementedException e)
{ {
// will not get thrown // will not get thrown
} }
manager.processReferences( references, requestor ); Parser.processReferences( references, requestor );
references = null; references = null;
processCallbacks(requestor, manager); processCallbacks(requestor);
try try
{ {
@ -96,19 +96,19 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression
* @param manager TODO * @param manager TODO
* *
*/ */
protected void processCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) { protected void processCallbacks(ISourceElementRequestor requestor ) {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() * @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 ) if( subExpression != null && subExpression.getReferences() != null )
{ {
List refs = subExpression.getReferences(); List refs = subExpression.getReferences();
int size = refs.size(); 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); IASTReference aReference = (IASTReference)refs.get(i);
if( aReference != null && references.contains( aReference ) ) if( aReference != null && references.contains( aReference ) )
{ {
refs.remove(i--); refs.remove(i--);
size--; size--;
manager.returnReference( aReference );
} }
} }
} }
@ -295,11 +294,9 @@ public abstract class ASTExpression extends ASTNode implements IASTExpression
return null; return null;
} }
public void freeReferences( IReferenceManager manager ) public void freeReferences( )
{ {
if( references == null || references.isEmpty() ) return; if( references == null || references.isEmpty() ) return;
for (int i = 0; i < references.size(); ++i)
manager.returnReference( (IASTReference) references.get(i));
references.clear(); references.clear();
} }
} }

View file

@ -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.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTField; import org.eclipse.cdt.core.parser.ast.IASTField;
import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; 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; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
/** /**
@ -53,7 +53,7 @@ public class ASTField extends ASTVariable implements IASTField
return visibility; return visibility;
} }
public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) public void acceptElement(ISourceElementRequestor requestor)
{ {
try try
{ {
@ -63,12 +63,12 @@ public class ASTField extends ASTVariable implements IASTField
{ {
/* do nothing */ /* do nothing */
} }
manager.processReferences(references, requestor); Parser.processReferences(references, requestor);
references = null; references = null;
if( getInitializerClause() != null ) if( getInitializerClause() != null )
getInitializerClause().acceptElement(requestor, manager); getInitializerClause().acceptElement(requestor);
if( getAbstractDeclaration() != null ) if( getAbstractDeclaration() != null )
getAbstractDeclaration().acceptElement(requestor, manager); getAbstractDeclaration().acceptElement(requestor);
} }
} }

View file

@ -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;
}
}

View file

@ -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.IASTFunction;
import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplate; 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.ast.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.pst.IParameterizedSymbol; import org.eclipse.cdt.internal.core.parser.pst.IParameterizedSymbol;
import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo;
@ -166,7 +166,7 @@ public class ASTFunction extends ASTScope implements IASTFunction
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -179,33 +179,33 @@ public class ASTFunction extends ASTScope implements IASTFunction
{ {
/* do nothing */ /* 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; references = null;
processParameterInitializersAndArrayMods(requestor, manager); processParameterInitializersAndArrayMods(requestor);
if( getReturnType() != null ) if( getReturnType() != null )
getReturnType().acceptElement(requestor, manager); getReturnType().acceptElement(requestor);
} }
/** /**
* @param requestor * @param requestor
* @param manager * @param manager
*/ */
protected void processParameterInitializersAndArrayMods(ISourceElementRequestor requestor, IReferenceManager manager) protected void processParameterInitializersAndArrayMods(ISourceElementRequestor requestor )
{ {
int size = parameters.size(); int size = parameters.size();
for( int i = 0; i < size; i++ ) for( int i = 0; i < size; i++ )
{ {
IASTParameterDeclaration parm = (IASTParameterDeclaration)parameters.get(i); IASTParameterDeclaration parm = (IASTParameterDeclaration)parameters.get(i);
if( parm.getDefaultValue() != null ) if( parm.getDefaultValue() != null )
parm.getDefaultValue().acceptElement(requestor, manager); parm.getDefaultValue().acceptElement(requestor);
Iterator arrays = parm.getArrayModifiers(); Iterator arrays = parm.getArrayModifiers();
while( arrays.hasNext() ) 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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -224,12 +224,12 @@ public class ASTFunction extends ASTScope implements IASTFunction
{ {
/* do nothing */ /* do nothing */
} }
functionCallbacks( requestor, manager ); functionCallbacks( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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;
}
}

View file

@ -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.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause;
import org.eclipse.cdt.core.parser.ast.IASTVariable; 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; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
/** /**
@ -79,30 +79,30 @@ public class ASTInitializerClause implements IASTInitializerClause
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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(); List initializers = getInitializersList();
int size = initializers.size(); int size = initializers.size();
for( int i = 0; i < size; i++ ) for( int i = 0; i < size; i++ )
((IASTInitializerClause)initializers.get(i)).acceptElement(requestor, manager); ((IASTInitializerClause)initializers.get(i)).acceptElement(requestor);
if( assignmentExpression != null ) if( assignmentExpression != null )
assignmentExpression.acceptElement( requestor, manager ); assignmentExpression.acceptElement( requestor );
manager.processReferences(references, requestor); Parser.processReferences(references, requestor);
references = null; references = null;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification; 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; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
/** /**
@ -65,13 +64,13 @@ public class ASTLinkageSpecification extends ASTAnonymousDeclaration implements
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -85,7 +84,7 @@ public class ASTLinkageSpecification extends ASTAnonymousDeclaration implements
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTMethod;
import org.eclipse.cdt.core.parser.ast.IASTTemplate; import org.eclipse.cdt.core.parser.ast.IASTTemplate;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; 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.ast.EmptyIterator;
import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol; import org.eclipse.cdt.internal.core.parser.pst.IContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.IParameterizedSymbol; import org.eclipse.cdt.internal.core.parser.pst.IParameterizedSymbol;
@ -135,7 +134,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -148,15 +147,15 @@ public class ASTMethod extends ASTFunction implements IASTMethod
{ {
/* do nothing */ /* do nothing */
} }
methodCallbacks(requestor, manager); methodCallbacks(requestor );
} }
protected void methodCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) protected void methodCallbacks(ISourceElementRequestor requestor)
{ {
functionCallbacks(requestor, manager); functionCallbacks(requestor);
processConstructorChain(requestor, manager); processConstructorChain(requestor);
} }
protected void processConstructorChain(ISourceElementRequestor requestor, IReferenceManager manager) protected void processConstructorChain(ISourceElementRequestor requestor )
{ {
if( constructorChain != null ) if( constructorChain != null )
{ {
@ -164,14 +163,14 @@ public class ASTMethod extends ASTFunction implements IASTMethod
for( int i = 0; i < initializers.size(); i++ ) for( int i = 0; i < initializers.size(); i++ )
{ {
IASTConstructorMemberInitializer c = (IASTConstructorMemberInitializer)initializers.get(i); IASTConstructorMemberInitializer c = (IASTConstructorMemberInitializer)initializers.get(i);
c.acceptElement(requestor, manager); c.acceptElement(requestor);
} }
} }
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -181,12 +180,12 @@ public class ASTMethod extends ASTFunction implements IASTMethod
{ {
/* do nothing */ /* do nothing */
} }
methodCallbacks( requestor, manager ); methodCallbacks( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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;
}
}

View file

@ -15,7 +15,7 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceAlias; import org.eclipse.cdt.core.parser.ast.IASTNamespaceAlias;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; 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; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
/** /**
@ -73,22 +73,22 @@ public class ASTNamespaceAlias extends ASTSymbol implements IASTNamespaceAlias
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; references = null;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -17,7 +17,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.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.ast.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
@ -66,14 +65,14 @@ public class ASTNamespaceDefinition
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -89,7 +88,7 @@ public class ASTNamespaceDefinition
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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;
}
}

View file

@ -15,7 +15,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTExpression; 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; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
/** /**
@ -57,11 +56,11 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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, getNewPlacementExpressions() );
accept( requestor, getNewTypeIdExpressions() , manager); accept( requestor, getNewTypeIdExpressions() );
accept( requestor, getNewInitializerExpressions() , manager); accept( requestor, getNewInitializerExpressions() );
} }
@ -70,17 +69,17 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor {
* @param iterator * @param iterator
* @param manager * @param manager
*/ */
protected void accept(ISourceElementRequestor requestor, Iterator iterator, IReferenceManager manager) protected void accept(ISourceElementRequestor requestor, Iterator iterator)
{ {
while( iterator.hasNext() ) while( iterator.hasNext() )
((IASTExpression)iterator.next()).acceptElement(requestor, manager); ((IASTExpression)iterator.next()).acceptElement(requestor);
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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() {
free( newPlacementExpressions, manager ); free( newPlacementExpressions );
free( newTypeIdExpressions , manager); free( newTypeIdExpressions );
free( newInitializerExpressions , manager); free( newInitializerExpressions );
} }
@ -107,10 +106,10 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor {
* @param list * @param list
* @param manager * @param manager
*/ */
private void free(List list, IReferenceManager manager) { private void free(List list ) {
if( list == null || list.isEmpty() ) return; if( list == null || list.isEmpty() ) return;
for( int i = 0; i < list.size(); ++i) for( int i = 0; i < list.size(); ++i)
((IASTExpression)list.get(i)).freeReferences(manager); ((IASTExpression)list.get(i)).freeReferences();
} }
} }

View file

@ -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.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; import org.eclipse.cdt.core.parser.ast.IASTTypeId;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -57,10 +56,10 @@ public class ASTNewExpression extends ASTExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/ */
protected void processCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) { protected void processCallbacks(ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor );
typeId.acceptElement(requestor, manager); typeId.acceptElement(requestor);
newDescriptor.acceptElement(requestor, manager); newDescriptor.acceptElement(requestor);
} }
@ -77,9 +76,9 @@ public class ASTNewExpression extends ASTExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
typeId.freeReferences( manager ); typeId.freeReferences( );
} }
public String toString(){ public String toString(){

View file

@ -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.IASTInitializerClause;
import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; 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.ast.ASTAbstractDeclaration;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
@ -143,20 +142,20 @@ public class ASTParameterDeclaration extends ASTSymbol implements IASTParameterD
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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;
}
}

View file

@ -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) {
}
}

View file

@ -15,8 +15,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; 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.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo;
@ -153,10 +151,8 @@ public class ASTSimpleTypeSpecifier extends ASTNode implements IASTSimpleTypeSpe
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier#releaseReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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; if( refs == null || refs.isEmpty() ) return;
for( int i = 0; i < refs.size(); ++i )
referenceManager.returnReference( (ASTReference)refs.get(i));
refs.clear(); refs.clear();
} }
} }

View file

@ -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.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; 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.IContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension; import org.eclipse.cdt.internal.core.parser.pst.ISymbolASTExtension;
@ -139,14 +138,14 @@ public class ASTTemplateDeclaration extends ASTSymbol implements IASTTemplateDec
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 // TODO Auto-generated method stub
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -158,12 +157,12 @@ public class ASTTemplateDeclaration extends ASTSymbol implements IASTTemplateDec
} }
if( templateParameters == null || templateParameters.isEmpty()) return; if( templateParameters == null || templateParameters.isEmpty()) return;
for( int i = 0; i < templateParameters.size(); ++i ) for( int i = 0; i < templateParameters.size(); ++i )
((IASTTemplateParameter)templateParameters.get(i)).acceptElement(requestor, manager ); ((IASTTemplateParameter)templateParameters.get(i)).acceptElement(requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation; 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.IContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ITemplateFactory; import org.eclipse.cdt.internal.core.parser.pst.ITemplateFactory;
@ -108,14 +107,14 @@ public class ASTTemplateInstantiation extends ASTSymbol implements IASTTemplateI
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 // TODO Auto-generated method stub
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -129,7 +128,7 @@ public class ASTTemplateInstantiation extends ASTSymbol implements IASTTemplateI
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTParameterDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; 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.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo;
@ -109,24 +108,24 @@ public class ASTTemplateParameter extends ASTSymbol implements IASTTemplateParam
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 ) if( defaultValue != null )
defaultValue.acceptElement( requestor, manager ); defaultValue.acceptElement( requestor );
if( parameter != null ) if( parameter != null )
parameter.acceptElement( requestor, manager ); parameter.acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 // TODO Auto-generated method stub
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 // TODO Auto-generated method stub
} }

View file

@ -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;
}
}

View file

@ -18,10 +18,9 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ITokenDuple;
import org.eclipse.cdt.core.parser.ast.IASTArrayModifier; 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.IASTTypeId;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier.Type; 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; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
/** /**
@ -199,38 +198,38 @@ public class ASTTypeId implements IASTTypeId
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; references = null;
if( tokenDuple != null ) if( tokenDuple != null )
tokenDuple.acceptElement( requestor, manager ); tokenDuple.acceptElement( requestor );
List arrayMods = getArrayModifiersList(); List arrayMods = getArrayModifiersList();
int size = arrayMods.size(); int size = arrayMods.size();
for( int i = 0; i < size; i++ ) for( int i = 0; i < size; i++ )
{ {
((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor, manager); ((IASTArrayModifier)arrayMods.get(i)).acceptElement(requestor);
} }
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 * @param list
*/ */
public void addReferences(List list, ReferenceCache cache) public void addReferences(List list )
{ {
if( references == null ) if( references == null )
references = new ArrayList( list.size() ); references = new ArrayList( list.size() );
@ -241,13 +240,11 @@ public class ASTTypeId implements IASTTypeId
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTTypeId#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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 ) if( tokenDuple != null )
tokenDuple.freeReferences( manager ); tokenDuple.freeReferences( );
if( references == null || references.isEmpty() ) return; if( references == null || references.isEmpty() ) return;
for( int i =0; i < references.size(); ++i)
manager.returnReference( (IASTReference) references.get(i));
references.clear(); references.clear();
} }

View file

@ -15,7 +15,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; import org.eclipse.cdt.core.parser.ast.IASTTypeId;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -39,18 +38,18 @@ public class ASTTypeIdExpression extends ASTExpression {
return typeId; return typeId;
} }
protected void processCallbacks(ISourceElementRequestor requestor, IReferenceManager manager) { protected void processCallbacks(ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor );
typeId.acceptElement(requestor, manager); typeId.acceptElement(requestor);
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
typeId.freeReferences(manager); typeId.freeReferences();
} }
public String toString(){ public String toString(){

View file

@ -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.IASTSimpleTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration; 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.ast.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
@ -79,7 +79,7 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -89,22 +89,22 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration
{ {
/* do nothing */ /* do nothing */
} }
manager.processReferences(references, requestor); Parser.processReferences(references, requestor);
references = null; references = null;
getAbstractDeclarator().acceptElement( requestor, manager ); getAbstractDeclarator().acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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;
}
}

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -55,9 +54,9 @@ public class ASTUnaryExpression extends ASTExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences()
*/ */
public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { public void reconcileReferences() throws ASTNotImplementedException {
lhs.reconcileReferences(manager); lhs.reconcileReferences();
reconcileSubExpression((ASTExpression) lhs, manager); reconcileSubExpression((ASTExpression) lhs);
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -72,18 +71,18 @@ public class ASTUnaryExpression extends ASTExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks()
*/ */
protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { protected void processCallbacks( ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor );
lhs.acceptElement( requestor, manager ); lhs.acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
lhs.freeReferences(manager); lhs.freeReferences();
} }
public String toString(){ public String toString(){

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.ASTUtil; import org.eclipse.cdt.core.parser.ast.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author aniefer * @author aniefer
@ -56,9 +55,9 @@ public class ASTUnaryIdExpression extends ASTIdExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences()
*/ */
public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException { public void reconcileReferences() throws ASTNotImplementedException {
lhs.reconcileReferences(manager); lhs.reconcileReferences();
reconcileSubExpression((ASTExpression) lhs, manager); reconcileSubExpression((ASTExpression) lhs);
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -73,18 +72,18 @@ public class ASTUnaryIdExpression extends ASTIdExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks()
*/ */
protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { protected void processCallbacks( ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor);
lhs.acceptElement( requestor, manager ); lhs.acceptElement( requestor );
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
lhs.freeReferences(manager); lhs.freeReferences();
} }
public String toString(){ public String toString(){

View file

@ -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.ASTUtil;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; import org.eclipse.cdt.core.parser.ast.IASTTypeId;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -26,9 +25,9 @@ public class ASTUnaryTypeIdExpression extends ASTUnaryExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager)
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
super.freeReferences(manager); super.freeReferences();
typeId.freeReferences(manager); typeId.freeReferences();
} }
private final IASTTypeId typeId; private final IASTTypeId typeId;
@ -53,9 +52,9 @@ public class ASTUnaryTypeIdExpression extends ASTUnaryExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks() * @see org.eclipse.cdt.internal.core.parser.ast.complete.ASTExpression#processCallbacks()
*/ */
protected void processCallbacks( ISourceElementRequestor requestor, IReferenceManager manager ) { protected void processCallbacks( ISourceElementRequestor requestor ) {
super.processCallbacks(requestor, manager); super.processCallbacks(requestor );
typeId.acceptElement( requestor, manager ); typeId.acceptElement( requestor );
} }
public String toString(){ public String toString(){

View file

@ -17,7 +17,7 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration; 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; import org.eclipse.cdt.internal.core.parser.ast.SymbolIterator;
/** /**
@ -81,7 +81,7 @@ public class ASTUsingDeclaration extends ASTNode implements IASTUsingDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -91,19 +91,19 @@ public class ASTUsingDeclaration extends ASTNode implements IASTUsingDeclaration
{ {
/* do nothing */ /* do nothing */
} }
manager.processReferences(references, requestor); Parser.processReferences(references, requestor);
references = null; references = null;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)

View file

@ -15,7 +15,7 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; 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.IContainerSymbol;
import org.eclipse.cdt.internal.core.parser.pst.IUsingDirectiveSymbol; import org.eclipse.cdt.internal.core.parser.pst.IUsingDirectiveSymbol;
@ -72,7 +72,7 @@ public class ASTUsingDirective extends ASTAnonymousDeclaration implements IASTUs
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -82,19 +82,19 @@ public class ASTUsingDirective extends ASTAnonymousDeclaration implements IASTUs
{ {
/* do nothing */ /* do nothing */
} }
manager.processReferences(references, requestor); Parser.processReferences(references, requestor);
references = null; references = null;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.IASTInitializerClause;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTVariable; 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.ast.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.pst.ISymbol; import org.eclipse.cdt.internal.core.parser.pst.ISymbol;
import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo; import org.eclipse.cdt.internal.core.parser.pst.ITypeInfo;
@ -157,7 +157,7 @@ public class ASTVariable extends ASTSymbol implements IASTVariable
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -167,26 +167,26 @@ public class ASTVariable extends ASTSymbol implements IASTVariable
{ {
/* do nothing */ /* do nothing */
} }
manager.processReferences(references, requestor); Parser.processReferences(references, requestor);
references = null; references = null;
if( initializerClause != null ) if( initializerClause != null )
initializerClause.acceptElement(requestor, manager); initializerClause.acceptElement(requestor);
if( constructorExpression != null ) if( constructorExpression != null )
constructorExpression.acceptElement(requestor, manager); constructorExpression.acceptElement(requestor);
if( getAbstractDeclaration() != null ) if( getAbstractDeclaration() != null )
getAbstractDeclaration().acceptElement(requestor, manager); getAbstractDeclaration().acceptElement(requestor);
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)

View file

@ -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 */
}
}
}

View file

@ -19,7 +19,6 @@ import java.util.Map;
import org.eclipse.cdt.core.parser.Enum; import org.eclipse.cdt.core.parser.Enum;
import org.eclipse.cdt.core.parser.IProblem; 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.IToken;
import org.eclipse.cdt.core.parser.ITokenDuple; import org.eclipse.cdt.core.parser.ITokenDuple;
import org.eclipse.cdt.core.parser.ParserLanguage; 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.IASTUsingDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective;
import org.eclipse.cdt.core.parser.ast.IASTVariable; 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.IASTClassSpecifier.ClassNameType;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind; import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind;
@ -118,7 +116,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
private final static ITypeInfo.OperatorExpression SUBSCRIPT; private final static ITypeInfo.OperatorExpression SUBSCRIPT;
private final static IProblemFactory problemFactory = new ASTProblemFactory(); private final static IProblemFactory problemFactory = new ASTProblemFactory();
private final ParserMode mode; private final ParserMode mode;
private final ReferenceCache cache = new ReferenceCache();
private static final int BUILTIN_TYPE_SIZE = 64; private static final int BUILTIN_TYPE_SIZE = 64;
private final Hashtable typeIdCache = new Hashtable( BUILTIN_TYPE_SIZE ); private final Hashtable typeIdCache = new Hashtable( BUILTIN_TYPE_SIZE );
private final Hashtable simpleTypeSpecCache = 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 ) if( reference == null )
return; return;
if( references == null ) if( references == null )
{
cache.returnReference( reference );
return; return;
}
int size = references.size(); int size = references.size();
for( int i = 0; i < size; i++ ){ for( int i = 0; i < size; i++ ){
IASTReference ref = (IASTReference)references.get(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())) if( (CharArrayUtils.equals( ref.getNameCharArray(), reference.getNameCharArray()))
&& (ref.getOffset() == reference.getOffset()) && (ref.getOffset() == reference.getOffset())
){ ){
cache.returnReference( ref );
references.remove(i--); references.remove(i--);
size--; size--;
break; break;
@ -195,7 +190,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
int numRefs = refs.size(); int numRefs = refs.size();
for( int j = 0; j < numRefs; j++ ){ for( int j = 0; j < numRefs; j++ ){
IASTReference r = (IASTReference) refs.get(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 ) if( args != null && references != null )
{ {
addTemplateIdReferences( references, templateArgLists[0] ); addTemplateIdReferences( references, templateArgLists[0] );
name.freeReferences( cache ); name.freeReferences( );
} }
} }
else else
@ -417,7 +412,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
if( references != null && templateArgLists != null && templateArgLists[idx] != null ) if( references != null && templateArgLists != null && templateArgLists[idx] != null )
{ {
addTemplateIdReferences( references, templateArgLists[idx] ); addTemplateIdReferences( references, templateArgLists[idx] );
name.freeReferences(cache); name.freeReferences();
} }
} }
else else
@ -785,7 +780,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
{ {
for( int i = 0; i < name.getTemplateIdArgLists().length; ++i ) for( int i = 0; i < name.getTemplateIdArgLists().length; ++i )
addTemplateIdReferences( references, name.getTemplateIdArgLists()[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 ); ASTClassSpecifier classSpecifier = new ASTClassSpecifier( newSymbol, kind, type, access, startingOffset, startingLine, nameOffset, nameEndOffset, nameLine, references, filename );
attachSymbolExtension(newSymbol, classSpecifier, true ); attachSymbolExtension(newSymbol, classSpecifier, true );
@ -907,7 +902,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
for( int i = 0; i < templateArgumentLists.length; ++i ) for( int i = 0; i < templateArgumentLists.length; ++i )
addTemplateIdReferences( references, templateArgumentLists[i]); addTemplateIdReferences( references, templateArgumentLists[i]);
} }
parentClassName.freeReferences(cache); parentClassName.freeReferences();
classSymbol.addParent( symbol, isVirtual, visibility, parentClassName.getFirstToken().getOffset(), references ); 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 "; // assert (symbol != null ) : "createReference cannot be called on null symbol ";
if( symbol.getTypeInfo().checkBit( ITypeInfo.isTypedef ) || if( symbol.getTypeInfo().checkBit( ITypeInfo.isTypedef ) ||
symbol.getASTExtension().getPrimaryDeclaration() instanceof IASTTypedefDeclaration ) symbol.getASTExtension().getPrimaryDeclaration() instanceof IASTTypedefDeclaration )
return cache.getReference( offset, declaration); return new ASTTypedefReference ( offset, (IASTTypedefDeclaration) declaration );
else if( symbol.getType() == ITypeInfo.t_namespace ) 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 || else if( symbol.getType() == ITypeInfo.t_class ||
symbol.getType() == ITypeInfo.t_struct || symbol.getType() == ITypeInfo.t_struct ||
symbol.getType() == ITypeInfo.t_union ) 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 ) 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 ) 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)) else if(( symbol.getType() == ITypeInfo.t_function ) || (symbol.getType() == ITypeInfo.t_constructor))
{ {
ASTNode referenced = (definition != null) ? definition : declaration; ASTNode referenced = (definition != null) ? definition : declaration;
if( referenced instanceof IASTMethod ) if( referenced instanceof IASTMethod )
return cache.getReference( offset, (IASTMethod)referenced ); return new ASTMethodReference( offset, (IASTMethod)referenced );
return cache.getReference( offset, (IASTFunction)referenced ); return new ASTFunctionReference( offset, (IASTFunction)referenced );
} }
else if( ( symbol.getType() == ITypeInfo.t_type ) || else if( ( symbol.getType() == ITypeInfo.t_type ) ||
( symbol.getType() == ITypeInfo.t_bool )|| ( 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_struct ||
symbol.getContainingSymbol().getType() == ITypeInfo.t_union ) 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 || else if( ( symbol.getContainingSymbol().getType() == ITypeInfo.t_function ||
symbol.getContainingSymbol().getType() == ITypeInfo.t_constructor ) && 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() != null &&
((IParameterizedSymbol)symbol.getContainingSymbol()).getParameterList().contains( symbol ) ) ((IParameterizedSymbol)symbol.getContainingSymbol()).getParameterList().contains( symbol ) )
{ {
return cache.getReference( offset, declaration ); return new ASTParameterReference( offset, (IASTParameterDeclaration) declaration );
} }
else else
{ {
ASTNode s = (definition != null) ? definition : declaration; ASTNode s = (definition != null) ? definition : declaration;
if(s instanceof IASTVariable) if(s instanceof IASTVariable)
return cache.getReference( offset, (IASTVariable)s); return new ASTVariableReference( offset, (IASTVariable)s);
else if (s instanceof IASTParameterDeclaration) else if (s instanceof IASTParameterDeclaration)
return cache.getReference( offset, (IASTParameterDeclaration)s); return new ASTParameterReference( offset, (IASTParameterDeclaration)s);
else if (s instanceof IASTTemplateParameter ) else if (s instanceof IASTTemplateParameter )
return cache.getReference( offset, (IASTTemplateParameter)s ); return new ASTTemplateParameterReference( offset, (IASTTemplateParameter)s );
} }
} }
// assert false : "Unreachable code : createReference()"; // assert false : "Unreachable code : createReference()";
@ -1147,11 +1142,10 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
int size = refs.size(); int size = refs.size();
for( int i = 0; i < size; i++ ) 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() ) && if( CharArrayUtils.equals( ref.getNameCharArray(), duple.toCharArray() ) &&
ref.getOffset() == duple.getStartOffset() ) ref.getOffset() == duple.getStartOffset() )
{ {
cache.returnReference( ref );
refs.remove( i-- ); refs.remove( i-- );
size--; size--;
} }
@ -1219,7 +1213,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
{ {
refs.remove(i--); refs.remove(i--);
size--; size--;
cache.returnReference(r);
} }
} }
} }
@ -1864,7 +1857,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
for( int i = 0; i < eRefs.size(); ++i ) for( int i = 0; i < eRefs.size(); ++i )
{ {
IASTReference r = (IASTReference)eRefs.get(i); IASTReference r = (IASTReference)eRefs.get(i);
references.add( cache.getReference( r.getOffset(), r.getReferencedElement() )); references.add( r );
} }
} }
if( expression.getLHSExpression() != null ) if( expression.getLHSExpression() != null )
@ -2035,7 +2028,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
if( argLists != null && argLists[idx] != null ) if( argLists != null && argLists[idx] != null )
{ {
addTemplateIdReferences( references, argLists[idx] ); addTemplateIdReferences( references, argLists[idx] );
typeName.freeReferences(cache); typeName.freeReferences();
} }
} }
else else
@ -2319,7 +2312,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
for( int i = 0; i < elabReferences.size(); ++i ) for( int i = 0; i < elabReferences.size(); ++i )
{ {
IASTReference r = (IASTReference)elabReferences.get(i); IASTReference r = (IASTReference)elabReferences.get(i);
newReferences.add( cache.getReference(r.getOffset(), r.getReferencedElement())); newReferences.add( r );
} }
if( xrefSymbol != null ) if( xrefSymbol != null )
addReference( newReferences, createReference( xrefSymbol, elab.getNameCharArray(), elab.getNameOffset()) ); 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 ) for( int i = 0; i < absRefs.size(); ++i )
{ {
IASTReference r = (IASTReference) absRefs.get(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 ) for( int i = 0; i < mappingReferences.size(); ++i )
{ {
IASTReference r = (IASTReference) mappingReferences.get(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() ); handleProblem( scope, IProblem.SEMANTIC_INVALID_TYPE, typeId.getTypeOrClassNameCharArray() );
} }
result.setTypeSymbol( typeSymbol ); result.setTypeSymbol( typeSymbol );
typeId.addReferences( refs, cache ); typeId.addReferences( refs );
} }
setPointerOperators( result, ((ASTTypeId)id).getPointerOperatorsList(), ((ASTTypeId)id).getArrayModifiersList() ); setPointerOperators( result, ((ASTTypeId)id).getPointerOperatorsList(), ((ASTTypeId)id).getArrayModifiersList() );
@ -3518,8 +3511,6 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
*/ */
private void freeReferences(List refs) { private void freeReferences(List refs) {
if( refs == null || refs.isEmpty() ) return; if( refs == null || refs.isEmpty() ) return;
for( int i =0; i < refs.size(); ++i)
cache.returnReference((IASTReference) refs.get(i));
refs.clear(); refs.clear();
} }
@ -3558,7 +3549,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
astImplementation.setProcessingUnresolvedReferences( false ); astImplementation.setProcessingUnresolvedReferences( false );
if( ! references.isEmpty() ) if( ! references.isEmpty() )
astImplementation.setExtraReferences( references, cache ); astImplementation.setExtraReferences( references );
} }
@ -3759,18 +3750,12 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
//ignore //ignore
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#getReferenceManager()
*/
public IReferenceManager getReferenceManager() {
return cache;
}
/** /**
* @return * @return
*/ */
public boolean validateCaches() { public boolean validateCaches() {
return cache.isBalanced() && (pst.getTypeInfoProvider().numAllocated() == 0); return (pst.getTypeInfoProvider().numAllocated() == 0);
} }
} }

View file

@ -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.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTNode; import org.eclipse.cdt.core.parser.ast.IASTNode;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; 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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences() * @see org.eclipse.cdt.core.parser.ast.IASTExpression#reconcileReferences()
*/ */
public void reconcileReferences(IReferenceManager manager) throws ASTNotImplementedException public void reconcileReferences() throws ASTNotImplementedException
{ {
throw new ASTNotImplementedException(); throw new ASTNotImplementedException();
} }
@ -233,7 +232,7 @@ public class ASTExpression implements IASTExpression {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences() * @see org.eclipse.cdt.core.parser.ast.IASTExpression#freeReferences()
*/ */
public void freeReferences(IReferenceManager manager) { public void freeReferences() {
} }

View file

@ -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.IASTUsingDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTUsingDirective; import org.eclipse.cdt.core.parser.ast.IASTUsingDirective;
import org.eclipse.cdt.core.parser.ast.IASTVariable; 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.IASTClassSpecifier.ClassNameType;
import org.eclipse.cdt.core.parser.ast.IASTDesignator.DesignatorKind; import org.eclipse.cdt.core.parser.ast.IASTDesignator.DesignatorKind;
import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor; import org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
@ -913,11 +912,4 @@ public class ExpressionParseASTFactory extends BaseASTFactory implements IASTFac
//ignore //ignore
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTFactory#getReferenceManager()
*/
public IReferenceManager getReferenceManager() {
// TODO Auto-generated method stub
return null;
}
} }

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTDesignator; import org.eclipse.cdt.core.parser.ast.IASTDesignator;
import org.eclipse.cdt.core.parser.ast.IASTExpression; 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.core.parser.ast.gcc.IASTGCCDesignator;
import org.eclipse.cdt.internal.core.parser.ast.ASTDesignator; import org.eclipse.cdt.internal.core.parser.ast.ASTDesignator;
@ -47,10 +46,10 @@ public class ASTGCCDesignator extends ASTDesignator
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 ) if( secondExpression != null )
secondExpression.acceptElement(requestor, manager); secondExpression.acceptElement(requestor);
} }
} }

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -52,7 +51,7 @@ public class ASTASMDefinition
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -67,14 +66,14 @@ public class ASTASMDefinition
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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; private int startingLineNumber, startingOffset, endingLineNumber, endingOffset;

View file

@ -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.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplate; import org.eclipse.cdt.core.parser.ast.IASTTemplate;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -72,7 +71,7 @@ public class ASTAbstractTypeSpecifierDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -90,14 +89,14 @@ public class ASTAbstractTypeSpecifierDeclaration
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTReference; import org.eclipse.cdt.core.parser.ast.IASTReference;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -87,20 +86,20 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 // no references to process
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.IASTBaseSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
* *
@ -130,13 +129,13 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -150,7 +149,7 @@ public class ASTClassSpecifier extends ASTScopedTypeSpecifier implements IASTQCl
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -17,7 +17,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit; import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration; import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -42,13 +41,13 @@ public class ASTCompilationUnit extends ASTNode implements IASTCompilationUnit,
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -63,7 +62,7 @@ public class ASTCompilationUnit extends ASTNode implements IASTCompilationUnit,
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer; import org.eclipse.cdt.core.parser.ast.IASTConstructorMemberInitializer;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -54,19 +53,19 @@ public class ASTConstructorMemberInitializer
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }
} }

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTScope; 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; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement;
/** /**
@ -87,7 +86,7 @@ public class ASTElaboratedTypeSpecifier extends ASTNode implements IASTElaborate
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -101,13 +100,13 @@ public class ASTElaboratedTypeSpecifier extends ASTNode implements IASTElaborate
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.IASTEnumerator;
import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -75,7 +74,7 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -89,20 +88,20 @@ public class ASTEnumerationSpecifier extends ASTScopedTypeSpecifier
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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 // do nothing
} }
private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameStartOffset, nameEndOffset, nameLineNumber; private int startingLineNumber, startingOffset, endingLineNumber, endingOffset, nameStartOffset, nameEndOffset, nameLineNumber;

View file

@ -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.IASTEnumerator;
import org.eclipse.cdt.core.parser.ast.IASTExpression; import org.eclipse.cdt.core.parser.ast.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTOffsetableNamedElement; 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; import org.eclipse.cdt.internal.core.parser.ast.complete.ASTNode;
/** /**
@ -79,26 +78,26 @@ public class ASTEnumerator extends ASTNode
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTEnumerator#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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 // do nothing
} }

View file

@ -17,7 +17,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification; import org.eclipse.cdt.core.parser.ast.IASTExceptionSpecification;
import org.eclipse.cdt.core.parser.ast.IASTTypeId; import org.eclipse.cdt.core.parser.ast.IASTTypeId;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -48,21 +47,21 @@ public class ASTExceptionSpecification implements IASTExceptionSpecification
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 )
{ {
} }
} }

View file

@ -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.IASTField;
import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -63,7 +62,7 @@ public class ASTField extends ASTVariable implements IASTField
return visibility; return visibility;
} }
public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager ) public void acceptElement( ISourceElementRequestor requestor )
{ {
try 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 )
{ {
} }

View file

@ -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.IASTQualifiedNameElement;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplate; 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.ASTQualifiedNamedElement;
/** /**
@ -154,7 +153,7 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -172,7 +171,7 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -187,7 +186,7 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTExpression;
import org.eclipse.cdt.core.parser.ast.IASTInitializerClause; import org.eclipse.cdt.core.parser.ast.IASTInitializerClause;
import org.eclipse.cdt.core.parser.ast.IASTVariable; 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; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
/** /**
@ -61,21 +60,21 @@ public class ASTInitializerClause implements IASTInitializerClause {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification; import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -70,14 +69,14 @@ public class ASTLinkageSpecification
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -92,7 +91,7 @@ public class ASTLinkageSpecification
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTQualifiedNameElement;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplate; 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.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; 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 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 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 try
{ {

View file

@ -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.IASTNamespaceAlias;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -57,21 +56,21 @@ public class ASTNamespaceAlias extends ASTDeclaration implements IASTNamespaceAl
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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)
{ {
} }

View file

@ -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.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition; import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
import org.eclipse.cdt.core.parser.ast.IASTScope; 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; import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement;
/** /**
@ -80,13 +79,13 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -100,7 +99,7 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.core.parser.ast.quick;
import java.util.Iterator; import java.util.Iterator;
import org.eclipse.cdt.core.parser.ISourceElementRequestor; 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.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
@ -47,28 +46,28 @@ public class ASTNewDescriptor implements IASTNewExpressionDescriptor {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTExpression.IASTNewExpressionDescriptor#freeReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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() {
} }
} }

View file

@ -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.ASTNotImplementedException;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -141,7 +140,7 @@ public class ASTSimpleTypeSpecifier extends ASTNode implements IASTSimpleTypeSpe
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier#releaseReferences(org.eclipse.cdt.core.parser.ast.IReferenceManager) * @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 // DO NOTHING
} }
} }

View file

@ -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.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTScope; import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
/** /**
@ -85,14 +84,14 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -107,7 +106,7 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration; import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation; import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -66,14 +65,14 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {
@ -89,7 +88,7 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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 try
{ {

View file

@ -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.IASTOffsetableNamedElement;
import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter; import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/** /**
* @author jcamelon * @author jcamelon
@ -100,18 +99,18 @@ public class ASTTemplateParameter implements IASTTemplateParameter, IASTOffsetab
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor) * @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) /* (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) * @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)

Some files were not shown because too many files have changed in this diff Show more