Package org.eclipse.cdt.core.dom.ast
Class ASTVisitor
java.lang.Object
org.eclipse.cdt.core.dom.ast.ASTVisitor
- Direct Known Subclasses:
ASTGenericVisitor,ASTNameCollector,CASTVisitor,CPPASTVisitor
Abstract base class for all visitors to traverse AST nodes.
visit() methods implement a top-down traversal, and
leave() methods implement a bottom-up traversal.
visit() methods implement a top-down traversal, and
leave() methods implement a bottom-up traversal.
Clients may subclass.
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanPer default inactive nodes are not visited.static final intAbort the entire traversal.static final intContinue with traversing the children of this node.static final intSkip the traversal of children of this node, don't call leave on this node.booleanNormally neither ambiguous nodes nor their children are visited.booleanSet this flag to visit array modifiers.booleanSet this flag to visit attributes.booleanSet this flag to visit base specifiers off composite types.booleanSet this flag to visit capturesbooleanSet this flag to visit declarations.booleanSet this flag to visit declarators.booleanSet this flag to visit declaration specifiers.booleanSet this flag to visit decltype-specifiers.booleanSet this flag to visit designators of initializers.booleanSet this flag to visit enumerators.booleanSet this flag to visit expressions.booleanImplicit destructor names are created to mark code locations where destructors of temporaries and variables going out of scope are called, normally they are not visited, set this flag to true to visit them.booleanSometimes more than one implicit name is created for a binding, set this flag to true to visit more than one name for an implicit binding.booleanImplicit names are created to allow implicit bindings to be resolved, normally they are not visited, set this flag to true to visit them.booleanSet this flag to visit initializers.booleanSet this flag to visit names.booleanSet this flag to visit namespace definitions.booleanSet this flag to visit parameter declarations.booleanSet this flag to visit pointer operators of declarators.booleanSet this flag to visit problem nodes.booleanSet this flag to visit statements.booleanSet this flag to visit template parameters.booleanSet this flag to visit token nodes.booleanSet this flag to visit translation units.booleanSet this flag to visit typeids.booleanSet this flag to visit virt-specifiers. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a visitor that does not visit any kind of node per default.ASTVisitor(boolean visitNodes) Creates a visitor. -
Method Summary
Modifier and TypeMethodDescriptionintleave(ICASTDesignator designator) intleave(ICPPASTCapture capture) intleave(ICPPASTClassVirtSpecifier virtSpecifier) intleave(ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier baseSpecifier) intleave(ICPPASTDecltypeSpecifier decltypeSpecifier) intleave(ICPPASTDesignator designator) intleave(ICPPASTNamespaceDefinition namespaceDefinition) intleave(ICPPASTTemplateParameter templateParameter) intleave(ICPPASTVirtSpecifier virtSpecifier) intleave(IASTArrayModifier arrayModifier) intleave(IASTAttribute attribute) intleave(IASTAttributeSpecifier specifier) intleave(IASTDeclaration declaration) intleave(IASTDeclarator declarator) intleave(IASTDeclSpecifier declSpec) intleave(IASTEnumerationSpecifier.IASTEnumerator enumerator) intleave(IASTExpression expression) intleave(IASTInitializer initializer) intintleave(IASTParameterDeclaration parameterDeclaration) intleave(IASTPointerOperator ptrOperator) intleave(IASTProblem problem) intleave(IASTStatement statement) intintintleave(IASTTypeId typeId) intvisit(ICASTDesignator designator) intvisit(ICPPASTCapture capture) intvisit(ICPPASTClassVirtSpecifier classVirtSpecifier) intvisit(ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier baseSpecifier) intvisit(ICPPASTDecltypeSpecifier decltypeSpecifier) intvisit(ICPPASTDesignator designator) intvisit(ICPPASTNamespaceDefinition namespaceDefinition) intvisit(ICPPASTTemplateParameter templateParameter) intvisit(ICPPASTVirtSpecifier virtSpecifier) intvisit(IASTArrayModifier arrayModifier) intvisit(IASTAttribute attribute) intvisit(IASTAttributeSpecifier specifier) intvisit(IASTDeclaration declaration) intvisit(IASTDeclarator declarator) intvisit(IASTDeclSpecifier declSpec) intvisit(IASTEnumerationSpecifier.IASTEnumerator enumerator) intvisit(IASTExpression expression) intvisit(IASTInitializer initializer) intintvisit(IASTParameterDeclaration parameterDeclaration) intvisit(IASTPointerOperator ptrOperator) intvisit(IASTProblem problem) intvisit(IASTStatement statement) intintintvisit(IASTTypeId typeId) intvisit(org.eclipse.cdt.internal.core.dom.parser.ASTAmbiguousNode astAmbiguousNode) For internal use, only.
-
Field Details
-
PROCESS_SKIP
public static final int PROCESS_SKIPSkip the traversal of children of this node, don't call leave on this node.- See Also:
-
PROCESS_ABORT
public static final int PROCESS_ABORTAbort the entire traversal.- See Also:
-
PROCESS_CONTINUE
public static final int PROCESS_CONTINUEContinue with traversing the children of this node.- See Also:
-
shouldVisitNames
public boolean shouldVisitNamesSet this flag to visit names. -
shouldVisitDeclarations
public boolean shouldVisitDeclarationsSet this flag to visit declarations. -
shouldVisitInitializers
public boolean shouldVisitInitializersSet this flag to visit initializers. -
shouldVisitParameterDeclarations
public boolean shouldVisitParameterDeclarationsSet this flag to visit parameter declarations. -
shouldVisitDeclarators
public boolean shouldVisitDeclaratorsSet this flag to visit declarators. -
shouldVisitDeclSpecifiers
public boolean shouldVisitDeclSpecifiersSet this flag to visit declaration specifiers. -
shouldVisitArrayModifiers
public boolean shouldVisitArrayModifiersSet this flag to visit array modifiers.- Since:
- 5.1
-
shouldVisitPointerOperators
public boolean shouldVisitPointerOperatorsSet this flag to visit pointer operators of declarators.- Since:
- 5.1
-
shouldVisitAttributes
public boolean shouldVisitAttributesSet this flag to visit attributes.- Since:
- 5.4
-
shouldVisitTokens
public boolean shouldVisitTokensSet this flag to visit token nodes.- Since:
- 5.4
-
shouldVisitExpressions
public boolean shouldVisitExpressionsSet this flag to visit expressions. -
shouldVisitStatements
public boolean shouldVisitStatementsSet this flag to visit statements. -
shouldVisitTypeIds
public boolean shouldVisitTypeIdsSet this flag to visit typeids. -
shouldVisitEnumerators
public boolean shouldVisitEnumeratorsSet this flag to visit enumerators. -
shouldVisitTranslationUnit
public boolean shouldVisitTranslationUnitSet this flag to visit translation units. -
shouldVisitProblems
public boolean shouldVisitProblemsSet this flag to visit problem nodes. -
shouldVisitDesignators
public boolean shouldVisitDesignatorsSet this flag to visit designators of initializers. -
shouldVisitBaseSpecifiers
public boolean shouldVisitBaseSpecifiersSet this flag to visit base specifiers off composite types. -
shouldVisitNamespaces
public boolean shouldVisitNamespacesSet this flag to visit namespace definitions. -
shouldVisitTemplateParameters
public boolean shouldVisitTemplateParametersSet this flag to visit template parameters. -
shouldVisitCaptures
public boolean shouldVisitCapturesSet this flag to visit captures- Since:
- 5.3
-
shouldVisitVirtSpecifiers
public boolean shouldVisitVirtSpecifiersSet this flag to visit virt-specifiers.- Since:
- 5.7
-
shouldVisitDecltypeSpecifiers
public boolean shouldVisitDecltypeSpecifiersSet this flag to visit decltype-specifiers.- Since:
- 5.8
-
includeInactiveNodes
public boolean includeInactiveNodesPer default inactive nodes are not visited. You can change that by setting this flag totrue.- Since:
- 5.1
-
shouldVisitAmbiguousNodes
public boolean shouldVisitAmbiguousNodesNormally neither ambiguous nodes nor their children are visited. By setting this flag totrueambiguous nodes are visited, their children are not.- Restriction:
- This field is not intended to be referenced by clients.
-
shouldVisitImplicitNames
public boolean shouldVisitImplicitNamesImplicit names are created to allow implicit bindings to be resolved, normally they are not visited, set this flag to true to visit them.- Since:
- 5.1
- See Also:
-
shouldVisitImplicitNameAlternates
public boolean shouldVisitImplicitNameAlternatesSometimes more than one implicit name is created for a binding, set this flag to true to visit more than one name for an implicit binding.- Since:
- 5.1
- See Also:
-
shouldVisitImplicitDestructorNames
public boolean shouldVisitImplicitDestructorNamesImplicit destructor names are created to mark code locations where destructors of temporaries and variables going out of scope are called, normally they are not visited, set this flag to true to visit them.- Since:
- 5.10
- See Also:
-
-
Constructor Details
-
ASTVisitor
public ASTVisitor()Creates a visitor that does not visit any kind of node per default. -
ASTVisitor
public ASTVisitor(boolean visitNodes) Creates a visitor.- Parameters:
visitNodes- whether visitor is setup to visit all nodes per default, except ambiguous nodes (shouldVisitAmbiguousNodes), inactive nodes (includeInactiveNodes), implicit names (shouldVisitImplicitNames), and tokens (shouldVisitTokens).- Since:
- 5.1
-
-
Method Details
-
visit
-
visit
-
visit
-
visit
-
visit
-
visit
-
visit
-
visit
- Since:
- 5.1
-
visit
- Since:
- 5.1
-
visit
- Since:
- 5.4
-
visit
- Since:
- 5.7
-
visit
- Since:
- 5.4
-
visit
-
visit
-
visit
-
visit
-
visit
-
visit
- Since:
- 5.3
-
visit
- Since:
- 5.3
-
visit
- Since:
- 5.3
-
visit
- Since:
- 5.3
-
visit
- Since:
- 5.3
-
visit
- Since:
- 6.0
-
visit
- Since:
- 5.7
-
visit
- Since:
- 5.7
-
visit
- Since:
- 5.8
-
leave
-
leave
-
leave
-
leave
-
leave
-
leave
-
leave
-
leave
- Since:
- 5.1
-
leave
- Since:
- 5.1
-
leave
- Since:
- 5.4
-
leave
- Since:
- 5.7
-
leave
- Since:
- 5.4
-
leave
-
leave
-
leave
-
leave
-
leave
-
leave
- Since:
- 5.3
-
leave
- Since:
- 5.3
-
leave
- Since:
- 5.3
-
leave
- Since:
- 5.3
-
leave
- Since:
- 5.3
-
leave
- Since:
- 6.0
-
leave
- Since:
- 5.7
-
leave
- Since:
- 5.7
-
leave
- Since:
- 5.8
-
visit
public int visit(org.eclipse.cdt.internal.core.dom.parser.ASTAmbiguousNode astAmbiguousNode) For internal use, only. WhenshouldVisitAmbiguousNodesis set to true, the visitor will be called for ambiguous nodes. However, the children of an ambiguous will not be traversed.- Restriction:
- This method is not intended to be referenced by clients.
- Restriction:
- This method is not intended to be re-implemented or extended by clients.
-