Bond 0.9
C++ Bond Runtime Library API Documentation
Loading...
Searching...
No Matches
Bond::ParseNodeVisitor Class Referenceabstract

An abstract interface that implements the Visitor pattern over all concrete types that derive from ParseNode. More...

#include <bond/compiler/parsenodevisitor.h>

Inheritance diagram for Bond::ParseNodeVisitor:
Bond::ParseNodeTraverser Bond::ParseNodeVisitorAdapter Bond::ParseNodeCounter Bond::CastVisitor< T >

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.

Detailed Description

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.

See also
ParseNode, ParseNodeVisitorAdapter, ParseNodeTraverser

Constructor & Destructor Documentation

◆ ~ParseNodeVisitor()

virtual Bond::ParseNodeVisitor::~ParseNodeVisitor ( )
inlinevirtual

Destroys a ParseNodeVisitor object.

Member Function Documentation

◆ Visit() [1/80]

virtual void Bond::ParseNodeVisitor::Visit ( ArraySubscriptExpression * arraySubscriptExpression)
pure virtual

◆ Visit() [2/80]

virtual void Bond::ParseNodeVisitor::Visit ( BinaryExpression * binaryExpression)
pure virtual

◆ Visit() [3/80]

virtual void Bond::ParseNodeVisitor::Visit ( CastExpression * castExpression)
pure virtual

◆ Visit() [4/80]

virtual void Bond::ParseNodeVisitor::Visit ( CompoundStatement * compoundStatement)
pure virtual

◆ Visit() [5/80]

virtual void Bond::ParseNodeVisitor::Visit ( ConditionalExpression * conditionalExpression)
pure virtual

◆ Visit() [6/80]

virtual void Bond::ParseNodeVisitor::Visit ( const ArraySubscriptExpression * arraySubscriptExpression)
pure virtual

◆ Visit() [7/80]

virtual void Bond::ParseNodeVisitor::Visit ( const BinaryExpression * binaryExpression)
pure virtual

◆ Visit() [8/80]

virtual void Bond::ParseNodeVisitor::Visit ( const CastExpression * castExpression)
pure virtual

◆ Visit() [9/80]

virtual void Bond::ParseNodeVisitor::Visit ( const CompoundStatement * compoundStatement)
pure virtual

◆ Visit() [10/80]

virtual void Bond::ParseNodeVisitor::Visit ( const ConditionalExpression * conditionalExpression)
pure virtual

◆ Visit() [11/80]

virtual void Bond::ParseNodeVisitor::Visit ( const ConstantLiteralExpression * constantExpression)
pure virtual

◆ Visit() [12/80]

virtual void Bond::ParseNodeVisitor::Visit ( const DeclarativeStatement * declarativeStatement)
pure virtual

◆ Visit() [13/80]

virtual void Bond::ParseNodeVisitor::Visit ( const EmptyExpression * emptyExpression)
pure virtual

◆ Visit() [14/80]

virtual void Bond::ParseNodeVisitor::Visit ( const EnumDeclaration * enumDeclaration)
pure virtual

◆ Visit() [15/80]

virtual void Bond::ParseNodeVisitor::Visit ( const Enumerator * enumerator)
pure virtual

◆ Visit() [16/80]

virtual void Bond::ParseNodeVisitor::Visit ( const ExpressionStatement * expressionStatement)
pure virtual

◆ Visit() [17/80]

virtual void Bond::ParseNodeVisitor::Visit ( const ForStatement * forStatement)
pure virtual

◆ Visit() [18/80]

virtual void Bond::ParseNodeVisitor::Visit ( const FunctionCallExpression * functionCallExpression)
pure virtual

◆ Visit() [19/80]

virtual void Bond::ParseNodeVisitor::Visit ( const FunctionDefinition * functionDefinition)
pure virtual

◆ Visit() [20/80]

virtual void Bond::ParseNodeVisitor::Visit ( const FunctionPrototype * functionPrototype)
pure virtual

◆ Visit() [21/80]

virtual void Bond::ParseNodeVisitor::Visit ( const IdentifierExpression * identifierExpression)
pure virtual

◆ Visit() [22/80]

virtual void Bond::ParseNodeVisitor::Visit ( const IfStatement * ifStatement)
pure virtual

◆ Visit() [23/80]

