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

Added initial code assist/parser interface.

This commit is contained in:
John Camelon 2003-11-03 14:17:15 +00:00
parent 1a068f661e
commit 83382d0514
44 changed files with 410 additions and 2 deletions

View file

@ -1,3 +1,6 @@
2003-11-03 John Camelon
Added in preliminary interface for code completion mode.
2003-10-28 Andrew Niefer
Fixed Bug 44925 : Search: Elaborated type specifier
Patially fixed Bug 44510 : C/C++ Search gives wrong results

View file

@ -10,7 +10,9 @@
***********************************************************************/
package org.eclipse.cdt.core.parser;
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;
@ -31,6 +33,20 @@ public interface IParser {
*/
public boolean parse();
/**
* @param offset offset in the input file where code completion is being requested for
* @return an IASTCompletionConstruct that provides a mechanism for determining C/C++ code completion contributions
*/
public IASTCompletionNode parse( int offset );
/**
*
* @param startingOffset
* @param endingOffset
* @return
*/
public IASTNode parse( int startingOffset, int endingOffset );
/**
* Request a parse from a pre-configured parser to parse an expression.

View file

@ -0,0 +1,41 @@
/**********************************************************************
* Copyright (c) 2002,2003 Rational Software Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.core.parser.ast;
import org.eclipse.cdt.core.parser.Enum;
/**
* @author jcamelon
*
*/
public interface IASTCompletionNode {
public static class CompletionKind extends Enum
{
public static final CompletionKind TYPE = new CompletionKind( 0 );
public static final CompletionKind DOT_MEMBER = new CompletionKind( 1 );
public static final CompletionKind ARROW_MEMBER = new CompletionKind( 2 );
public static final CompletionKind QUALIFIEDNAME_MEMBER = new CompletionKind( 3 );
//TODO MORE TO COME
/**
* @param enumValue
*/
protected CompletionKind(int enumValue) {
super(enumValue);
}
}
public CompletionKind getCompletionKind();
public IASTNode getCompletionContext();
public String getCompletionPrefix();
}

View file

@ -0,0 +1,55 @@
/**********************************************************************
* Copyright (c) 2002,2003 Rational Software Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.core.parser.ast;
import java.util.Iterator;
import org.eclipse.cdt.core.parser.Enum;
/**
* @author jcamelon
*
*/
public interface IASTNode {
public static class LookupKind extends Enum {
public static final LookupKind ALL = new LookupKind( 0 );
public static final LookupKind STRUCTURES = new LookupKind( 1 );
public static final LookupKind FUNCTIONS = new LookupKind( 2 );
public static final LookupKind LOCAL_VARIABLES = new LookupKind( 3 );
public static final LookupKind METHODS = new LookupKind( 4 );
public static final LookupKind FIELDS = new LookupKind( 5 );
public static final LookupKind NAMESPACES = new LookupKind( 6 );
/**
* @param enumValue
*/
protected LookupKind(int enumValue) {
super(enumValue);
// TODO Auto-generated constructor stub
}
}
public static class InvalidLookupKind extends Exception
{
}
public static interface LookupResult
{
public String getPrefix();
public Iterator getNodes();
public Iterator getKeywords();
}
public LookupResult lookup( String prefix, LookupKind kind );
}

View file

@ -14,7 +14,7 @@ package org.eclipse.cdt.core.parser.ast;
* @author jcamelon
*
*/
public interface IASTScopedElement
public interface IASTScopedElement extends IASTNode
{
IASTScope getOwnerScope();
}

View file

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

View file

@ -37,6 +37,7 @@ import org.eclipse.cdt.core.parser.ast.IASTArrayModifier;
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTCodeScope;
import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
import org.eclipse.cdt.core.parser.ast.IASTCompletionNode;
import org.eclipse.cdt.core.parser.ast.IASTDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTDesignator;
import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
@ -46,6 +47,7 @@ import org.eclipse.cdt.core.parser.ast.IASTFactory;
import org.eclipse.cdt.core.parser.ast.IASTInitializerClause;
import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification;
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
import org.eclipse.cdt.core.parser.ast.IASTNode;
import org.eclipse.cdt.core.parser.ast.IASTOffsetableElement;
import org.eclipse.cdt.core.parser.ast.IASTScope;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier;
@ -5271,4 +5273,19 @@ public class Parser implements IParser
return firstErrorOffset;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.IParser#parse(int)
*/
public IASTCompletionNode parse(int offset) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.IParser#parse(int, int)
*/
public IASTNode parse(int startingOffset, int endingOffset) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -95,4 +95,11 @@ public class ASTASMDefinition extends ASTAnonymousDeclaration implements IASTASM
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)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -117,4 +117,12 @@ public class ASTAbstractTypeSpecifierDeclaration
{
return offsets.getEndingOffset();
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -257,4 +257,11 @@ public class ASTClassSpecifier extends ASTScope implements IASTClassSpecifier
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -72,4 +72,12 @@ public class ASTCodeScope extends ASTScope implements IASTCodeScope {
return ownerCodeScope;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -64,4 +64,12 @@ public class ASTCompilationUnit
/* do nothing */
}
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -168,4 +168,11 @@ public class ASTElaboratedTypeSpecifier extends ASTSymbol implements IASTElabora
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -155,4 +155,12 @@ public class ASTEnumerationSpecifier
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -138,4 +138,11 @@ public class ASTEnumerator extends ASTSymbol implements IASTEnumerator
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -318,4 +318,13 @@ public class ASTFunction extends ASTScope implements IASTFunction
{
return hasFunctionTryBlock;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -112,4 +112,11 @@ public class ASTLinkageSpecification extends ASTAnonymousDeclaration implements
/* do nothing */
}
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -147,4 +147,11 @@ public class ASTNamespaceAlias extends ASTSymbol implements IASTNamespaceAlias
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -158,4 +158,12 @@ public class ASTNamespaceDefinition
{
namedOffsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -193,5 +193,12 @@ public class ASTParameterDeclaration extends ASTSymbol implements IASTParameterD
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -148,4 +148,12 @@ public class ASTSimpleTypeSpecifier implements IASTSimpleTypeSpecifier
return symbol.getTypeInfo().checkBit( TypeInfo.isImaginary );
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -121,4 +121,11 @@ public class ASTTemplateDeclaration implements IASTTemplateDeclaration
{
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -103,4 +103,11 @@ public class ASTTemplateInstantiation implements IASTTemplateInstantiation
{
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -103,4 +103,11 @@ public class ASTTemplateSpecialization implements IASTTemplateSpecialization
{
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -166,5 +166,13 @@ public class ASTTypedef extends ASTSymbol implements IASTTypedefDeclaration
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -127,4 +127,11 @@ public class ASTUsingDeclaration implements IASTUsingDeclaration
{
return declaration;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -121,4 +121,12 @@ public class ASTUsingDirective extends ASTAnonymousDeclaration implements IASTUs
{
return namespace;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -242,4 +242,11 @@ public class ASTVariable extends ASTSymbol implements IASTVariable
{
return constructorExpression;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -97,4 +97,12 @@ public class ASTASMDefinition
{
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -115,4 +115,12 @@ public class ASTAbstractTypeSpecifierDeclaration
{
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -155,4 +155,11 @@ public class ASTElaboratedTypeSpecifier implements IASTElaboratedTypeSpecifier
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -280,6 +280,13 @@ public class ASTFunction extends ASTDeclaration implements IASTFunction
{
return hasFunctionTryBlock;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -126,4 +126,12 @@ public class ASTLinkageSpecification
}
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -145,4 +145,11 @@ public class ASTNamespaceAlias extends ASTDeclaration implements IASTNamespaceAl
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -159,4 +159,11 @@ public class ASTNamespaceDefinition extends ASTDeclaration implements IASTNamesp
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -34,5 +34,12 @@ public class ASTScopedTypeSpecifier extends ASTQualifiedNamedElement implements
{
return scope;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -192,4 +192,12 @@ public class ASTSimpleTypeSpecifier implements IASTSimpleTypeSpecifier
{
return imaginary;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -136,4 +136,12 @@ public class ASTTemplateDeclaration extends ASTDeclaration implements IASTTempla
/* do nothing */
}
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -119,4 +119,12 @@ public class ASTTemplateInstantiation extends ASTDeclaration implements IASTTemp
/* do nothing */
}
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -113,4 +113,12 @@ public class ASTTemplateSpecialization extends ASTDeclaration implements IASTTem
/* do nothing */
}
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -147,5 +147,12 @@ public class ASTTypedefDeclaration extends ASTDeclaration implements IASTTypedef
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -112,4 +112,11 @@ public class ASTUsingDeclaration
{
throw new ASTNotImplementedException();
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -104,4 +104,11 @@ public class ASTUsingDirective
{
throw new ASTNotImplementedException();
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -227,6 +227,13 @@ public class ASTVariable extends ASTDeclaration implements IASTVariable
public void setNameEndOffset(int o)
{
offsets.setNameEndOffset(o);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.parser.ast.IASTNode#lookup(java.lang.String, org.eclipse.cdt.core.parser.ast.IASTNode.LookupKind)
*/
public LookupResult lookup(String prefix, LookupKind kind) {
// TODO Auto-generated method stub
return null;
}
}