tipc
A TIP to LLVM compiler
|
Visitor generates type constraints and unifies them on-the-fly. More...
#include <TypeConstraintUnifyVisitor.h>
Public Member Functions | |
TypeConstraintUnifyVisitor (SymbolTable *pTable) | |
![]() | |
TypeConstraintVisitor ()=delete | |
TypeConstraintVisitor (SymbolTable *st, std::shared_ptr< ConstraintHandler > handler) | |
bool | visit (ASTFunction *element) override |
void | endVisit (ASTAccessExpr *element) override |
Type constraints for field access. More... | |
void | endVisit (ASTAllocExpr *element) override |
Type constraints for heap allocation. More... | |
void | endVisit (ASTAssignStmt *element) override |
Type rules for assignments. More... | |
void | endVisit (ASTBinaryExpr *element) override |
Type constraints for binary operator. More... | |
void | endVisit (ASTDeRefExpr *element) override |
Type constraints for pointer dereference. More... | |
void | endVisit (ASTErrorStmt *element) override |
Type constraints for error statement. More... | |
void | endVisit (ASTFunAppExpr *element) override |
Type constraints for function application. More... | |
void | endVisit (ASTFunction *element) override |
Type constraints for function definition. More... | |
void | endVisit (ASTIfStmt *element) override |
Type constraints for if statement. More... | |
void | endVisit (ASTInputExpr *element) override |
Type constraints for input statement. More... | |
void | endVisit (ASTNullExpr *element) override |
Type constraints for null literal. More... | |
void | endVisit (ASTNumberExpr *element) override |
Type constraints for numeric literal. More... | |
void | endVisit (ASTOutputStmt *element) override |
Type constraints for output statement. More... | |
void | endVisit (ASTRecordExpr *element) override |
Type constraints for record expression. More... | |
void | endVisit (ASTRefExpr *element) override |
Type constraints for address of. More... | |
void | endVisit (ASTWhileStmt *element) override |
Type constraints for while loop. More... | |
![]() | |
virtual bool | visit (ASTProgram *element) |
virtual void | endVisit (ASTProgram *element) |
virtual bool | visit (ASTNumberExpr *element) |
virtual bool | visit (ASTVariableExpr *element) |
virtual void | endVisit (ASTVariableExpr *element) |
virtual bool | visit (ASTBinaryExpr *element) |
virtual bool | visit (ASTInputExpr *element) |
virtual bool | visit (ASTFunAppExpr *element) |
virtual bool | visit (ASTAllocExpr *element) |
virtual bool | visit (ASTRefExpr *element) |
virtual bool | visit (ASTDeRefExpr *element) |
virtual bool | visit (ASTNullExpr *element) |
virtual bool | visit (ASTFieldExpr *element) |
virtual void | endVisit (ASTFieldExpr *element) |
virtual bool | visit (ASTRecordExpr *element) |
virtual bool | visit (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 bool | visit (ASTWhileStmt *element) |
virtual bool | visit (ASTIfStmt *element) |
virtual bool | visit (ASTOutputStmt *element) |
virtual bool | visit (ASTReturnStmt *element) |
virtual void | endVisit (ASTReturnStmt *element) |
virtual bool | visit (ASTErrorStmt *element) |
virtual bool | visit (ASTBlockStmt *element) |
virtual void | endVisit (ASTBlockStmt *element) |
Additional Inherited Members | |
![]() | |
std::shared_ptr< TipType > | astToVar (ASTNode *n) |
![]() | |
std::shared_ptr< ConstraintHandler > | constraintHandler |
SymbolTable * | symbolTable |
Visitor generates type constraints and unifies them on-the-fly.
|
explicit |