From c6d531df9597253ee95593c56e61039fe4e40ba2 Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Tue, 9 May 2017 16:21:31 +0100 Subject: Add %% operator (divisor modulo) --- src/check_expr.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/check_expr.c') diff --git a/src/check_expr.c b/src/check_expr.c index 089f706e4..4dcb04c07 100644 --- a/src/check_expr.c +++ b/src/check_expr.c @@ -1864,8 +1864,10 @@ bool check_binary_op(Checker *c, Operand *o, Token op) { break; case Token_Mod: + case Token_ModMod: case Token_AndNot: case Token_ModEq: + case Token_ModModEq: case Token_AndNotEq: if (!is_type_integer(type)) { error(op, "Operator `%.*s` is only allowed with integers", LIT(op.string)); @@ -2669,8 +2671,10 @@ void check_binary_expr(Checker *c, Operand *x, AstNode *node) { switch (op.kind) { case Token_Quo: case Token_Mod: + case Token_ModMod: case Token_QuoEq: case Token_ModEq: + case Token_ModModEq: if ((x->mode == Addressing_Constant || is_type_integer(x->type)) && y->mode == Addressing_Constant) { bool fail = false; -- cgit v1.2.3