add modulus to AST and Typecheck

This commit is contained in:
2 changed files with 7 additions and 0 deletions

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