Class 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 Detail

      • 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:
        Constant Field Values
      • PROCESS_ABORT

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

        public static final int PROCESS_CONTINUE
        Continue with traversing the children of this node.
        See Also:
        Constant Field Values
      • 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:
        visit(IASTName), IASTImplicitName
      • 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:
        visit(IASTName), IASTImplicitName
      • 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:
        visit(IASTName), IASTImplicitDestructorName
    • Constructor Detail

      • ASTVisitor

        public ASTVisitor()
        Creates a visitor that does not visit any kind of node per default.