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

Base class for TIP type visitors. More...

#include <TipTypeVisitor.h>

Inheritance diagram for TipTypeVisitor:
Inheritance graph
[legend]

Public Member Functions

virtual bool visit (TipAlpha *element)
 
virtual void endVisit (TipAlpha *element)
 
virtual bool visit (TipFunction *element)
 
virtual void endVisit (TipFunction *element)
 
virtual bool visit (TipInt *element)
 
virtual void endVisit (TipInt *element)
 
virtual bool visit (TipMu *element)
 
virtual void endVisit (TipMu *element)
 
virtual bool visit (TipRecord *element)
 
virtual void endVisit (TipRecord *element)
 
virtual bool visit (TipAbsentField *element)
 
virtual void endVisit (TipAbsentField *element)
 
virtual bool visit (TipRef *element)
 
virtual void endVisit (TipRef *element)
 
virtual bool visit (TipVar *element)
 
virtual void endVisit (TipVar *element)
 

Detailed Description

Base class for TIP type visitors.

The type visitor class abstracts the traversal of an type. It works in concert with the accept methods of TipType subtypes. Each of those nodes performs a traversal of its children in order. 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 TipTypeVisitor 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 TipTypeVisitor 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/8]

virtual void TipTypeVisitor::endVisit ( TipAbsentField element)
inlinevirtual

Reimplemented in Substituter.

◆ endVisit() [2/8]

virtual void TipTypeVisitor::endVisit ( TipAlpha element)
inlinevirtual

Reimplemented in TypeVars, Substituter, FreshAlphaCopier, and Copier.

◆ endVisit() [3/8]

virtual void TipTypeVisitor::endVisit ( TipFunction element)
inlinevirtual

Reimplemented in Substituter.

◆ endVisit() [4/8]

virtual void TipTypeVisitor::endVisit ( TipInt element)
inlinevirtual

Reimplemented in Substituter.

◆ endVisit() [5/8]

virtual void TipTypeVisitor::endVisit ( TipMu element)
inlinevirtual

Reimplemented in TypeVars, and Substituter.

◆ endVisit() [6/8]

virtual void TipTypeVisitor::endVisit ( TipRecord element)
inlinevirtual

Reimplemented in Substituter.

◆ endVisit() [7/8]

virtual void TipTypeVisitor::endVisit ( TipRef element)
inlinevirtual

Reimplemented in Substituter.

◆ endVisit() [8/8]

virtual void TipTypeVisitor::endVisit ( TipVar element)
inlinevirtual

Reimplemented in TypeVars, Substituter, and Copier.

◆ visit() [1/8]

virtual bool TipTypeVisitor::visit ( TipAbsentField element)
inlinevirtual

◆ visit() [2/8]

virtual bool TipTypeVisitor::visit ( TipAlpha element)
inlinevirtual

◆ visit() [3/8]

virtual bool TipTypeVisitor::visit ( TipFunction element)
inlinevirtual

◆ visit() [4/8]

virtual bool TipTypeVisitor::visit ( TipInt element)
inlinevirtual

◆ visit() [5/8]

virtual bool TipTypeVisitor::visit ( TipMu element)
inlinevirtual

◆ visit() [6/8]

virtual bool TipTypeVisitor::visit ( TipRecord element)
inlinevirtual

◆ visit() [7/8]

virtual bool TipTypeVisitor::visit ( TipRef element)
inlinevirtual

◆ visit() [8/8]

virtual bool TipTypeVisitor::visit ( TipVar element)
inlinevirtual

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