tipc
A TIP to LLVM compiler
Public Member Functions | List of all members
ASTVisitor Class Reference

Base class for AST visitors. More...

#include <ASTVisitor.h>

Inheritance diagram for ASTVisitor:
Inheritance graph
[legend]

Public Member Functions

virtual bool visit (ASTProgram *element)
 
virtual void endVisit (ASTProgram *element)
 
virtual bool visit (ASTFunction *element)
 
virtual void endVisit (ASTFunction *element)
 
virtual bool visit (ASTNumberExpr *element)
 
virtual void endVisit (ASTNumberExpr *element)
 
virtual bool visit (ASTVariableExpr *element)
 
virtual void endVisit (ASTVariableExpr *element)
 
virtual bool visit (ASTBinaryExpr *element)
 
virtual void endVisit (ASTBinaryExpr *element)
 
virtual bool visit (ASTInputExpr *element)
 
virtual void endVisit (ASTInputExpr *element)
 
virtual bool visit (ASTFunAppExpr *element)
 
virtual void endVisit (ASTFunAppExpr *element)
 
virtual bool visit (ASTAllocExpr *element)
 
virtual void endVisit (ASTAllocExpr *element)
 
virtual bool visit (ASTRefExpr *element)
 
virtual void endVisit (ASTRefExpr *element)
 
virtual bool visit (ASTDeRefExpr *element)
 
virtual void endVisit (ASTDeRefExpr *element)
 
virtual bool visit (ASTNullExpr *element)
 
virtual void endVisit (ASTNullExpr *element)
 
virtual bool visit (ASTFieldExpr *element)
 
virtual void endVisit (ASTFieldExpr *element)
 
virtual bool visit (ASTRecordExpr *element)
 
virtual void endVisit (ASTRecordExpr *element)
 
virtual bool visit (ASTAccessExpr *element)
 
virtual void endVisit (ASTAccessExpr *element)
 
virtual bool visit (ASTDeclNode *element)
 
virtual void endVisit (ASTDeclNode *element)
 
virtual bool visit (ASTDeclStmt *element)
 
virtual void endVisit (ASTDeclStmt *element)
 
virtual bool visit (ASTAssignStmt *element)
 
virtual void endVisit (ASTAssignStmt *element)
 
virtual bool visit (ASTWhileStmt *element)
 
virtual void endVisit (ASTWhileStmt *element)
 
virtual bool visit (ASTIfStmt *element)
 
virtual void endVisit (ASTIfStmt *element)
 
virtual bool visit (ASTOutputStmt *element)
 
virtual void endVisit (ASTOutputStmt *element)
 
virtual bool visit (ASTReturnStmt *element)
 
virtual void endVisit (ASTReturnStmt *element)
 
virtual bool visit (ASTErrorStmt *element)
 
virtual void endVisit (ASTErrorStmt *element)
 
virtual bool visit (ASTBlockStmt *element)
 
virtual void endVisit (ASTBlockStmt *element)
 

Detailed Description

Base class for AST visitors.

The AST visitor class abstracts the traversal of an AST. It works in concert with the accept methods of ASTNode subtypes. Each of those nodes performs a traversal of its children in an order corresponding to their appearance in the source program. This class defines default behavior for the processing performed when the traversal reaches a node of a given type. By default the visit method returns true, indicating that the children of the node should also be visited, and the endVisit method does nothing.

Subtypes of ASTVisitor will selectively override these default methods. Overriding a visit permits a pre-order processing during traversal and overriding endVisit permits a post-order processing.

Subtype of ASTVisitor will also define member data that can be referenced by overridden methods to communicate information along the traversal to future method invocations.

Member Function Documentation

◆ endVisit() [1/23]

virtual void ASTVisitor::endVisit ( ASTAccessExpr element)
inlinevirtual

◆ endVisit() [2/23]

