Add initial typechecker for AST #2

Merged
mrab merged 121 commits from typedAST into master 2024-06-14 07:53:30 +00:00
2 changed files with 7 additions and 0 deletions
Showing only changes of commit 20184c5e26 - Show all commits

View File

@ -30,6 +30,7 @@ data BinaryOperator
| Subtraction
| Multiplication
| Division
| Modulus
| BitwiseAnd
| BitwiseOr
| BitwiseXor

View File

@ -82,6 +82,12 @@ typeCheckExpression (BinaryOperation op expr1 expr2) symtab classes =
TypedExpression "int" (BinaryOperation op expr1' expr2')
else
error "Division operation requires two operands of type int"
Modulus ->
if type1 == "int" && type2 == "int"
then
TypedExpression "int" (BinaryOperation op expr1' expr2')
else
error "Modulus operation requires two operands of type int"
BitwiseAnd ->
if type1 == "int" && type2 == "int"
then