virtual void Bond::ParseNodeVisitor::Visit ( const IncludeDirective * includeDirective)
pure virtual

◆ Visit() [24/80]

virtual void Bond::ParseNodeVisitor::Visit ( const Initializer * initializer)
pure virtual

◆ Visit() [25/80]

virtual void Bond::ParseNodeVisitor::Visit ( const JumpStatement * jumpStatement)
pure virtual

◆ Visit() [26/80]

virtual void Bond::ParseNodeVisitor::Visit ( const MemberExpression * memberExpression)
pure virtual

◆ Visit() [27/80]

virtual void Bond::ParseNodeVisitor::Visit ( const NamedInitializer * namedInitializer)
pure virtual

◆ Visit() [28/80]

virtual void Bond::ParseNodeVisitor::Visit ( const NamespaceDefinition * namespaceDefinition)
pure virtual

◆ Visit() [29/80]

virtual void Bond::ParseNodeVisitor::Visit ( const NativeBlock * nativeBlock)
pure virtual

◆ Visit() [30/80]

virtual void Bond::ParseNodeVisitor::Visit ( const Parameter * parameter)
pure virtual

◆ Visit() [31/80]

virtual void Bond::ParseNodeVisitor::Visit ( const PostfixExpression * postfixExpression)
pure virtual

◆ Visit() [32/80]

virtual void Bond::ParseNodeVisitor::Visit ( const PropertyofExpression * propertyofExpression)
pure virtual

◆ Visit() [33/80]

virtual void Bond::ParseNodeVisitor::Visit ( const QualifiedIdentifier * identifier)
pure virtual

◆ Visit() [34/80]

virtual void Bond::ParseNodeVisitor::Visit ( const StructDeclaration * structDeclaration)
pure virtual

◆ Visit() [35/80]

virtual void Bond::ParseNodeVisitor::Visit ( const SwitchLabel * switchLabel)
pure virtual

◆ Visit() [36/80]

virtual void Bond::ParseNodeVisitor::Visit ( const SwitchSection * switchSection)
pure virtual

◆ Visit() [37/80]

virtual void Bond::ParseNodeVisitor::Visit ( const SwitchStatement * switchStatement)
pure virtual

◆ Visit() [38/80]

virtual void Bond::ParseNodeVisitor::Visit ( const ThisExpression * thisExpression)
pure virtual

◆ Visit() [39/80]

virtual void Bond::ParseNodeVisitor::Visit ( const TranslationUnit * translationUnit)
pure virtual

◆ Visit() [40/80]

virtual void Bond::ParseNodeVisitor::Visit ( const TypeDescriptor * typeDescriptor)
pure virtual

◆ Visit() [41/80]

virtual void Bond::ParseNodeVisitor::Visit ( const TypeSpecifier * typeSpecifier)
pure virtual

◆ Visit() [42/80]

virtual void Bond::ParseNodeVisitor::Visit ( const UnaryExpression * unaryExpression)
pure virtual

◆ Visit() [43/80]

virtual void Bond::ParseNodeVisitor::Visit ( const UsingDeclaration * usingDeclaration)
pure virtual

◆ Visit() [44/80]

virtual void Bond::ParseNodeVisitor::Visit ( const UsingDirective * usingDirective)
pure virtual

◆ Visit() [45/80]

virtual void Bond::ParseNodeVisitor::Visit ( const WhileStatement * whileStatement)
pure virtual

◆ Visit() [46/80]

virtual void Bond::ParseNodeVisitor::Visit ( ConstantLiteralExpression * constantExpression)
pure virtual

◆ Visit() [47/80]

virtual void Bond::ParseNodeVisitor::Visit ( DeclarativeStatement * declarativeStatement)
pure virtual

◆ Visit() [48/80]

virtual void Bond::ParseNodeVisitor::Visit ( EmptyExpression * emptyExpression)
pure virtual

◆ Visit() [49/80]

virtual void Bond::ParseNodeVisitor::Visit ( EnumDeclaration * enumDeclaration)
pure virtual

◆ Visit() [50/80]

virtual void Bond::ParseNodeVisitor::Visit ( Enumerator * enumerator)
pure virtual

◆ Visit() [51/80]

virtual void Bond::ParseNodeVisitor::Visit ( ExpressionStatement * expressionStatement)
pure virtual

◆ Visit() [52/80]

