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 ()
virtual void Visit (TranslationUnit *translationUnit)=0
virtual void Visit (const TranslationUnit *translationUnit)=0
virtual void Visit (IncludeDirective *includeDirective)=0
virtual void Visit (const IncludeDirective *includeDirective)=0
virtual void Visit (NamespaceDefinition *namespaceDefinition)=0
virtual void Visit (const NamespaceDefinition *namespaceDefinition)=0
virtual void Visit (NativeBlock *nativeBlock)=0
virtual void Visit (const NativeBlock *nativeBlock)=0
virtual void Visit (EnumDeclaration *enumDeclaration)=0
virtual void Visit (const EnumDeclaration *enumDeclaration)=0
virtual void Visit (Enumerator *enumerator)=0
virtual void Visit (const Enumerator *enumerator)=0
virtual void Visit (StructDeclaration *structDeclaration)=0
virtual void Visit (const StructDeclaration *structDeclaration)=0
virtual void Visit (FunctionDefinition *functionDefinition)=0
virtual void Visit (const FunctionDefinition *functionDefinition)=0
virtual void Visit (FunctionPrototype *functionPrototype)=0
virtual void Visit (const FunctionPrototype *functionPrototype)=0
virtual void Visit (Parameter *parameter)=0
virtual void Visit (const Parameter *parameter)=0
virtual void Visit (TypeDescriptor *typeDescriptor)=0
virtual void Visit (const TypeDescriptor *typeDescriptor)=0
virtual void Visit (TypeSpecifier *typeSpecifier)=0
virtual void Visit (const TypeSpecifier *typeSpecifier)=0
virtual void Visit (NamedInitializer *namedInitializer)=0
virtual void Visit (const NamedInitializer *namedInitializer)=0
virtual void Visit (Initializer *initializer)=0
virtual void Visit (const Initializer *initializer)=0
virtual void Visit (QualifiedIdentifier *identifier)=0
virtual void Visit (const QualifiedIdentifier *identifier)=0
virtual void Visit (CompoundStatement *compoundStatement)=0
virtual void Visit (const CompoundStatement *compoundStatement)=0
virtual void Visit (IfStatement *ifStatement)=0
virtual void Visit (const IfStatement *ifStatement)=0
virtual void Visit (SwitchStatement *switchStatement)=0
virtual void Visit (const SwitchStatement *switchStatement)=0
virtual void Visit (SwitchSection *switchSection)=0
virtual void Visit (const SwitchSection *switchSection)=0
virtual void Visit (SwitchLabel *switchLabel)=0
virtual void Visit (const SwitchLabel *switchLabel)=0
virtual void Visit (WhileStatement *whileStatement)=0
virtual void Visit (const WhileStatement *whileStatement)=0
virtual void Visit (ForStatement *forStatement)=0
virtual void Visit (const ForStatement *forStatement)=0
virtual void Visit (JumpStatement *jumpStatement)=0
virtual void Visit (const JumpStatement *jumpStatement)=0
virtual void Visit (DeclarativeStatement *declarativeStatement)=0
virtual void Visit (const DeclarativeStatement *declarativeStatement)=0
virtual void Visit (ExpressionStatement *expressionStatement)=0
virtual void Visit (const ExpressionStatement *expressionStatement)=0
virtual void Visit (ConditionalExpression *conditionalExpression)=0
virtual void Visit (const ConditionalExpression *conditionalExpression)=0
virtual void Visit (BinaryExpression *binaryExpression)=0
virtual void Visit (const BinaryExpression *binaryExpression)=0
virtual void Visit (UnaryExpression *unaryExpression)=0
virtual void Visit (const UnaryExpression *unaryExpression)=0
virtual void Visit (PostfixExpression *postfixExpression)=0
virtual void Visit (const PostfixExpression *postfixExpression)=0
virtual void Visit (MemberExpression *memberExpression)=0
virtual void Visit (const MemberExpression *memberExpression)=0
virtual void Visit (ArraySubscriptExpression *arraySubscriptExpression)=0
virtual void Visit (const ArraySubscriptExpression *arraySubscriptExpression)=0
virtual void Visit (FunctionCallExpression *functionCallExpression)=0
virtual void Visit (const FunctionCallExpression *functionCallExpression)=0
virtual void Visit (CastExpression *castExpression)=0
virtual void Visit (const CastExpression *castExpression)=0
virtual void Visit (PropertyofExpression *propertyofExpression)=0
virtual void Visit (const PropertyofExpression *propertyofExpression)=0
virtual void Visit (ConstantLiteralExpression *constantExpression)=0
virtual void Visit (const ConstantLiteralExpression *constantExpression)=0
virtual void Visit (IdentifierExpression *identifierExpression)=0
virtual void Visit (const IdentifierExpression *identifierExpression)=0
virtual void Visit (ThisExpression *thisExpression)=0
virtual void Visit (const ThisExpression *thisExpression)=0
virtual void Visit (EmptyExpression *emptyExpression)=0
virtual void Visit (const EmptyExpression *emptyExpression)=0

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

