39 std::shared_ptr<ConstraintHandler> handler);
65 std::stack<ASTDeclNode *> scope;
Class for a record field access.
Definition: ASTAccessExpr.h:7
Class for alloc expression.
Definition: ASTAllocExpr.h:7
Class for assignment.
Definition: ASTAssignStmt.h:8
Class for a binary operator.
Definition: ASTBinaryExpr.h:7
Class for dereferencing a pointer expression.
Definition: ASTDeRefExpr.h:7
Class for a error statement.
Definition: ASTErrorStmt.h:8
Class for function call expressions.
Definition: ASTFunAppExpr.h:7
Class for defining the signature, local declarations, and a body of a function.
Definition: ASTFunction.h:11
Class for if-then-else.
Definition: ASTIfStmt.h:8
Abstract base class for all AST nodes.
Definition: ASTNode.h:34
Class for a null expression.
Definition: ASTNullExpr.h:7
Class for numeric literals.
Definition: ASTNumberExpr.h:7
Class for an output statement.
Definition: ASTOutputStmt.h:8
Class for defining a record.
Definition: ASTRecordExpr.h:8
Class for referencing the address of an expression.
Definition: ASTRefExpr.h:7
Base class for AST visitors.
Definition: ASTVisitor.h:23
Class for a while loop.
Definition: ASTWhileStmt.h:8
Performs symbol analysis and records results for subsequent phases.
Definition: SymbolTable.h:17
Visitor generates type constraints and processes them.
Definition: TypeConstraintVisitor.h:22
std::shared_ptr< TipType > astToVar(ASTNode *n)
Definition: TypeConstraintVisitor.cpp:22
TypeConstraintVisitor()=delete
std::shared_ptr< ConstraintHandler > constraintHandler
Definition: TypeConstraintVisitor.h:60
SymbolTable * symbolTable
Definition: TypeConstraintVisitor.h:61
bool visit(ASTFunction *element) override
Definition: TypeConstraintVisitor.cpp:35
void endVisit(ASTAccessExpr *element) override
Type constraints for field access.
Definition: TypeConstraintVisitor.cpp:272