From ea555c0ccd871a6641171f066688332b823781b7 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 23 Sep 2021 23:22:16 +0100 Subject: Simplify directive parsing for expressions --- src/parser.cpp | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index f72d8a73c..04d1dabc8 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -2018,26 +2018,6 @@ Ast *parse_operand(AstFile *f, bool lhs) { Token name = expect_token(f, Token_Ident); if (name.string == "type") { return ast_helper_type(f, token, parse_type(f)); - } else if (name.string == "file") { - return ast_basic_directive(f, token, name); - } else if (name.string == "line") { return ast_basic_directive(f, token, name); - } else if (name.string == "procedure") { return ast_basic_directive(f, token, name); - } else if (name.string == "caller_location") { return ast_basic_directive(f, token, name); - } else if (name.string == "location") { - Ast *tag = ast_basic_directive(f, token, name); - return parse_call_expr(f, tag); - } else if (name.string == "load") { - Ast *tag = ast_basic_directive(f, token, name); - return parse_call_expr(f, tag); - } else if (name.string == "assert") { - Ast *tag = ast_basic_directive(f, token, name); - return parse_call_expr(f, tag); - } else if (name.string == "defined") { - Ast *tag = ast_basic_directive(f, token, name); - return parse_call_expr(f, tag); - } else if (name.string == "config") { - Ast *tag = ast_basic_directive(f, token, name); - return parse_call_expr(f, tag); } else if (name.string == "soa" || name.string == "simd") { Ast *tag = ast_basic_directive(f, token, name); Ast *original_type = parse_type(f); @@ -2072,16 +2052,11 @@ Ast *parse_operand(AstFile *f, bool lhs) { tag = parse_call_expr(f, tag); Ast *type = parse_type(f); return ast_relative_type(f, tag, type); - } else if (name.string == "opaque") { - syntax_warning(token, "'#opaque' has been removed and will do nothing to the applied type"); - return parse_type(f); } else if (name.string == "force_inline" || name.string == "force_no_inline") { return parse_force_inlining_operand(f, name); - } else { - operand = ast_tag_expr(f, token, name, parse_expr(f, false)); } - return operand; + return ast_basic_directive(f, token, name); } // Parse Procedure Type or Literal or Group -- cgit v1.2.3