Member Function Documentation

◆ Visit() [1/76]

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

◆ Visit() [2/76]

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

◆ Visit() [3/76]

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

◆ Visit() [4/76]

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

◆ Visit() [5/76]

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

◆ Visit() [6/76]

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

◆ Visit() [7/76]

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

◆ Visit() [8/76]

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

◆ Visit() [9/76]

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

◆ Visit() [10/76]

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

◆ Visit() [11/76]

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

◆ Visit() [12/76]

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

◆ Visit() [13/76]

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

◆ Visit() [14/76]

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

◆ Visit() [15/76]

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

◆ Visit() [16/76]

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

◆ Visit() [17/76]

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

◆ Visit() [18/76]

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

◆ Visit() [19/76]

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

◆ Visit() [20/76]

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

◆ Visit() [21/76]

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

◆ Visit() [22/76]

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

◆ Visit() [23/76]

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

◆ Visit() [24/76]

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

◆ Visit() [25/76]

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

◆ Visit() [26/76]

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

◆ Visit() [27/76]

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

◆ Visit() [28/76]

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

◆ Visit() [29/76]

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

◆ Visit() [30/76]

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

◆ Visit() [31/76]

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

◆ Visit() [32/76]

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

◆ Visit() [33/76]

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

◆ Visit() [34/76]

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

◆ Visit() [35/76]

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

◆ Visit() [36/76]

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

◆ Visit() [37/76]

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

◆ Visit() [38/76]

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

◆ Visit() [39/76]

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

◆ Visit() [40/76]

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

◆ Visit() [41/76]

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

◆ Visit() [42/76]

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

◆ Visit() [43/76]

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

◆ Visit() [44/76]

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

◆ Visit() [45/76]

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

◆ Visit() [46/76]

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

◆ Visit() [47/76]

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

◆ Visit() [48/76]

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

◆ Visit() [49/76]

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

◆ Visit() [50/76]

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

◆ Visit() [51/76]

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

◆ Visit() [52/76]

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

◆ Visit() [53/76]

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

◆ Visit() [54/76]

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

◆ Visit() [55/76]

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

◆ Visit() [56/76]

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

◆ Visit() [57/76]

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

◆ Visit() [58/76]

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

◆ Visit() [59/76]

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

◆ Visit() [60/76]

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

◆ Visit() [61/76]

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

◆ Visit() [62/76]

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

◆ Visit() [63/76]

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

◆ Visit() [64/76]

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

◆ Visit() [65/76]

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

◆ Visit() [66/76]

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

◆ Visit() [67/76]

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

◆ Visit() [68/76]

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

◆ Visit() [69/76]

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

◆ Visit() [70/76]

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

◆ Visit() [71/76]

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

◆ Visit() [72/76]

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

◆ Visit() [73/76]

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

◆ Visit() [74/76]

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

◆ Visit() [75/76]

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

◆ Visit() [76/76]

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