diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-05-09 16:21:31 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-05-09 16:21:31 +0100 |
| commit | c6d531df9597253ee95593c56e61039fe4e40ba2 (patch) | |
| tree | 8469ee00657577f4909891e8773231351f54b3cd /src/check_expr.c | |
| parent | 8677c81da7ca8af37c49a203a18fd7beab74f023 (diff) | |
Add %% operator (divisor modulo)
Diffstat (limited to 'src/check_expr.c')
| -rw-r--r-- | src/check_expr.c | 4 |
1 files changed, 4 insertions, 0 deletions
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; |