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

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

View file

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

View file

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

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.IParserExtension;
import org.eclipse.cdt.core.parser.extension.IParserExtensionFactory;
import org.eclipse.cdt.internal.core.parser.CompleteParser;
import org.eclipse.cdt.internal.core.parser.CompletionParser;
import org.eclipse.cdt.internal.core.parser.Parser;
import org.eclipse.cdt.internal.core.parser.ParserExtensionFactory;
import org.eclipse.cdt.internal.core.parser.QuickParseCallback;
import org.eclipse.cdt.internal.core.parser.QuickParser;
import org.eclipse.cdt.internal.core.parser.SelectionParser;
import org.eclipse.cdt.internal.core.parser.StructuralParseCallback;
import org.eclipse.cdt.internal.core.parser.StructuralParser;
import org.eclipse.cdt.internal.core.parser.ast.complete.CompleteParseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.expression.ExpressionParseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.quick.QuickParseASTFactory;
@ -70,16 +66,7 @@ public class ParserFactory {
ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode );
ISourceElementRequestor ourCallback = (( callback == null) ? new NullSourceElementRequestor() : callback );
IParserExtension extension = extensionFactory.createParserExtension();
if( ourMode == ParserMode.COMPLETE_PARSE)
return new CompleteParser( scanner, ourCallback, language, logService, extension);
else if( ourMode == ParserMode.STRUCTURAL_PARSE )
return new StructuralParser( scanner, ourCallback, language, logService, extension );
else if( ourMode == ParserMode.COMPLETION_PARSE )
return new CompletionParser( scanner, ourCallback, language, logService, extension );
else if (ourMode == ParserMode.SELECTION_PARSE )
return new SelectionParser( scanner, ourCallback, language, logService, extension );
else
return new QuickParser( scanner, ourCallback, language, logService, extension );
return new Parser( scanner, ourMode, ourCallback, language, logService, extension );
}
/**

View file

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

View file

@ -272,7 +272,4 @@ public interface IASTFactory
public void constructExpressions( boolean flag );
public IReferenceManager getReferenceManager();
}

View file

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

View file

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

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

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

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

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

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

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

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

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

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

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

View file

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

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

View file

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

View file

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

View file

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

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

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

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

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

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

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

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

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

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

View file

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

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

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

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

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

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

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

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

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

View file

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

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

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

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

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

View file

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

View file

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

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

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

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

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

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

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

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

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

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

View file

@ -17,7 +17,6 @@ import java.util.List;
import org.eclipse.cdt.core.parser.ISourceElementRequestor;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/**
* @author jcamelon
@ -42,13 +41,13 @@ public class ASTCompilationUnit extends ASTNode implements IASTCompilationUnit,
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#accept(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/
public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager)
public void acceptElement(ISourceElementRequestor requestor)
{
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enter(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/
public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager)
public void enterScope(ISourceElementRequestor requestor)
{
try
{
@ -63,7 +62,7 @@ public class ASTCompilationUnit extends ASTNode implements IASTCompilationUnit,
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exit(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/
public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager)
public void exitScope(ISourceElementRequestor requestor)
{
try
{

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

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

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

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

View file

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

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

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

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

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

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.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTTemplate;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
import org.eclipse.cdt.internal.core.parser.ast.ASTQualifiedNamedElement;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
/**
@ -169,7 +168,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod
*/
public void acceptElement( ISourceElementRequestor requestor, IReferenceManager manager )
public void acceptElement( ISourceElementRequestor requestor )
{
try
{
@ -184,7 +183,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod
}
}
public void enterScope( ISourceElementRequestor requestor, IReferenceManager manager )
public void enterScope( ISourceElementRequestor requestor )
{
try
{
@ -196,7 +195,7 @@ public class ASTMethod extends ASTFunction implements IASTMethod
}
}
public void exitScope( ISourceElementRequestor requestor, IReferenceManager manager )
public void exitScope( ISourceElementRequestor requestor )
{
try
{

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

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

View file

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

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

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

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

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.IASTParameterDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTTemplateParameter;
import org.eclipse.cdt.core.parser.ast.IReferenceManager;
/**
* @author jcamelon
@ -100,18 +99,18 @@ public class ASTTemplateParameter implements IASTTemplateParameter, IASTOffsetab
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#acceptElement(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/
public void acceptElement(ISourceElementRequestor requestor, IReferenceManager manager) {
public void acceptElement(ISourceElementRequestor requestor) {
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#enterScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/
public void enterScope(ISourceElementRequestor requestor, IReferenceManager manager) {
public void enterScope(ISourceElementRequestor requestor) {
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate#exitScope(org.eclipse.cdt.core.parser.ISourceElementRequestor)
*/
public void exitScope(ISourceElementRequestor requestor, IReferenceManager manager) {
public void exitScope(ISourceElementRequestor requestor) {
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind[], org.eclipse.cdt.core.parser.ast.IASTNode)

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