|
Bond 0.9
C++ Bond Runtime Library API Documentation
|
An abstract interface that implements the Visitor pattern over all concrete types that derive from ParseNode. More...
#include <bond/compiler/parsenodevisitor.h>
Public Member Functions | |
| virtual | ~ParseNodeVisitor () |
| Destroys a ParseNodeVisitor object. | |
| virtual void | Visit (TranslationUnit *translationUnit)=0 |
| Visits a TranslationUnit. | |
| virtual void | Visit (const TranslationUnit *translationUnit)=0 |
| Visits a const TranslationUnit. | |
| virtual void | Visit (IncludeDirective *includeDirective)=0 |
| Visits an IncludeDirective. | |
| virtual void | Visit (const IncludeDirective *includeDirective)=0 |
| Visits a const IncludeDirective. | |
| virtual void | Visit (NamespaceDefinition *namespaceDefinition)=0 |
| Visits a NamespaceDefinition. | |
| virtual void | Visit (const NamespaceDefinition *namespaceDefinition)=0 |
| Visits a const NamespaceDefinition. | |
| virtual void | Visit (NativeBlock *nativeBlock)=0 |
| Visits a NativeBlock. | |
| virtual void | Visit (const NativeBlock *nativeBlock)=0 |
| Visits a const NativeBlock. | |
| virtual void | Visit (EnumDeclaration *enumDeclaration)=0 |
| Visits an EnumDeclaration. | |
| virtual void | Visit (const EnumDeclaration *enumDeclaration)=0 |
| Visits a const EnumDeclaration. | |
| virtual void | Visit (Enumerator *enumerator)=0 |
| Visits an Enumerator. | |
| virtual void | Visit (const Enumerator *enumerator)=0 |
| Visits a const Enumerator. | |
| virtual void | Visit (StructDeclaration *structDeclaration)=0 |
| Visits a StructDeclaration. | |
| virtual void | Visit (const StructDeclaration *structDeclaration)=0 |
| Visits a const StructDeclaration. | |
| virtual void | Visit (FunctionDefinition *functionDefinition)=0 |
| Visits a FunctionDefinition. | |
| virtual void | Visit (const FunctionDefinition *functionDefinition)=0 |
| Visits a const FunctionDefinition. | |
| virtual void | Visit (FunctionPrototype *functionPrototype)=0 |
| Visits a FunctionPrototype. | |
| virtual void | Visit (const FunctionPrototype *functionPrototype)=0 |
| Visits a const FunctionPrototype. | |
| virtual void | Visit (Parameter *parameter)=0 |
| Visits a Parameter. | |
| virtual void | Visit (const Parameter *parameter)=0 |
| Visits a const Parameter. | |
| virtual void | Visit (TypeDescriptor *typeDescriptor)=0 |
| Visits a TypeDescriptor. | |
| virtual void | Visit (const TypeDescriptor *typeDescriptor)=0 |
| Visits a const TypeDescriptor. | |
| virtual void | Visit (TypeSpecifier *typeSpecifier)=0 |
| Visits a TypeSpecifier. | |
| virtual void | Visit (const TypeSpecifier *typeSpecifier)=0 |
| Visits a const TypeSpecifier. | |
| virtual void | Visit (NamedInitializer *namedInitializer)=0 |
| Visits a NamedInitializer. | |
| virtual void | Visit (const NamedInitializer *namedInitializer)=0 |
| Visits a const NamedInitializer. | |
| virtual void | Visit (Initializer *initializer)=0 |
| Visits an Initializer. | |
| virtual void | Visit (const Initializer *initializer)=0 |
| Visits a const Initializer. | |
| virtual void | Visit (QualifiedIdentifier *identifier)=0 |
| Visits a QualifiedIdentifier. | |
| virtual void | Visit (const QualifiedIdentifier *identifier)=0 |
| Visits a const QualifiedIdentifier. | |
| virtual void | Visit (CompoundStatement *compoundStatement)=0 |
| Visits a CompoundStatement. | |
| virtual void | Visit (const CompoundStatement *compoundStatement)=0 |
| Visits a const CompoundStatement. | |
| virtual void | Visit (IfStatement *ifStatement)=0 |
| Visits an IfStatement. | |
| virtual void | Visit (const IfStatement *ifStatement)=0 |
| Visits a const IfStatement. | |
| virtual void | Visit (SwitchStatement *switchStatement)=0 |
| Visits a SwitchStatement. | |
| virtual void | Visit (const SwitchStatement *switchStatement)=0 |
| Visits a const SwitchStatement. | |
| virtual void | Visit (SwitchSection *switchSection)=0 |
| Visits a SwitchSection. | |
| virtual void | Visit (const SwitchSection *switchSection)=0 |
| Visits a const SwitchSection. | |
| virtual void | Visit (SwitchLabel *switchLabel)=0 |
| Visits a SwitchLabel. | |
| virtual void | Visit (const SwitchLabel *switchLabel)=0 |
| Visits a const SwitchLabel. | |
| virtual void | Visit (WhileStatement *whileStatement)=0 |
| Visits a WhileStatement. | |
| virtual void | Visit (const WhileStatement *whileStatement)=0 |
| Visits a const WhileStatement. | |
| virtual void | Visit (ForStatement *forStatement)=0 |
| Visits a ForStatement. | |
| virtual void | Visit (const ForStatement *forStatement)=0 |
| Visits a const ForStatement. | |
| virtual void | Visit (JumpStatement *jumpStatement)=0 |
| Visits a JumpStatement. | |
| virtual void | Visit (const JumpStatement *jumpStatement)=0 |
| Visits a const JumpStatement. | |
| virtual void | Visit (DeclarativeStatement *declarativeStatement)=0 |
| Visits a DeclarativeStatement. | |
| virtual void | Visit (const DeclarativeStatement *declarativeStatement)=0 |
| Visits a const DeclarativeStatement. | |
| virtual void | Visit (UsingDeclaration *usingDeclaration)=0 |
| Visits a UsingDeclaration. | |
| virtual void | Visit (const UsingDeclaration *usingDeclaration)=0 |
| Visits a const UsingDeclaration. | |
| virtual void | Visit (UsingDirective *usingDirective)=0 |
| Visits a UsingDirective. | |
| virtual void | Visit (const UsingDirective *usingDirective)=0 |
| Visits a const UsingDirective. | |
| virtual void | Visit (ExpressionStatement *expressionStatement)=0 |
| Visits an ExpressionStatement. | |
| virtual void | Visit (const ExpressionStatement *expressionStatement)=0 |
| Visits a const ExpressionStatement. | |
| virtual void | Visit (ConditionalExpression *conditionalExpression)=0 |
| Visits a ConditionalExpression. | |
| virtual void | Visit (const ConditionalExpression *conditionalExpression)=0 |
| Visits a const ConditionalExpression. | |
| virtual void | Visit (BinaryExpression *binaryExpression)=0 |
| Visits a BinaryExpression. | |
| virtual void | Visit (const BinaryExpression *binaryExpression)=0 |
| Visits a const BinaryExpression. | |
| virtual void | Visit (UnaryExpression *unaryExpression)=0 |
| Visits a UnaryExpression. | |
| virtual void | Visit (const UnaryExpression *unaryExpression)=0 |
| Visits a const UnaryExpression. | |
| virtual void | Visit (PostfixExpression *postfixExpression)=0 |
| Visits a PostfixExpression. | |
| virtual void | Visit (const PostfixExpression *postfixExpression)=0 |
| Visits a const PostfixExpression. | |
| virtual void | Visit (MemberExpression *memberExpression)=0 |
| Visits a MemberExpression. | |
| virtual void | Visit (const MemberExpression *memberExpression)=0 |
| Visits a const MemberExpression. | |
| virtual void | Visit (ArraySubscriptExpression *arraySubscriptExpression)=0 |
| Visits an ArraySubscriptExpression. | |
| virtual void | Visit (const ArraySubscriptExpression *arraySubscriptExpression)=0 |
| Visits a const ArraySubscriptExpression. | |
| virtual void | Visit (FunctionCallExpression *functionCallExpression)=0 |
| Visits a FunctionCallExpression. | |
| virtual void | Visit (const FunctionCallExpression *functionCallExpression)=0 |
| Visits a const FunctionCallExpression. | |
| virtual void | Visit (CastExpression *castExpression)=0 |
| Visits a CastExpression. | |
| virtual void | Visit (const CastExpression *castExpression)=0 |
| Visits a const CastExpression. | |
| virtual void | Visit (PropertyofExpression *propertyofExpression)=0 |
| Visits a PropertyofExpression. | |
| virtual void | Visit (const PropertyofExpression *propertyofExpression)=0 |
| Visits a const PropertyofExpression. | |
| virtual void | Visit (ConstantLiteralExpression *constantExpression)=0 |
| Visits a ConstantLiteralExpression. | |
| virtual void | Visit (const ConstantLiteralExpression *constantExpression)=0 |
| Visits a const ConstantLiteralExpression. | |
| virtual void | Visit (IdentifierExpression *identifierExpression)=0 |
| Visits an IdentifierExpression. | |
| virtual void | Visit (const IdentifierExpression *identifierExpression)=0 |
| Visits a const IdentifierExpression. | |
| virtual void | Visit (ThisExpression *thisExpression)=0 |
| Visits a ThisExpression. | |
| virtual void | Visit (const ThisExpression *thisExpression)=0 |
| Visits a const ThisExpression. | |
| virtual void | Visit (EmptyExpression *emptyExpression)=0 |
| Visits an EmptyExpression. | |
| virtual void | Visit (const EmptyExpression *emptyExpression)=0 |
| Visits a const EmptyExpression. | |
An abstract interface that implements the Visitor pattern over all concrete types that derive from ParseNode.
Any of the ParseNodeVisitor::Visit methods can be called directly if the concrete type of the ParseNode is known at compile time. If the node's concrete type is not known, its ParseNode::Accept method can be called with the visitor passed in as an argument, which will in turn call the appropriate Visit method.
|
inlinevirtual |
Destroys a ParseNodeVisitor object.
|
pure virtual |
Visits an ArraySubscriptExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a BinaryExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a CastExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a CompoundStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a ConditionalExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const ArraySubscriptExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const BinaryExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const CastExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const CompoundStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const ConditionalExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const ConstantLiteralExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const DeclarativeStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const EmptyExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const EnumDeclaration.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const Enumerator.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const ExpressionStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const ForStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const FunctionCallExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const FunctionDefinition.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const FunctionPrototype.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const IdentifierExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const IfStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const IncludeDirective.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const Initializer.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const JumpStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const MemberExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const NamedInitializer.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const NamespaceDefinition.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const NativeBlock.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const Parameter.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const PostfixExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const PropertyofExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const QualifiedIdentifier.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const StructDeclaration.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const SwitchLabel.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const SwitchSection.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const SwitchStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const ThisExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const TranslationUnit.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const TypeDescriptor.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const TypeSpecifier.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const UnaryExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const UsingDeclaration.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const UsingDirective.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a const WhileStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a ConstantLiteralExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a DeclarativeStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an EmptyExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an EnumDeclaration.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an Enumerator.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an ExpressionStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a ForStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a FunctionCallExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a FunctionDefinition.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a FunctionPrototype.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an IdentifierExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an IfStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an IncludeDirective.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits an Initializer.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a JumpStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a MemberExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a NamedInitializer.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a NamespaceDefinition.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a NativeBlock.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a Parameter.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a PostfixExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a PropertyofExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a QualifiedIdentifier.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a StructDeclaration.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a SwitchLabel.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a SwitchSection.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a SwitchStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a ThisExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a TranslationUnit.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a TypeDescriptor.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a TypeSpecifier.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a UnaryExpression.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a UsingDeclaration.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a UsingDirective.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.
|
pure virtual |
Visits a WhileStatement.
Implemented in Bond::CastVisitor< T >, Bond::ParseNodeTraverser, and Bond::ParseNodeVisitorAdapter.