Class ASTConverter
java.lang.Object
org.aspectj.org.eclipse.jdt.core.dom.ASTConverter
- Direct Known Subclasses:
AjASTConverter
Internal class for converting internal compiler ASTs into public ASTs.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ASTprotected org.aspectj.org.eclipse.jdt.core.dom.DefaultCommentMapperprotected Comment[]protected org.aspectj.org.eclipse.jdt.core.dom.DocCommentParserprotected booleanprotected org.eclipse.core.runtime.IProgressMonitorprotected Setprotected Setprotected boolean -
Constructor Summary
ConstructorsConstructorDescriptionASTConverter(Map<String, String> options, boolean resolveBindings, org.eclipse.core.runtime.IProgressMonitor monitor) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidadjustSourcePositionsForParent(Expression expression) protected voidbuildBodyDeclarations(ImplicitTypeDeclaration unnamedClass, UnnamedClass newUnnamedClass, boolean isInterface) protected voidbuildBodyDeclarations(TypeDeclaration typeDeclaration, AbstractTypeDeclaration typeDecl, boolean isInterface) protected voidbuildBodyDeclarations(TypeDeclaration expression, AnonymousClassDeclaration anonymousClassDeclaration) protected voidbuildBodyDeclarations(TypeDeclaration enumDeclaration2, EnumDeclaration enumDeclaration) protected voidbuildBodyDeclarations(TypeDeclaration typeDeclaration, RecordDeclaration recordDeclaration, boolean isInterface) protected voidcheckAndAddMultipleFieldDeclaration(FieldDeclaration[] fields, int index, List bodyDeclarations) protected voidcheckAndAddMultipleLocalDeclaration(Statement[] stmts, int index, List blockStatements) protected voidprotected voidcompleteRecord(ArrayType arrayType, ASTNode astNode) convert(boolean isInterface, AbstractMethodDeclaration methodDeclaration) convert(AllocationExpression expression) convert(AND_AND_Expression expression) convert(Annotation annotation) convert(AnnotationMethodDeclaration annotationTypeMemberDeclaration) convert(ArrayAllocationExpression expression) convert(ArrayInitializer expression) convert(ArrayReference reference) convert(AssertStatement statement) convert(Assignment expression) convert(BinaryExpression expression) convert(BreakStatement statement) convert(CaseStatement statement) convert(CastExpression expression) convert(CharLiteral expression) convert(ClassLiteralAccess expression) convert(CompilationUnitDeclaration unit, char[] source) convert(CompoundAssignment expression) convert(ConditionalExpression expression) convert(ContinueStatement statement) convert(DoStatement statement) convert(DoubleLiteral expression) convert(EitherOrMultiPattern pattern) convert(EmptyStatement statement) convert(EqualExpression expression) convert(ExplicitConstructorCall statement) convert(Expression expression) convert(ExtendedStringLiteral expression) convert(FakeDefaultLiteral fakeDefaultLiteral) convert(FalseLiteral expression) convert(FieldDeclaration enumConstant) convert(FieldReference reference) convert(FloatLiteral expression) convert(ForeachStatement statement) convert(ForStatement statement) convert(GuardedPattern pattern) convert(IfStatement statement) convert(InstanceOfExpression expression) convert(IntLiteral expression) convert(IntLiteralMinValue expression) voidconvert(Javadoc javadoc, org.aspectj.org.eclipse.jdt.core.dom.ASTConverter.IGetJavaDoc getJ, org.aspectj.org.eclipse.jdt.core.dom.ASTConverter.ISetJavaDoc setJ) voidconvert(Javadoc javadoc, BodyDeclaration bodyDeclaration) voidconvert(Javadoc javadoc, ModuleDeclaration moduleDeclaration) voidconvert(Javadoc javadoc, PackageDeclaration packageDeclaration) convert(LabeledStatement statement) convert(LambdaExpression lambda) convert(LongLiteral expression) convert(LongLiteralMinValue expression) convert(MarkerAnnotation annotation) convert(MemberValuePair memberValuePair) convert(MessageSend expression) convert(NameReference reference) convert(NormalAnnotation annotation) convert(NullLiteral expression) convert(OR_OR_Expression expression) convert(PostfixExpression expression) convert(PrefixExpression expression) convert(QualifiedAllocationExpression allocation) convert(QualifiedNameReference nameReference) convert(QualifiedSuperReference reference) convert(QualifiedThisReference reference) convert(RecordComponent component) convert(RecordPattern pattern) convert(ReferenceExpression reference) convert(ReturnStatement statement) convert(SingleMemberAnnotation annotation) convert(SingleNameReference nameReference) convert(StringLiteral expression) convert(StringLiteralConcatenation expression) convert(SwitchExpression expression) convert(SwitchStatement statement) convert(SynchronizedStatement statement) convert(TemplateExpression expression) convert(ThisReference reference) convert(ThrowStatement statement) convert(TrueLiteral expression) convert(TryStatement statement) convert(TypeDeclaration typeDeclaration) convert(TypeParameter typeParameter) convert(TypePattern pattern) convert(TypeReference typeReference) convert(UnaryExpression expression) convert(WhileStatement statement) convert(YieldStatement statement) convertImport(ImportReference importReference) convertPackage(CompilationUnitDeclaration compilationUnitDeclaration) convertToAnnotationDeclaration(TypeDeclaration typeDeclaration) protected EnumDeclarationconvertToEnumDeclaration(TypeDeclaration typeDeclaration) convertToExpression(Statement statement) protected FieldDeclarationconvertToFieldDeclaration(FieldDeclaration fieldDecl) convertToModuleDeclaration(ModuleDeclaration moduleDeclaration) convertToParenthesizedExpression(Expression expression) convertToRecord(ASTNode[] nodes) protected SingleVariableDeclarationconvertToSingleVariableDeclaration(LocalDeclaration localDeclaration) protected VariableDeclarationExpressionconvertToVariableDeclarationExpression(LocalDeclaration localDeclaration) protected VariableDeclarationFragmentconvertToVariableDeclarationFragment(FieldDeclaration fieldDeclaration) protected VariableDeclarationFragmentconvertToVariableDeclarationFragment(LocalDeclaration localDeclaration) protected VariableDeclarationStatementconvertToVariableDeclarationStatement(LocalDeclaration localDeclaration) convertType(TypeReference typeReference) protected CommentcreateComment(int[] positions) protected StatementcreateFakeEmptyStatement(Statement statement) protected ExpressioncreateFakeNullLiteral(Expression expression) Warning: Callers of this method must ensure that the fake literal node is not recorded inrecordNodes(ASTNode, org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode), see bug 403444!protected PatterncreateFakeNullPattern(Pattern pattern) Warning: Callers of this method must ensure that the fake pattern node is not recorded inrecordNodes(ASTNode, org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode),similar to fake NullLiteralstatic ASTConvertergetASTConverter(Map options, boolean resolveBindings, org.eclipse.core.runtime.IProgressMonitor monitor) getImportName(ImportReference importReference) protected InfixExpression.OperatorgetOperatorFor(int operatorID) protected PrimitiveType.CodegetPrimitiveTypeCode(char[] name) protected booleanisPrimitiveType(char[] name) protected voidrecordName(Name name, ASTNode compilerNode) protected voidrecordNodes(ASTNode node, ASTNode oldASTNode) protected voidrecordNodes(Javadoc javadoc, TagElement tagElement) protected voidprotected voidrecordPendingThisExpressionScopeResolution(ThisExpression thisExpression) protected voidRemove potential trailing comment by settings the source end on the closing parenthesisprotected intretrieveClosingAngleBracketPosition(int start) This method is used to retrieve the end position of the block.protected voidretrieveColonPosition(ASTNode node) This method is used to set the right end position for expression statement.protected voidretrieveDimensionAndSetPositions(int start, int end, Dimension dim) protected intretrieveEllipsisStartPosition(int start, int end) This method is used to retrieve the start position of the Ellipsisprotected intretrieveEndBlockPosition(int start, int end) This method is used to retrieve the end position of the block.protected int[]retrieveEndOfElementTypeNamePosition(int start, int end) This method is used to retrieve the start and end position of a name or primitive type token.protected intretrieveEndOfPotentialExtendedDimensions(int initializerEnd, int nameEnd, int end) This method is used to retrieve position before the next comma or semi-colon.protected intretrieveEndOfRightParenthesisPosition(int start, int end) This method is used to retrieve the position after the right parenthesis.protected voidretrieveIdentifierAndSetPositions(int start, int end, Name name) protected intretrieveIdentifierEndPosition(int start, int end) This method is used to retrieve the start position of the block.protected voidretrieveInitAndSetPositions(int start, int end, Name name) retrieves the start and and of new and set the positions of the nameprotected intretrieveProperRightBracketPosition(int bracketNumber, int start) protected intretrieveProperRightBracketPosition(int bracketNumber, int start, int end) protected intretrieveRightBrace(int start, int end) This method is used to retrieve position before the next right brace or semi-colon.protected intretrieveRightBraceOrSemiColonPosition(int start, int end) This method is used to retrieve position before the next right brace or semi-colon.protected intprotected intretrieveStartBlockPosition(int start, int end) This method is used to retrieve the start position of the block.protected intretrieveStartingCatchPosition(int start, int end) This method is used to retrieve the starting position of the catch keyword.protected voidsetAnnotations(ModuleDeclaration moduleDecl, ModuleDeclaration moduleDeclaration) voidprotected voidsetExtraAnnotatedDimensions(int start, int end, TypeReference type, List extraAnnotatedDimensions, int extraDimension) protected voidsetModifiers(List modifiers, Annotation[] annotations, int modifiersEnd) protected voidsetModifiers(AnnotationTypeDeclaration typeDecl, TypeDeclaration typeDeclaration) protected voidsetModifiers(AnnotationTypeMemberDeclaration annotationTypeMemberDecl, AnnotationMethodDeclaration annotationTypeMemberDeclaration) protected voidsetModifiers(BodyDeclaration bodyDeclaration, Annotation[] annotations, int modifiersEnd) protected voidsetModifiers(EnumConstantDeclaration enumConstantDeclaration, FieldDeclaration fieldDeclaration) protected voidsetModifiers(EnumDeclaration enumDeclaration, TypeDeclaration enumDeclaration2) protected voidsetModifiers(FieldDeclaration fieldDeclaration, FieldDeclaration fieldDecl) protected voidsetModifiers(Initializer initializer, Initializer oldInitializer) protected voidsetModifiers(MethodDeclaration methodDecl, AbstractMethodDeclaration methodDeclaration) protected voidsetModifiers(RecordDeclaration recordDeclaration, TypeDeclaration recordDeclaration2) protected voidsetModifiers(SingleVariableDeclaration variableDecl, Argument argument) protected voidsetModifiers(SingleVariableDeclaration variableDecl, LocalDeclaration localDeclaration) protected voidsetModifiers(SingleVariableDeclaration variableDecl, RecordComponent component) protected voidsetModifiers(TypeDeclaration typeDecl, TypeDeclaration typeDeclaration) protected voidsetModifiers(VariableDeclarationExpression variableDeclarationExpression, LocalDeclaration localDeclaration) protected voidsetModifiers(VariableDeclarationStatement variableDeclarationStatement, LocalDeclaration localDeclaration) protected QualifiedNamesetQualifiedNameNameAndSourceRanges(char[][] typeName, long[] positions, int endingIndex, TypeReference node) protected QualifiedNamesetQualifiedNameNameAndSourceRanges(char[][] typeName, long[] positions, ASTNode node) protected voidsetTypeForField(FieldDeclaration fieldDeclaration, Type type, int extraDimension) protected voidsetTypeForMethodDeclaration(AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration, Type type, int extraDimension) protected voidsetTypeForMethodDeclaration(MethodDeclaration methodDeclaration, Type type, int extraDimension) protected voidsetTypeForSingleVariableDeclaration(SingleVariableDeclaration singleVariableDeclaration, Type type, int extraDimension) protected voidsetTypeForVariableDeclarationExpression(VariableDeclarationExpression variableDeclarationExpression, Type type, int extraDimension) protected voidsetTypeForVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, Type type, int extraDimension) protected voidsetTypeNameForAnnotation(Annotation compilerAnnotation, Annotation annotation) protected voidupdateInnerPositions(Type type, int dimensions)
-
Field Details
-
ast
-
commentsTable
-
docParser
protected org.aspectj.org.eclipse.jdt.core.dom.DocCommentParser docParser -
insideComments
protected boolean insideComments -
monitor
protected org.eclipse.core.runtime.IProgressMonitor monitor -
pendingNameScopeResolution
-
pendingThisExpressionScopeResolution
-
resolveBindings
protected boolean resolveBindings -
commentMapper
protected org.aspectj.org.eclipse.jdt.core.dom.DefaultCommentMapper commentMapper
-
-
Constructor Details
-
ASTConverter
-
-
Method Details
-
getASTConverter
public static ASTConverter getASTConverter(Map options, boolean resolveBindings, org.eclipse.core.runtime.IProgressMonitor monitor) -
adjustSourcePositionsForParent
-
buildBodyDeclarations
protected void buildBodyDeclarations(TypeDeclaration typeDeclaration, AbstractTypeDeclaration typeDecl, boolean isInterface) -
buildBodyDeclarations
protected void buildBodyDeclarations(ImplicitTypeDeclaration unnamedClass, UnnamedClass newUnnamedClass, boolean isInterface) -
buildBodyDeclarations
protected void buildBodyDeclarations(TypeDeclaration typeDeclaration, RecordDeclaration recordDeclaration, boolean isInterface) -
buildBodyDeclarations
protected void buildBodyDeclarations(TypeDeclaration enumDeclaration2, EnumDeclaration enumDeclaration) -
buildBodyDeclarations
protected void buildBodyDeclarations(TypeDeclaration expression, AnonymousClassDeclaration anonymousClassDeclaration) -
checkAndAddMultipleFieldDeclaration
protected void checkAndAddMultipleFieldDeclaration(FieldDeclaration[] fields, int index, List bodyDeclarations) -
checkAndAddMultipleLocalDeclaration
-
checkCanceled
protected void checkCanceled() -
completeRecord
-
convert
-
convert
-
convert
-
convertToAnnotationDeclaration
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convertToRecord
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convertToPatternInstanceOfExpression
public PatternInstanceofExpression convertToPatternInstanceOfExpression(InstanceOfExpression expression) -
convert
-
convert
-
convert
public void convert(Javadoc javadoc, org.aspectj.org.eclipse.jdt.core.dom.ASTConverter.IGetJavaDoc getJ, org.aspectj.org.eclipse.jdt.core.dom.ASTConverter.ISetJavaDoc setJ) -
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convert
-
convertImport
-
getImportName
-
convertPackage
-
convertToEnumDeclaration
-
convertToExpression
-
convertToFieldDeclaration
-
convertToModuleDeclaration
-
convertToParenthesizedExpression
-
convertToVariableDeclarationExpression
protected VariableDeclarationExpression convertToVariableDeclarationExpression(LocalDeclaration localDeclaration) -
convertToSingleVariableDeclaration
protected SingleVariableDeclaration convertToSingleVariableDeclaration(LocalDeclaration localDeclaration) -
convertToVariableDeclarationFragment
protected VariableDeclarationFragment convertToVariableDeclarationFragment(FieldDeclaration fieldDeclaration) -
convertToVariableDeclarationFragment
protected VariableDeclarationFragment convertToVariableDeclarationFragment(LocalDeclaration localDeclaration) -
setExtraAnnotatedDimensions
protected void setExtraAnnotatedDimensions(int start, int end, TypeReference type, List extraAnnotatedDimensions, int extraDimension) -
convertToVariableDeclarationStatement
protected VariableDeclarationStatement convertToVariableDeclarationStatement(LocalDeclaration localDeclaration) -
convertType
-
createComment
-
createFakeEmptyStatement
-
createFakeNullLiteral
Warning: Callers of this method must ensure that the fake literal node is not recorded inrecordNodes(ASTNode, org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode), see bug 403444! -
createFakeNullPattern
Warning: Callers of this method must ensure that the fake pattern node is not recorded inrecordNodes(ASTNode, org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode),similar to fake NullLiteral -
getOperatorFor
-
getPrimitiveTypeCode
-
isPrimitiveType
protected boolean isPrimitiveType(char[] name) -
recordName
-
recordNodes
-
recordNodes
-
recordPendingNameScopeResolution
-
recordPendingThisExpressionScopeResolution
-
removeLeadingAndTrailingCommentsFromLiteral
Remove potential trailing comment by settings the source end on the closing parenthesis -
retrieveClosingAngleBracketPosition
protected int retrieveClosingAngleBracketPosition(int start) This method is used to retrieve the end position of the block.- Returns:
- the dimension found, -1 if none
-
retrieveColonPosition
This method is used to set the right end position for expression statement. The actual AST nodes don't include the trailing semicolon. This method fixes the length of the corresponding node. -
retrieveEllipsisStartPosition
protected int retrieveEllipsisStartPosition(int start, int end) This method is used to retrieve the start position of the Ellipsis -
retrieveSemiColonPosition
-
retrieveEndOfElementTypeNamePosition
protected int[] retrieveEndOfElementTypeNamePosition(int start, int end) This method is used to retrieve the start and end position of a name or primitive type token.- Returns:
- int[] a single dimensional array, with two elements, for the start and end positions of the name respectively
-
retrieveEndOfRightParenthesisPosition
protected int retrieveEndOfRightParenthesisPosition(int start, int end) This method is used to retrieve the position after the right parenthesis.- Returns:
- int the position found
-
retrieveDimensionAndSetPositions
-
retrieveIdentifierAndSetPositions
-
retrieveIdentifierEndPosition
protected int retrieveIdentifierEndPosition(int start, int end) This method is used to retrieve the start position of the block.- Returns:
- int the dimension found, -1 if none
-
retrieveInitAndSetPositions
retrieves the start and and of new and set the positions of the name- Parameters:
start- position to start searchend- position to end searchname- object where these positions will be updated.
-
retrieveEndOfPotentialExtendedDimensions
protected int retrieveEndOfPotentialExtendedDimensions(int initializerEnd, int nameEnd, int end) This method is used to retrieve position before the next comma or semi-colon.- Parameters:
initializerEnd- the given initializer end exclusive- Returns:
- int the position found.
-
retrieveProperRightBracketPosition
protected int retrieveProperRightBracketPosition(int bracketNumber, int start, int end) -
retrieveProperRightBracketPosition
protected int retrieveProperRightBracketPosition(int bracketNumber, int start) -
retrieveRightBraceOrSemiColonPosition
protected int retrieveRightBraceOrSemiColonPosition(int start, int end) This method is used to retrieve position before the next right brace or semi-colon.- Returns:
- int the position found.
-
retrieveRightBrace
protected int retrieveRightBrace(int start, int end) This method is used to retrieve position before the next right brace or semi-colon.- Returns:
- int the position found.
-
retrieveStartBlockPosition
protected int retrieveStartBlockPosition(int start, int end) This method is used to retrieve the start position of the block.- Returns:
- int the dimension found, -1 if none
-
retrieveEndBlockPosition
protected int retrieveEndBlockPosition(int start, int end) This method is used to retrieve the end position of the block.- Returns:
- int the dimension found, -1 if none
-
retrieveStartingCatchPosition
protected int retrieveStartingCatchPosition(int start, int end) This method is used to retrieve the starting position of the catch keyword.- Returns:
- int the dimension found, -1 if none
-
setAST
-
setModifiers
-
setModifiers
protected void setModifiers(AnnotationTypeMemberDeclaration annotationTypeMemberDecl, AnnotationMethodDeclaration annotationTypeMemberDeclaration) -
setModifiers
protected void setModifiers(BodyDeclaration bodyDeclaration, Annotation[] annotations, int modifiersEnd) -
setModifiers
-
setModifiers
-
setModifiers
protected void setModifiers(RecordDeclaration recordDeclaration, TypeDeclaration recordDeclaration2) -
setModifiers
protected void setModifiers(EnumConstantDeclaration enumConstantDeclaration, FieldDeclaration fieldDeclaration) -
setModifiers
-
setModifiers
-
setModifiers
protected void setModifiers(MethodDeclaration methodDecl, AbstractMethodDeclaration methodDeclaration) -
setAnnotations
-
setModifiers
-
setModifiers
protected void setModifiers(SingleVariableDeclaration variableDecl, LocalDeclaration localDeclaration) -
setModifiers
- Parameters:
component- TODO: just plain copy of sM(SVD, Argument) - need to cut the flab here.
-
setModifiers
-
setModifiers
protected void setModifiers(VariableDeclarationExpression variableDeclarationExpression, LocalDeclaration localDeclaration) -
setModifiers
protected void setModifiers(VariableDeclarationStatement variableDeclarationStatement, LocalDeclaration localDeclaration) -
setQualifiedNameNameAndSourceRanges
protected QualifiedName setQualifiedNameNameAndSourceRanges(char[][] typeName, long[] positions, ASTNode node) -
setQualifiedNameNameAndSourceRanges
protected QualifiedName setQualifiedNameNameAndSourceRanges(char[][] typeName, long[] positions, int endingIndex, TypeReference node) -
setTypeNameForAnnotation
-
setTypeForField
-
setTypeForMethodDeclaration
protected void setTypeForMethodDeclaration(MethodDeclaration methodDeclaration, Type type, int extraDimension) -
setTypeForMethodDeclaration
protected void setTypeForMethodDeclaration(AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration, Type type, int extraDimension) -
setTypeForSingleVariableDeclaration
protected void setTypeForSingleVariableDeclaration(SingleVariableDeclaration singleVariableDeclaration, Type type, int extraDimension) -
setTypeForVariableDeclarationExpression
protected void setTypeForVariableDeclarationExpression(VariableDeclarationExpression variableDeclarationExpression, Type type, int extraDimension) -
setTypeForVariableDeclarationStatement
protected void setTypeForVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, Type type, int extraDimension) -
updateInnerPositions
-