virtual void Bond::ParseNodeVisitor::Visit ( ForStatement * forStatement)
pure virtual

◆ Visit() [53/80]

virtual void Bond::ParseNodeVisitor::Visit ( FunctionCallExpression * functionCallExpression)
pure virtual

◆ Visit() [54/80]

virtual void Bond::ParseNodeVisitor::Visit ( FunctionDefinition * functionDefinition)
pure virtual

◆ Visit() [55/80]

virtual void Bond::ParseNodeVisitor::Visit ( FunctionPrototype * functionPrototype)
pure virtual

◆ Visit() [56/80]

virtual void Bond::ParseNodeVisitor::Visit ( IdentifierExpression * identifierExpression)
pure virtual

◆ Visit() [57/80]

virtual void Bond::ParseNodeVisitor::Visit ( IfStatement * ifStatement)
pure virtual

◆ Visit() [58/80]

virtual void Bond::ParseNodeVisitor::Visit ( IncludeDirective * includeDirective)
pure virtual

◆ Visit() [59/80]

virtual void Bond::ParseNodeVisitor::Visit ( Initializer * initializer)
pure virtual

◆ Visit() [60/80]

virtual void Bond::ParseNodeVisitor::Visit ( JumpStatement * jumpStatement)
pure virtual

◆ Visit() [61/80]

virtual void Bond::ParseNodeVisitor::Visit ( MemberExpression * memberExpression)
pure virtual

◆ Visit() [62/80]

virtual void Bond::ParseNodeVisitor::Visit ( NamedInitializer * namedInitializer)
pure virtual

◆ Visit() [63/80]

virtual void Bond::ParseNodeVisitor::Visit ( NamespaceDefinition * namespaceDefinition)
pure virtual

◆ Visit() [64/80]

virtual void Bond::ParseNodeVisitor::Visit ( NativeBlock * nativeBlock)
pure virtual

◆ Visit() [65/80]

virtual void Bond::ParseNodeVisitor::Visit ( Parameter * parameter)
pure virtual

◆ Visit() [66/80]

virtual void Bond::ParseNodeVisitor::Visit ( PostfixExpression * postfixExpression)
pure virtual

◆ Visit() [67/80]

virtual void Bond::ParseNodeVisitor::Visit ( PropertyofExpression * propertyofExpression)
pure virtual

◆ Visit() [68/80]

virtual void Bond::ParseNodeVisitor::Visit ( QualifiedIdentifier * identifier)
pure virtual

◆ Visit() [69/80]

virtual void Bond::ParseNodeVisitor::Visit ( StructDeclaration * structDeclaration)
pure virtual

◆ Visit() [70/80]

virtual void Bond::ParseNodeVisitor::Visit ( SwitchLabel * switchLabel)
pure virtual

◆ Visit() [71/80]

virtual void Bond::ParseNodeVisitor::Visit ( SwitchSection * switchSection)
pure virtual

◆ Visit() [72/80]

virtual void Bond::ParseNodeVisitor::Visit ( SwitchStatement * switchStatement)
pure virtual

◆ Visit() [73/80]

virtual void Bond::ParseNodeVisitor::Visit ( ThisExpression * thisExpression)
pure virtual

◆ Visit() [74/80]

virtual void Bond::ParseNodeVisitor::Visit ( TranslationUnit * translationUnit)
pure virtual

◆ Visit() [75/80]

virtual void Bond::ParseNodeVisitor::Visit ( TypeDescriptor * typeDescriptor)
pure virtual

◆ Visit() [76/80]

virtual void Bond::ParseNodeVisitor::Visit ( TypeSpecifier * typeSpecifier)
pure virtual

◆ Visit() [77/80]

virtual void Bond::ParseNodeVisitor::Visit ( UnaryExpression * unaryExpression)
pure virtual

◆ Visit() [78/80]

virtual void Bond::ParseNodeVisitor::Visit ( UsingDeclaration * usingDeclaration)
pure virtual

◆ Visit() [79/80]

virtual void Bond::ParseNodeVisitor::Visit ( UsingDirective * usingDirective)
pure virtual

◆ Visit() [80/80]

virtual void Bond::ParseNodeVisitor::Visit ( WhileStatement * whileStatement)
pure virtual

The documentation for this class was generated from the following file:
  • include/bond/compiler/parsenodevisitor.h