aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-04-30 17:20:37 +0100
committerGinger Bill <bill@gingerbill.org>2017-04-30 17:20:37 +0100
commitdc5587eae248cb2684536dc4cd01a13e6c6a5ca4 (patch)
tree648c02a6a8f1b0551786b957b7b69c34ba99f2e0
parent7057034b75f18cb2369e922053f74cda87738776 (diff)
Fix statement parsing of unary: & and ^
-rw-r--r--build.bat2
-rw-r--r--src/parser.c25
2 files changed, 3 insertions, 24 deletions
diff --git a/build.bat b/build.bat
index 51dfc84b4..c50fc93ef 100644
--- a/build.bat
+++ b/build.bat
@@ -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;