virtual void ASTVisitor::endVisit ( ASTAllocExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [3/23]

virtual void ASTVisitor::endVisit ( ASTAssignStmt element)
inlinevirtual

◆ endVisit() [4/23]

virtual void ASTVisitor::endVisit ( ASTBinaryExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [5/23]

virtual void ASTVisitor::endVisit ( ASTBlockStmt element)
inlinevirtual

Reimplemented in PrettyPrinter.

◆ endVisit() [6/23]

virtual void ASTVisitor::endVisit ( ASTDeclNode element)
inlinevirtual

Reimplemented in LocalNameCollector, and PrettyPrinter.

◆ endVisit() [7/23]

virtual void ASTVisitor::endVisit ( ASTDeclStmt element)
inlinevirtual

Reimplemented in PrettyPrinter.

◆ endVisit() [8/23]

virtual void ASTVisitor::endVisit ( ASTDeRefExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [9/23]

virtual void ASTVisitor::endVisit ( ASTErrorStmt element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [10/23]

virtual void ASTVisitor::endVisit ( ASTFieldExpr element)
inlinevirtual

Reimplemented in FieldNameCollector, and PrettyPrinter.

◆ endVisit() [11/23]

virtual void ASTVisitor::endVisit ( ASTFunAppExpr element)
inlinevirtual

◆ endVisit() [12/23]

virtual void ASTVisitor::endVisit ( ASTFunction element)
inlinevirtual

◆ endVisit() [13/23]

virtual void ASTVisitor::endVisit ( ASTIfStmt element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [14/23]

virtual void ASTVisitor::endVisit ( ASTInputExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [15/23]

virtual void ASTVisitor::endVisit ( ASTNullExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [16/23]

virtual void ASTVisitor::endVisit ( ASTNumberExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [17/23]

virtual void ASTVisitor::endVisit ( ASTOutputStmt element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [18/23]

virtual void ASTVisitor::endVisit ( ASTProgram element)
inlinevirtual

Reimplemented in PrettyPrinter.

◆ endVisit() [19/23]

virtual void ASTVisitor::endVisit ( ASTRecordExpr element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ endVisit() [20/23]

virtual void ASTVisitor::endVisit ( ASTRefExpr element)
inlinevirtual

◆ endVisit() [21/23]

virtual void ASTVisitor::endVisit ( ASTReturnStmt element)
inlinevirtual

Reimplemented in PrettyPrinter.

◆ endVisit() [22/23]

virtual void ASTVisitor::endVisit ( ASTVariableExpr element)
inlinevirtual

Reimplemented in LocalNameCollector, and PrettyPrinter.

◆ endVisit() [23/23]

virtual void ASTVisitor::endVisit ( ASTWhileStmt element)
inlinevirtual

Reimplemented in TypeConstraintVisitor, and PrettyPrinter.

◆ visit() [1/23]

virtual bool ASTVisitor::visit ( ASTAccessExpr element)
inlinevirtual

◆ visit() [2/23]

virtual bool ASTVisitor::visit ( ASTAllocExpr element)
inlinevirtual

◆ visit() [3/23]

virtual bool ASTVisitor::visit ( ASTAssignStmt element)
inlinevirtual

Reimplemented in CFAnalyzer.

◆ visit() [4/23]

virtual bool ASTVisitor::visit ( ASTBinaryExpr element)
inlinevirtual

◆ visit() [5/23]

virtual bool ASTVisitor::visit ( ASTBlockStmt element)
inlinevirtual

Reimplemented in PrettyPrinter.

◆ visit() [6/23]

virtual bool ASTVisitor::visit ( ASTDeclNode element)
inlinevirtual

◆ visit() [7/23]

virtual bool ASTVisitor::visit ( ASTDeclStmt element)
inlinevirtual

◆ visit() [8/23]

virtual bool ASTVisitor::visit ( ASTDeRefExpr element)
inlinevirtual

◆ visit() [9/23]

virtual bool ASTVisitor::visit ( ASTErrorStmt element)
inlinevirtual

◆ visit() [10/23]

virtual bool ASTVisitor::visit ( ASTFieldExpr element)
inlinevirtual

◆ visit() [11/23]

virtual bool ASTVisitor::visit ( ASTFunAppExpr element)
inlinevirtual

Reimplemented in CFAnalyzer, and CallGraphBuilder.

◆ visit() [12/23]

virtual bool ASTVisitor::visit ( ASTFunction element)
inlinevirtual

◆ visit() [13/23]

virtual bool ASTVisitor::visit ( ASTIfStmt element)
inlinevirtual

Reimplemented in PrettyPrinter.

◆ visit() [14/23]

virtual bool ASTVisitor::visit ( ASTInputExpr element)
inlinevirtual

◆ visit() [15/23]

virtual bool ASTVisitor::visit ( ASTNullExpr element)
inlinevirtual

◆ visit() [16/23]

virtual bool ASTVisitor::visit ( ASTNumberExpr element)
inlinevirtual

◆ visit() [17/23]

virtual bool ASTVisitor::visit ( ASTOutputStmt element)
inlinevirtual

◆ visit() [18/23]

virtual bool ASTVisitor::visit ( ASTProgram element)
inlinevirtual

◆ visit() [19/23]

virtual bool ASTVisitor::visit ( ASTRecordExpr element)
inlinevirtual

◆ visit() [20/23]

virtual bool ASTVisitor::visit ( ASTRefExpr element)
inlinevirtual

◆ visit() [21/23]

virtual bool ASTVisitor::visit ( ASTReturnStmt element)
inlinevirtual

◆ visit() [22/23]

virtual bool ASTVisitor::visit ( ASTVariableExpr element)
inlinevirtual

◆ visit() [23/23]

virtual bool ASTVisitor::visit ( ASTWhileStmt element)
inlinevirtual

Reimplemented in PrettyPrinter.


The documentation for this class was generated from the following file: