aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-05-22 12:32:29 +0100
committergingerBill <bill@gingerbill.org>2020-05-22 12:32:29 +0100
commit86b613fb15843b040b6c41d982eb86aa1c93a346 (patch)
tree052cbd0c2ea3a7ce412047b88d33e6fd742bebfb /src
parentd09ac8943ac38b955e9a10d22e5c2f3fba8e7eaa (diff)
Remove the need for `type_of`, `size_of`, `align_of`, `offset_of` to be keywords
Diffstat (limited to 'src')
-rw-r--r--src/check_expr.cpp17
-rw-r--r--src/parser.cpp16
-rw-r--r--src/tokenizer.cpp4
3 files changed, 0 insertions, 37 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 06c7e7f36..8def4d6ed 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -7769,23 +7769,6 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type
o->type = t_context;
break;
- case Token_size_of:
- o->mode = Addressing_Builtin;
- o->builtin_id = BuiltinProc_size_of;
- break;
- case Token_align_of:
- o->mode = Addressing_Builtin;
- o->builtin_id = BuiltinProc_align_of;
- break;
- case Token_offset_of:
- o->mode = Addressing_Builtin;
- o->builtin_id = BuiltinProc_offset_of;
- break;
- case Token_type_of:
- o->mode = Addressing_Builtin;
- o->builtin_id = BuiltinProc_type_of;
- break;
-
default:
error(node, "Illegal implicit name '%.*s'", LIT(i->string));
return kind;
diff --git a/src/parser.cpp b/src/parser.cpp
index c08325c26..664aeb56d 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -1731,11 +1731,6 @@ Ast *parse_operand(AstFile *f, bool lhs) {
case Token_Rune:
return ast_basic_lit(f, advance_token(f));
- case Token_size_of:
- case Token_align_of:
- case Token_offset_of:
- return parse_call_expr(f, ast_implicit(f, advance_token(f)));
-
case Token_String:
return ast_basic_lit(f, advance_token(f));
@@ -2016,17 +2011,6 @@ Ast *parse_operand(AstFile *f, bool lhs) {
return ast_typeid_type(f, token, nullptr);
} break;
- case Token_type_of: {
- Ast *i = ast_implicit(f, expect_token(f, Token_type_of));
- Ast *type = parse_call_expr(f, i);
- while (f->curr_token.kind == Token_Period) {
- Token token = advance_token(f);
- Ast *sel = parse_ident(f);
- type = ast_selector_expr(f, token, type, sel);
- }
- return type;
- } break;
-
case Token_Pointer: {
Token token = expect_token(f, Token_Pointer);
Ast *elem = parse_type(f);
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp
index 5ac590b22..b4c1b01a1 100644
--- a/src/tokenizer.cpp
+++ b/src/tokenizer.cpp
@@ -117,10 +117,6 @@ TOKEN_KIND(Token__KeywordBegin, ""), \
TOKEN_KIND(Token_inline, "inline"), \
TOKEN_KIND(Token_no_inline, "no_inline"), \
TOKEN_KIND(Token_context, "context"), \
- TOKEN_KIND(Token_size_of, "size_of"), \
- TOKEN_KIND(Token_align_of, "align_of"), \
- TOKEN_KIND(Token_offset_of, "offset_of"), \
- TOKEN_KIND(Token_type_of, "type_of"), \
TOKEN_KIND(Token_macro, "macro"), \
TOKEN_KIND(Token_const, "const"), \
TOKEN_KIND(Token__KeywordEnd, ""), \