|
tipc
A TIP to LLVM compiler
|
Visitor generates type constraints and collects them. More...
#include <PolyTypeConstraintCollectVisitor.h>


Public Member Functions | |
| PolyTypeConstraintCollectVisitor (SymbolTable *pTable, CallGraph *callGraph, std::shared_ptr< Unifier > u) | |
| std::vector< TypeConstraint > & | getCollectedConstraints () |
Public Member Functions inherited from PolyTypeConstraintVisitor | |
| PolyTypeConstraintVisitor (SymbolTable *pTable, CallGraph *callGraph, std::shared_ptr< Unifier > u, std::unique_ptr< ConstraintHandler > handler) | |
| virtual void | endVisit (ASTFunAppExpr *element) override |
| Polymorphic type constraints for function application. More... | |
Public Member Functions inherited from TypeConstraintVisitor | |
| 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... | |
Public Member Functions inherited from ASTVisitor | |
| 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 | |
Protected Member Functions inherited from TypeConstraintVisitor | |
| std::shared_ptr< TipType > | astToVar (ASTNode *n) |
Protected Attributes inherited from TypeConstraintVisitor | |
| std::shared_ptr< ConstraintHandler > | constraintHandler |
| SymbolTable * | symbolTable |
Visitor generates type constraints and collects them.
|
explicit |
| std::vector< TypeConstraint > & PolyTypeConstraintCollectVisitor::getCollectedConstraints | ( | ) |