diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-04-30 17:20:37 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-04-30 17:20:37 +0100 |
| commit | dc5587eae248cb2684536dc4cd01a13e6c6a5ca4 (patch) | |
| tree | 648c02a6a8f1b0551786b957b7b69c34ba99f2e0 | |
| parent | 7057034b75f18cb2369e922053f74cda87738776 (diff) | |
Fix statement parsing of unary: & and ^
| -rw-r--r-- | build.bat | 2 | ||||
| -rw-r--r-- | src/parser.c | 25 |
2 files changed, 3 insertions, 24 deletions
@@ -4,7 +4,7 @@ set exe_name=odin.exe :: Debug = 0, Release = 1 -set release_mode=0 +set release_mode=1 set compiler_flags= -nologo -Oi -TC -fp:fast -fp:except- -Gm- -MP -FC -GS- -EHsc- -GR- if %release_mode% EQU 0 ( rem Debug diff --git a/src/parser.c b/src/parser.c index ad1e2945f..cd8f65652 100644 --- a/src/parser.c +++ b/src/parser.c @@ -2077,29 +2077,6 @@ AstNode *parse_atom_expr(AstFile *f, bool lhs) { AstNode *parse_unary_expr(AstFile *f, bool lhs) { switch (f->curr_token.kind) { - - // case Token_cast: - // case Token_transmute: - // case Token_union_cast: - // { - // Token token = f->curr_token; next_token(f); - // Token open = expect_token(f, Token_OpenParen); - // AstNode *type = parse_type(f); - // Token close = expect_token(f, Token_CloseParen); - // AstNode *expr = parse_unary_expr(f, lhs); - // return ast_cast_expr(f, token, type, expr, open, close); - // } break; - - // case Token_Pointer: { - // Token op = f->curr_token; - // next_token(f); - // AstNode *expr = parse_unary_expr(f, lhs); - // if (is_ast_node_type(expr)) { - // return ast_pointer_type(f, op, expr); - // } - // return ast_unary_expr(f, op, expr); - // } break; - case Token_Add: case Token_Sub: case Token_Not: @@ -3295,11 +3272,13 @@ AstNode *parse_stmt(AstFile *f) { case Token_Rune: case Token_String: case Token_OpenParen: + case Token_Pointer: // Unary Operators case Token_Add: case Token_Sub: case Token_Xor: case Token_Not: + case Token_And: s = parse_simple_stmt(f, false); expect_semicolon(f, s); return s; |