Added modulus operator

This commit is contained in:
WerWolv
2021-01-20 22:55:57 +01:00
parent 78a87baa94
commit 31426a289c
5 changed files with 22 additions and 3 deletions

View File

@@ -192,6 +192,10 @@ namespace hex::lang {
return ~right;
}
FLOAT_BIT_OPERATION(modulus) {
return left % right;
}
}
ASTNodeIntegerLiteral* Evaluator::evaluateOperator(ASTNodeIntegerLiteral *left, ASTNodeIntegerLiteral *right, Token::Operator op) {
@@ -235,6 +239,8 @@ namespace hex::lang {
return new ASTNodeIntegerLiteral({ newType, leftValue * rightValue });
case Token::Operator::Slash:
return new ASTNodeIntegerLiteral({ newType, leftValue / rightValue });
case Token::Operator::Percent:
return new ASTNodeIntegerLiteral({ newType, modulus(leftValue, rightValue) });
case Token::Operator::ShiftLeft:
return new ASTNodeIntegerLiteral({ newType, shiftLeft(leftValue, rightValue) });
case Token::Operator::ShiftRight: