From a1186025449f9a1c247b873376c454a1b96b0bf3 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sat, 19 Sep 2020 07:52:12 -0500 Subject: [PATCH] added bitwise not operator --- CHANGELOG | 3 +++ include/onyxastnodes.h | 1 + onyx | Bin 479508 -> 481812 bytes src/onyxchecker.c | 9 +++++++++ src/onyxparser.c | 10 ++++++++++ src/onyxutils.c | 8 ++++++++ src/onyxwasm.c | 20 ++++++++++++++++++++ tests/i32map.onyx | 1 - 8 files changed, 51 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 1b18ec8e..8493ae48 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,10 +2,13 @@ Release v0.0.4 -------------- Additions: * Ability to pass complicated structs by value. Very useful in polymorphic data types. +* bitwise not operator, ~ Removals: Changes: +* Procedure definitions now require parentheses, even if there are no arguments. This was + done to allow for `proc { foo, bar }` to be the overload syntax. Bug fixes: diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 603b5a26..995b927e 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -193,6 +193,7 @@ typedef enum AstFlags { typedef enum UnaryOp { Unary_Op_Negate, Unary_Op_Not, + Unary_Op_Bitwise_Not, Unary_Op_Cast, } UnaryOp; diff --git a/onyx b/onyx index cf7966737a3f0ed1b3c1dcf67cf50888f3e75535..9304849e4314e31947d6b40fb229bc73e2c290d0 100755 GIT binary patch delta 79210 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

rEF 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 delta 77612 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 diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 7c238aff..107e469b 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -762,6 +762,15 @@ b32 check_unaryop(AstUnaryOp** punop) { unaryop->type = unaryop->expr->type; } + if (unaryop->operation == Unary_Op_Bitwise_Not) { + if (!type_is_integer(unaryop->expr->type)) { + onyx_report_error(unaryop->token->pos, + "Bitwise operator expected integer type, got '%s'.", + type_get_name(unaryop->expr->type)); + return 1; + } + } + if (unaryop->expr->flags & Ast_Flag_Comptime) { unaryop->flags |= Ast_Flag_Comptime; // NOTE: Not a unary op diff --git a/src/onyxparser.c b/src/onyxparser.c index 5519ee02..bdc363f5 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -306,6 +306,16 @@ static AstTyped* parse_factor(OnyxParser* parser) { break; } + case '~': { + AstUnaryOp* not_node = make_node(AstUnaryOp, Ast_Kind_Unary_Op); + not_node->operation = Unary_Op_Bitwise_Not; + not_node->token = expect_token(parser, '~'); + not_node->expr = parse_factor(parser); + + retval = (AstTyped *) not_node; + break; + } + case '*': { AstDereference* deref_node = make_node(AstDereference, Ast_Kind_Dereference); deref_node->token = expect_token(parser, '*'); diff --git a/src/onyxutils.c b/src/onyxutils.c index f1099fb8..1d21ecba 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -293,6 +293,13 @@ AstNumLit* ast_reduce_binop(bh_allocator a, AstBinaryOp* node) { } \ break; +#define REDUCE_UNOP_INT(op) \ + if (type_is_small_integer(unop->type) || type_is_bool(unop->type)) { \ + res->value.i = op ((AstNumLit *) unop->expr)->value.i; \ + } else if (type_is_integer(unop->type)) { \ + res->value.l = op ((AstNumLit *) unop->expr)->value.l; \ + } + AstTyped* ast_reduce_unaryop(bh_allocator a, AstUnaryOp* unop) { unop->expr = ast_reduce(a, unop->expr); @@ -312,6 +319,7 @@ AstTyped* ast_reduce_unaryop(bh_allocator a, AstUnaryOp* unop) { if (type_is_bool(res->type)) res->value.i = ! ((AstNumLit *) unop->expr)->value.i; break; } + case Unary_Op_Bitwise_Not: REDUCE_UNOP_INT(~); default: return (AstTyped *) unop; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 2ea7e1bc..fa03b7d2 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -1289,6 +1289,26 @@ EMIT_FUNC(unaryop, AstUnaryOp* unop) { WI(WI_I32_EQZ); break; + case Unary_Op_Bitwise_Not: { + emit_expression(mod, &code, unop->expr); + + TypeBasic* type = &unop->type->Basic; + + if (type->kind == Basic_Kind_I32 + || type->kind == Basic_Kind_I16 + || type->kind == Basic_Kind_I8) { + WID(WI_I32_CONST, 0xffffffff); + WI(WI_I32_XOR); + + } + else if (type->kind == Basic_Kind_I64) { + WIL(WI_I64_CONST, 0xffffffffffffffff); + WI(WI_I64_XOR); + } + + break; + } + case Unary_Op_Cast: emit_cast(mod, &code, unop); break; } diff --git a/tests/i32map.onyx b/tests/i32map.onyx index 92385c87..a6f3e6f1 100644 --- a/tests/i32map.onyx +++ b/tests/i32map.onyx @@ -11,7 +11,6 @@ main :: proc (args: [] cstring) { print("Freeing map\n"); i32map_free(^imap); } - i32map_put(^imap, 50, "Hello "); i32map_put(^imap, 1234, "World!"); -- 2.25.1