aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-09-23 23:22:16 +0100
committergingerBill <bill@gingerbill.org>2021-09-23 23:22:16 +0100
commitea555c0ccd871a6641171f066688332b823781b7 (patch)
treee4f8e4fdd0edb122d118a6e2ebf70f06df9d0d97 /src/parser.cpp
parent6a86b3c82b06396d0edfcc9fcd9f359813e5d116 (diff)
Simplify directive parsing for expressions
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp27
1 files changed, 1 insertions, 26 deletions
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