Class AssistParser

java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.parser.Parser
org.aspectj.org.eclipse.jdt.internal.codeassist.impl.AssistParser
All Implemented Interfaces:
OperatorIds, TypeIds, ConflictedParser, ParserBasicInformation
Direct Known Subclasses:
CompletionParser, SelectionParser

public abstract class AssistParser extends Parser
  • Field Details

    • assistNode

      public ASTNode assistNode
    • isOrphanCompletionNode

      public boolean isOrphanCompletionNode
    • lastModifiers

      protected int lastModifiers
    • lastModifiersStart

      protected int lastModifiersStart
    • previousToken

      protected TerminalToken previousToken
    • previousIdentifierPtr

      protected int previousIdentifierPtr
    • bracketDepth

      protected int bracketDepth
    • ElementStackIncrement

      protected static final int ElementStackIncrement
      See Also:
    • elementPtr

      protected int elementPtr
    • elementKindStack

      protected int[] elementKindStack
    • elementInfoStack

      protected int[] elementInfoStack
    • elementObjectInfoStack

      protected Object[] elementObjectInfoStack
    • previousKind

      protected int previousKind
    • previousInfo

      protected int previousInfo
    • previousObjectInfo

      protected Object previousObjectInfo
    • ASSIST_PARSER

      protected static final int ASSIST_PARSER
      See Also:
    • K_SELECTOR

      protected static final int K_SELECTOR
      See Also:
    • K_TYPE_DELIMITER

      protected static final int K_TYPE_DELIMITER
      See Also:
    • K_METHOD_DELIMITER

      protected static final int K_METHOD_DELIMITER
      See Also:
    • K_FIELD_INITIALIZER_DELIMITER

      protected static final int K_FIELD_INITIALIZER_DELIMITER
      See Also:
    • K_ATTRIBUTE_VALUE_DELIMITER

      protected static final int K_ATTRIBUTE_VALUE_DELIMITER
      See Also:
    • K_ENUM_CONSTANT_DELIMITER

      protected static final int K_ENUM_CONSTANT_DELIMITER
      See Also:
    • K_LAMBDA_EXPRESSION_DELIMITER

      protected static final int K_LAMBDA_EXPRESSION_DELIMITER
      See Also:
    • K_MODULE_INFO_DELIMITER

      protected static final int K_MODULE_INFO_DELIMITER
      See Also:
    • K_SWITCH_EXPRESSION_DELIMITTER

      protected static final int K_SWITCH_EXPRESSION_DELIMITTER
      See Also:
    • K_RECORD_PATTERN

      protected static final int K_RECORD_PATTERN
      See Also:
    • THIS_CONSTRUCTOR

      protected static final int THIS_CONSTRUCTOR
      See Also:
    • SUPER_CONSTRUCTOR

      protected static final int SUPER_CONSTRUCTOR
      See Also:
    • NO_BODY

      protected static final int NO_BODY
      See Also:
    • WITH_BODY

      protected static final int WITH_BODY
      See Also:
    • EXPRESSION_BODY

      protected static final int EXPRESSION_BODY
      See Also:
    • BLOCK_BODY

      protected static final int BLOCK_BODY
      See Also:
    • isFirst

      protected boolean isFirst
    • cursorLocation

      public int cursorLocation
    • RECOVERY_TOKENS

      protected static final TerminalToken[] RECOVERY_TOKENS
  • Constructor Details

  • Method Details

    • assistIdentifier

      public abstract char[] assistIdentifier()
    • copyState

      public void copyState(Parser from)
      Overrides:
      copyState in class Parser
    • becomeSimpleParser

      public Object becomeSimpleParser()
      The parser become a simple parser which behave like a Parser
      Returns:
      the state of the assist parser to be able to restore the assist parser state
    • restoreAssistParser

      public void restoreAssistParser(Object parserState)
      Restore the parser as an assist parser
    • bodyEnd

      public int bodyEnd(AbstractMethodDeclaration method)
    • bodyEnd

      public int bodyEnd(Initializer initializer)
    • buildInitialRecoveryState

      public RecoveredElement buildInitialRecoveryState()
      Overrides:
      buildInitialRecoveryState in class Parser
    • cookedAstPtr

      protected int cookedAstPtr()
    • consumeAnnotationTypeDeclarationHeader

      protected void consumeAnnotationTypeDeclarationHeader()
      Overrides:
      consumeAnnotationTypeDeclarationHeader in class Parser
    • consumeClassBodyDeclaration

      protected void consumeClassBodyDeclaration()
      Overrides:
      consumeClassBodyDeclaration in class Parser
    • consumeClassBodyopt

      protected void consumeClassBodyopt()
      Overrides:
      consumeClassBodyopt in class Parser
    • consumeClassHeader

      protected void consumeClassHeader()
      Overrides:
      consumeClassHeader in class Parser
    • consumeConstructorBody

      protected void consumeConstructorBody()
      Overrides:
      consumeConstructorBody in class Parser
    • consumeConstructorHeader

      protected void consumeConstructorHeader()
      Overrides:
      consumeConstructorHeader in class Parser
    • consumeEnhancedForStatementHeaderInit

      protected void consumeEnhancedForStatementHeaderInit(boolean hasModifiers)
      Overrides:
      consumeEnhancedForStatementHeaderInit in class Parser
    • consumeEnterAnonymousClassBody

      protected void consumeEnterAnonymousClassBody(boolean qualified)
      Overrides:
      consumeEnterAnonymousClassBody in class Parser
    • consumeEnterMemberValue

      protected void consumeEnterMemberValue()
      Overrides:
      consumeEnterMemberValue in class Parser
    • consumeEnumConstantHeader

      protected void consumeEnumConstantHeader()
      Overrides:
      consumeEnumConstantHeader in class Parser
    • consumeEnumConstantHeaderName

      protected void consumeEnumConstantHeaderName()
      Overrides:
      consumeEnumConstantHeaderName in class Parser
    • consumeEnumConstantWithClassBody

      protected void consumeEnumConstantWithClassBody()
      Overrides:
      consumeEnumConstantWithClassBody in class Parser
    • consumeEnumConstantNoClassBody

      protected void consumeEnumConstantNoClassBody()
      Overrides:
      consumeEnumConstantNoClassBody in class Parser
    • consumeEnumHeader

      protected void consumeEnumHeader()
      Overrides:
      consumeEnumHeader in class Parser
    • consumeExitMemberValue

      protected void consumeExitMemberValue()
      Overrides:
      consumeExitMemberValue in class Parser
    • consumeExplicitConstructorInvocation

      protected void consumeExplicitConstructorInvocation(int flag, int recFlag)
      Overrides:
      consumeExplicitConstructorInvocation in class Parser
    • triggerRecoveryUponLambdaClosure

      protected boolean triggerRecoveryUponLambdaClosure(Statement statement, boolean shouldCommit)
    • detectAssistNodeParent

      protected void detectAssistNodeParent(ASTNode parseTree)
    • replaceAssistStatement

      public Statement replaceAssistStatement(RecoveredElement top, ASTNode assistParent, int start, int end, Statement stmt)
    • assistNodeParent

      protected ASTNode assistNodeParent()
    • isAssistParser

      protected boolean isAssistParser()
      Overrides:
      isAssistParser in class Parser
    • consumeBlockStatement

      protected void consumeBlockStatement()
      Overrides:
      consumeBlockStatement in class Parser
    • consumeBlockStatements

      protected void consumeBlockStatements()
      Overrides:
      consumeBlockStatements in class Parser
    • consumeBlock

      protected void consumeBlock()
      Overrides:
      consumeBlock in class Parser
    • consumeFieldDeclaration

      protected void consumeFieldDeclaration()
      Overrides:
      consumeFieldDeclaration in class Parser
    • consumeForceNoDiet

      protected void consumeForceNoDiet()
      Overrides:
      consumeForceNoDiet in class Parser
    • consumeInterfaceHeader

      protected void consumeInterfaceHeader()
      Overrides:
      consumeInterfaceHeader in class Parser
    • consumeNestedLambda

      protected void consumeNestedLambda()
      Overrides:
      consumeNestedLambda in class Parser
    • consumeMethodBody

      protected void consumeMethodBody()
      Overrides:
      consumeMethodBody in class Parser
    • consumeMethodDeclaration

      protected void consumeMethodDeclaration(boolean isNotAbstract, boolean isDefaultMethod)
      Overrides:
      consumeMethodDeclaration in class Parser
    • consumeMethodHeader

      protected void consumeMethodHeader()
      Overrides:
      consumeMethodHeader in class Parser
    • consumeMethodInvocationName

      protected void consumeMethodInvocationName()
      Overrides:
      consumeMethodInvocationName in class Parser
    • consumeMethodInvocationNameWithTypeArguments

      protected void consumeMethodInvocationNameWithTypeArguments()
      Overrides:
      consumeMethodInvocationNameWithTypeArguments in class Parser
    • consumeMethodInvocationPrimary

      protected void consumeMethodInvocationPrimary()
      Overrides:
      consumeMethodInvocationPrimary in class Parser
    • consumeMethodInvocationPrimaryWithTypeArguments

      protected void consumeMethodInvocationPrimaryWithTypeArguments()
      Overrides:
      consumeMethodInvocationPrimaryWithTypeArguments in class Parser
    • consumeMethodInvocationSuper

      protected void consumeMethodInvocationSuper()
      Overrides:
      consumeMethodInvocationSuper in class Parser
    • consumeMethodInvocationSuperWithTypeArguments

      protected void consumeMethodInvocationSuperWithTypeArguments()
      Overrides:
      consumeMethodInvocationSuperWithTypeArguments in class Parser
    • consumeModuleHeader

      protected void consumeModuleHeader()
      Overrides:
      consumeModuleHeader in class Parser
    • consumeModuleDeclaration

      protected void consumeModuleDeclaration()
      Overrides:
      consumeModuleDeclaration in class Parser
    • consumeNestedMethod

      protected void consumeNestedMethod()
      Overrides:
      consumeNestedMethod in class Parser
    • consumeOpenBlock

      protected void consumeOpenBlock()
      Overrides:
      consumeOpenBlock in class Parser
    • consumeOpenFakeBlock

      protected void consumeOpenFakeBlock()
    • consumePackageDeclarationName

      protected void consumePackageDeclarationName()
      Overrides:
      consumePackageDeclarationName in class Parser
    • consumePackageDeclarationNameWithModifiers

      protected void consumePackageDeclarationNameWithModifiers()
      Overrides:
      consumePackageDeclarationNameWithModifiers in class Parser
    • consumeRestoreDiet

      protected void consumeRestoreDiet()
      Overrides:
      consumeRestoreDiet in class Parser
    • consumeSingleModifierImportDeclarationName

      protected void consumeSingleModifierImportDeclarationName(int modifier)
      Overrides:
      consumeSingleModifierImportDeclarationName in class Parser
    • consumeSinglePkgName

      protected void consumeSinglePkgName()
      Overrides:
      consumeSinglePkgName in class Parser
    • consumeSingleTargetModuleName

      protected void consumeSingleTargetModuleName()
      Overrides:
      consumeSingleTargetModuleName in class Parser
    • consumeSingleRequiresModuleName

      protected void consumeSingleRequiresModuleName()
      Overrides:
      consumeSingleRequiresModuleName in class Parser
    • consumeSingleTypeImportDeclarationName

      protected void consumeSingleTypeImportDeclarationName()
      Overrides:
      consumeSingleTypeImportDeclarationName in class Parser
    • consumeStaticImportOnDemandDeclarationName

      protected void consumeStaticImportOnDemandDeclarationName()
      Overrides:
      consumeStaticImportOnDemandDeclarationName in class Parser
    • consumeStaticInitializer

      protected void consumeStaticInitializer()
      Overrides:
      consumeStaticInitializer in class Parser
    • consumeStaticOnly

      protected void consumeStaticOnly()
      Overrides:
      consumeStaticOnly in class Parser
    • consumeToken

      protected void consumeToken(TerminalToken token)
      Overrides:
      consumeToken in class Parser
    • consumeTypeImportOnDemandDeclarationName

      protected void consumeTypeImportOnDemandDeclarationName()
      Overrides:
      consumeTypeImportOnDemandDeclarationName in class Parser
    • createAssistPackageVisibilityReference

      public abstract ImportReference createAssistPackageVisibilityReference(char[][] tokens, long[] positions)
    • createAssistImportReference

      public abstract ImportReference createAssistImportReference(char[][] tokens, long[] positions, int mod)
    • createAssistModuleReference

      public abstract ModuleReference createAssistModuleReference(int index)
    • createAssistPackageReference

      public abstract ImportReference createAssistPackageReference(char[][] tokens, long[] positions)
    • createQualifiedAssistNameReference

      public abstract NameReference createQualifiedAssistNameReference(char[][] previousIdentifiers, char[] assistName, long[] positions)
    • createQualifiedAssistTypeReference

      public abstract TypeReference createQualifiedAssistTypeReference(char[][] previousIdentifiers, char[] assistName, long[] positions)
    • createParameterizedQualifiedAssistTypeReference

      public abstract TypeReference createParameterizedQualifiedAssistTypeReference(char[][] previousIdentifiers, TypeReference[][] typeArguments, char[] asistIdentifier, TypeReference[] assistTypeArguments, long[] positions)
    • createSingleAssistNameReference

      public abstract NameReference createSingleAssistNameReference(char[] assistName, long position)
    • createSingleAssistTypeReference

      public abstract TypeReference createSingleAssistTypeReference(char[] assistName, long position)
    • createParameterizedSingleAssistTypeReference

      public abstract TypeReference createParameterizedSingleAssistTypeReference(TypeReference[] typeArguments, char[] assistName, long position)
    • createAssistModuleDeclaration

      public abstract ModuleDeclaration createAssistModuleDeclaration(CompilationResult compilationResult, char[][] tokens, long[] positions)
    • flushAssistState

      public void flushAssistState()
    • flushElementStack

      protected void flushElementStack()
    • getTypeReference

      protected TypeReference getTypeReference(int dim)
      Overrides:
      getTypeReference in class Parser
    • getAssistTypeReferenceForGenericType

      protected TypeReference getAssistTypeReferenceForGenericType(int dim, int identifierLength, int numberOfIdentifiers)
    • getUnspecifiedReferenceOptimized

      protected NameReference getUnspecifiedReferenceOptimized()
      Overrides:
      getUnspecifiedReferenceOptimized in class Parser
    • goForBlockStatementsopt

      public void goForBlockStatementsopt()
      Overrides:
      goForBlockStatementsopt in class Parser
    • goForHeaders

      public void goForHeaders()
      Overrides:
      goForHeaders in class Parser
    • goForCompilationUnit

      public void goForCompilationUnit()
      Overrides:
      goForCompilationUnit in class Parser
    • goForBlockStatementsOrCatchHeader

      public void goForBlockStatementsOrCatchHeader()
      Overrides:
      goForBlockStatementsOrCatchHeader in class Parser
    • identifierSubSet

      protected char[][] identifierSubSet(int subsetLength)
    • indexOfAssistIdentifier

      protected int indexOfAssistIdentifier()
    • indexOfAssistIdentifier

      protected int indexOfAssistIdentifier(boolean useGenericsStack)
    • initialize

      public void initialize()
      Overrides:
      initialize in class Parser
    • initialize

      public void initialize(boolean parsingCompilationUnit)
      Overrides:
      initialize in class Parser
    • initializeScanner

      public abstract void initializeScanner()
      Overrides:
      initializeScanner in class Parser
    • isIndirectlyInsideFieldInitialization

      protected boolean isIndirectlyInsideFieldInitialization()
    • isIndirectlyInsideEnumConstantnitialization

      protected boolean isIndirectlyInsideEnumConstantnitialization()
    • isIndirectlyInsideMethod

      protected boolean isIndirectlyInsideMethod()
    • isIndirectlyInsideLambdaExpression

      protected boolean isIndirectlyInsideLambdaExpression()
      Overrides:
      isIndirectlyInsideLambdaExpression in class Parser
    • isIndirectlyInsideLambdaBlock

      protected boolean isIndirectlyInsideLambdaBlock()
    • isIndirectlyInsideType

      protected boolean isIndirectlyInsideType()
    • isInsideAttributeValue

      protected boolean isInsideAttributeValue()
    • isInsideFieldInitialization

      protected boolean isInsideFieldInitialization()
    • isInsideEnumConstantnitialization

      protected boolean isInsideEnumConstantnitialization()
    • isInsideModuleInfo

      protected boolean isInsideModuleInfo()
    • isInsideMethod

      protected boolean isInsideMethod()
    • isInsideType

      protected boolean isInsideType()
    • lastIndexOfElement

      protected int lastIndexOfElement(int kind)
    • parseBlockStatements

      public void parseBlockStatements(AbstractMethodDeclaration md, CompilationUnitDeclaration unit)
      Parse the block statements inside the given method declaration and try to complete at the cursor location.
    • parseBlockStatements

      public void parseBlockStatements(ConstructorDeclaration cd, CompilationUnitDeclaration unit)
      Parse the block statements inside the given constructor declaration and try to complete at the cursor location.
    • parseBlockStatements

      public void parseBlockStatements(Initializer initializer, TypeDeclaration type, CompilationUnitDeclaration unit)
      Parse the block statements inside the given initializer and try to complete at the cursor location.
    • parseBlockStatements

      public void parseBlockStatements(MethodDeclaration md, CompilationUnitDeclaration unit)
      Parse the block statements inside the given method declaration and try to complete at the cursor location.
    • popElement

      protected void popElement(int kind)
    • popUntilElement

      protected void popUntilElement(int kind)
    • prepareForBlockStatements

      protected void prepareForBlockStatements()
      Overrides:
      prepareForBlockStatements in class Parser
    • prepareForHeaders

      protected void prepareForHeaders()
    • requireExtendedRecovery

      public boolean requireExtendedRecovery()
    • pushOnElementStack

      protected void pushOnElementStack(int kind)
    • pushOnElementStack

      protected void pushOnElementStack(int kind, int info)
    • pushOnElementStack

      protected void pushOnElementStack(int kind, int info, Object objectInfo)
    • recoveryExitFromVariable

      public void recoveryExitFromVariable()
      Overrides:
      recoveryExitFromVariable in class Parser
    • recoveryTokenCheck

      public void recoveryTokenCheck()
      Overrides:
      recoveryTokenCheck in class Parser
    • reset

      public void reset()
    • assistNodeNeedsStacking

      protected boolean assistNodeNeedsStacking()
    • shouldStackAssistNode

      protected void shouldStackAssistNode()
    • getNextToken

      protected TerminalToken getNextToken()
    • createSnapShotParser

      protected abstract AssistParser createSnapShotParser()
    • fallBackToSpringForward

      protected int fallBackToSpringForward(Statement unused)
    • resumeAfterRecovery

      protected int resumeAfterRecovery()
      Overrides:
      resumeAfterRecovery in class Parser
    • isInsideArrayInitializer

      protected boolean isInsideArrayInitializer()
    • setAssistIdentifier

      public abstract void setAssistIdentifier(char[] assistIdent)
    • topKnownElementInfo

      protected int topKnownElementInfo(int owner)
    • topKnownElementInfo

      protected int topKnownElementInfo(int owner, int offSet)
    • topKnownElementKind

      protected int topKnownElementKind(int owner)
    • topKnownElementKind

      protected int topKnownElementKind(int owner, int offSet)
    • topKnownElementObjectInfo

      protected Object topKnownElementObjectInfo(int owner, int offSet)
    • topKnownElementObjectInfo

      protected Object topKnownElementObjectInfo(int owner)
    • wrapWithExplicitConstructorCallIfNeeded

      protected ASTNode wrapWithExplicitConstructorCallIfNeeded(ASTNode ast)
      If the given ast node is inside an explicit constructor call then wrap it with a fake constructor call. Returns the wrapped completion node or the completion node itself.