Class ASTVisitor

java.lang.Object
org.eclipse.cdt.core.dom.ast.ASTVisitor
Direct Known Subclasses:
ASTGenericVisitor, ASTNameCollector, CASTVisitor, CPPASTVisitor

public abstract class ASTVisitor extends Object
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.

Clients may subclass.

  • Field Details

    • PROCESS_SKIP

      public static final int PROCESS_SKIP
      Skip the traversal of children of this node, don't call leave on this node.
      See Also:
    • PROCESS_ABORT

      public static final int PROCESS_ABORT
      Abort the entire traversal.
      See Also:
    • PROCESS_CONTINUE

      public static final int PROCESS_CONTINUE
      Continue with traversing the children of this node.
      See Also:
    • shouldVisitNames

      public boolean shouldVisitNames
      Set this flag to visit names.
    • shouldVisitDeclarations

      public boolean shouldVisitDeclarations
      Set this flag to visit declarations.
    • shouldVisitInitializers

      public boolean shouldVisitInitializers
      Set this flag to visit initializers.
    • shouldVisitParameterDeclarations

      public boolean shouldVisitParameterDeclarations
      Set this flag to visit parameter declarations.
    • shouldVisitDeclarators

      public boolean shouldVisitDeclarators
      Set this flag to visit declarators.
    • shouldVisitDeclSpecifiers

      public boolean shouldVisitDeclSpecifiers
      Set this flag to visit declaration specifiers.
    • shouldVisitArrayModifiers

      public boolean shouldVisitArrayModifiers
      Set this flag to visit array modifiers.
      Since:
      5.1
    • shouldVisitPointerOperators

      public boolean shouldVisitPointerOperators
      Set this flag to visit pointer operators of declarators.
      Since:
      5.1
    • shouldVisitAttributes

      public boolean shouldVisitAttributes
      Set this flag to visit attributes.
      Since:
      5.4
    • shouldVisitTokens

      public boolean shouldVisitTokens
      Set this flag to visit token nodes.
      Since:
      5.4
    • shouldVisitExpressions

      public boolean shouldVisitExpressions
      Set this flag to visit expressions.
    • shouldVisitStatements

      public boolean shouldVisitStatements
      Set this flag to visit statements.
    • shouldVisitTypeIds

      public boolean shouldVisitTypeIds
      Set this flag to visit typeids.
    • shouldVisitEnumerators

      public boolean shouldVisitEnumerators
      Set this flag to visit enumerators.
    • shouldVisitTranslationUnit

      public boolean shouldVisitTranslationUnit
      Set this flag to visit translation units.
    • shouldVisitProblems

      public boolean shouldVisitProblems
      Set this flag to visit problem nodes.
    • shouldVisitDesignators

      public boolean shouldVisitDesignators
      Set this flag to visit designators of initializers.
    • shouldVisitBaseSpecifiers

      public boolean shouldVisitBaseSpecifiers
      Set this flag to visit base specifiers off composite types.
    • shouldVisitNamespaces

      public boolean shouldVisitNamespaces
      Set this flag to visit namespace definitions.
    • shouldVisitTemplateParameters

      public boolean shouldVisitTemplateParameters
      Set this flag to visit template parameters.
    • shouldVisitCaptures

      public boolean shouldVisitCaptures
      Set this flag to visit captures
      Since:
      5.3
    • shouldVisitVirtSpecifiers

      public boolean shouldVisitVirtSpecifiers
      Set this flag to visit virt-specifiers.
      Since:
      5.7
    • shouldVisitDecltypeSpecifiers

      public boolean shouldVisitDecltypeSpecifiers
      Set this flag to visit decltype-specifiers.
      Since:
      5.8
    • includeInactiveNodes

      public boolean includeInactiveNodes
      Per default inactive nodes are not visited. You can change that by setting this flag to true.
      Since:
      5.1
    • shouldVisitAmbiguousNodes

      public boolean shouldVisitAmbiguousNodes
      Normally neither ambiguous nodes nor their children are visited. By setting this flag to true ambiguous nodes are visited, their children are not.
      Restriction:
      This field is not intended to be referenced by clients.
    • shouldVisitImplicitNames

      public boolean shouldVisitImplicitNames
      Implicit 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 shouldVisitImplicitNameAlternates
      Sometimes 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 shouldVisitImplicitDestructorNames
      Implicit 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