authorgravatar for codroid@gmail.comStevie Hryciw <codroid@gmail.com> 2022-11-04 13:34:10-07:00
committergravatar for mail@isaacfreund.comIsaac Freund <mail@isaacfreund.com> 2022-11-18 19:22:42+00:00
logbe737bb5ccf172773492f1834cf7e8b4a8bc1753
tree13e5e05ce0e2cbd02da4326f5eb385a1aec1fd7f
parente7424d5d2ab4ac0a44c76dae15aaf35817a9743e

stage1: delete keywords

Backports 05cf449 to the C++ implementation.

6 files changed, 0 insertions(+), 79 deletions(-)

src/stage1/all_types.hpp-8
......@@ -679,9 +679,6 @@ enum NodeType {
679679 NodeTypePtrDeref,
680680 NodeTypeUnwrapOptional,
681681 NodeTypeUsingNamespace,
682 NodeTypeBoolLiteral,
683 NodeTypeNullLiteral,
684 NodeTypeUndefinedLiteral,
685682 NodeTypeUnreachable,
686683 NodeTypeIfBoolExpr,
687684 NodeTypeWhileExpr,
......@@ -1171,10 +1168,6 @@ struct AstNodeEnumLiteral {
11711168 Buf *name;
11721169};
11731170
1174struct AstNodeBoolLiteral {
1175 bool value;
1176};
1177
11781171struct AstNodeBreakExpr {
11791172 Buf *name;
11801173 AstNode *expr; // may be null
......@@ -1240,7 +1233,6 @@ struct AstNode {
12401233 AstNodeStructField struct_field;
12411234 AstNodeContainerInitExpr container_init_expr;
12421235 AstNodeStructValueField struct_val_field;
1243 AstNodeBoolLiteral bool_literal;
12441236 AstNodeBreakExpr break_expr;
12451237 AstNodeContinueExpr continue_expr;
12461238 AstNodeArrayType array_type;
src/stage1/analyze.cpp-3
......@@ -4094,9 +4094,6 @@ void scan_decls(CodeGen *g, ScopeDecls *decls_scope, AstNode *node) {
40944094 case NodeTypeIntLiteral:
40954095 case NodeTypeStringLiteral:
40964096 case NodeTypeCharLiteral:
4097 case NodeTypeBoolLiteral:
4098 case NodeTypeNullLiteral:
4099 case NodeTypeUndefinedLiteral:
41004097 case NodeTypeIdentifier:
41014098 case NodeTypePrefixOpExpr:
41024099 case NodeTypePointerType:
src/stage1/astgen.cpp-25
......@@ -3857,12 +3857,6 @@ static Stage1ZirInst *astgen_char_lit(Stage1AstGen *ag, Scope *scope, AstNode *n
38573857 return ir_build_const_uint(ag, scope, node, codepoint);
38583858}
38593859
3860static Stage1ZirInst *astgen_null_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
3861 assert(node->type == NodeTypeNullLiteral);
3862
3863 return ir_build_const_null(ag, scope, node);
3864}
3865
38663860static Stage1ZirInst *astgen_identifier(Stage1AstGen *ag, Scope *scope, AstNode *node, LVal lval,
38673861 ResultLoc *result_loc)
38683862{
......@@ -6592,11 +6586,6 @@ static Stage1ZirInst *astgen_for_expr(Stage1AstGen *ag, Scope *parent_scope, Ast
65926586 return ir_lval_wrap(ag, parent_scope, phi, lval, result_loc);
65936587}
65946588
6595static Stage1ZirInst *astgen_bool_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
6596 assert(node->type == NodeTypeBoolLiteral);
6597 return ir_build_const_bool(ag, scope, node, node->data.bool_literal.value);
6598}
6599
66006589static Stage1ZirInst *astgen_enum_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
66016590 assert(node->type == NodeTypeEnumLiteral);
66026591 // Currently, stage1 runs astgen for every comptime function call,
......@@ -6736,11 +6725,6 @@ static Stage1ZirInst *astgen_anyframe_type(Stage1AstGen *ag, Scope *scope, AstNo
67366725 return ir_build_anyframe_type(ag, scope, node, payload_type_value);
67376726}
67386727
6739static Stage1ZirInst *astgen_undefined_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
6740 assert(node->type == NodeTypeUndefinedLiteral);
6741 return ir_build_const_undefined(ag, scope, node);
6742}
6743
67446728static Stage1ZirInst *astgen_asm_expr(Stage1AstGen *ag, Scope *scope, AstNode *node) {
67456729 assert(node->type == NodeTypeAsmExpr);
67466730 AstNodeAsmExpr *asm_expr = &node->data.asm_expr;
......@@ -8063,8 +8047,6 @@ static Stage1ZirInst *astgen_node_raw(Stage1AstGen *ag, AstNode *node, Scope *sc
80638047 Stage1ZirInst *load_ptr = ir_build_load_ptr(ag, scope, node, unwrapped_ptr);
80648048 return ir_expr_wrap(ag, scope, load_ptr, result_loc);
80658049 }
8066 case NodeTypeBoolLiteral:
8067 return ir_lval_wrap(ag, scope, astgen_bool_literal(ag, scope, node), lval, result_loc);
80688050 case NodeTypeArrayType:
80698051 return ir_lval_wrap(ag, scope, astgen_array_type(ag, scope, node), lval, result_loc);
80708052 case NodeTypePointerType:
......@@ -8073,12 +8055,8 @@ static Stage1ZirInst *astgen_node_raw(Stage1AstGen *ag, AstNode *node, Scope *sc
80738055 return ir_lval_wrap(ag, scope, astgen_anyframe_type(ag, scope, node), lval, result_loc);
80748056 case NodeTypeStringLiteral:
80758057 return ir_lval_wrap(ag, scope, astgen_string_literal(ag, scope, node), lval, result_loc);
8076 case NodeTypeUndefinedLiteral:
8077 return ir_lval_wrap(ag, scope, astgen_undefined_literal(ag, scope, node), lval, result_loc);
80788058 case NodeTypeAsmExpr:
80798059 return ir_lval_wrap(ag, scope, astgen_asm_expr(ag, scope, node), lval, result_loc);
8080 case NodeTypeNullLiteral:
8081 return ir_lval_wrap(ag, scope, astgen_null_literal(ag, scope, node), lval, result_loc);
80828060 case NodeTypeIfErrorExpr:
80838061 return astgen_if_err_expr(ag, scope, node, lval, result_loc);
80848062 case NodeTypeIfOptional:
......@@ -8163,14 +8141,11 @@ static Stage1ZirInst *astgen_node_extra(Stage1AstGen *ag, AstNode *node, Scope *
81638141 case NodeTypeWhileExpr:
81648142 case NodeTypeForExpr:
81658143 case NodeTypeReturnExpr:
8166 case NodeTypeBoolLiteral:
81678144 case NodeTypeArrayType:
81688145 case NodeTypePointerType:
81698146 case NodeTypeAnyFrameType:
81708147 case NodeTypeStringLiteral:
8171 case NodeTypeUndefinedLiteral:
81728148 case NodeTypeAsmExpr:
8173 case NodeTypeNullLiteral:
81748149 case NodeTypeIfErrorExpr:
81758150 case NodeTypeIfOptional:
81768151 case NodeTypeSwitchExpr:
src/stage1/parser.cpp-31
......@@ -1704,32 +1704,10 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
17041704 return res;
17051705 }
17061706
1707 TokenIndex false_token = eat_token_if(pc, TokenIdKeywordFalse);
1708 if (false_token != 0) {
1709 AstNode *res = ast_create_node(pc, NodeTypeBoolLiteral, false_token);
1710 res->data.bool_literal.value = false;
1711 return res;
1712 }
1713
1714 TokenIndex null = eat_token_if(pc, TokenIdKeywordNull);
1715 if (null != 0)
1716 return ast_create_node(pc, NodeTypeNullLiteral, null);
1717
17181707 TokenIndex anyframe = eat_token_if(pc, TokenIdKeywordAnyFrame);
17191708 if (anyframe != 0)
17201709 return ast_create_node(pc, NodeTypeAnyFrameType, anyframe);
17211710
1722 TokenIndex true_token = eat_token_if(pc, TokenIdKeywordTrue);
1723 if (true_token != 0) {
1724 AstNode *res = ast_create_node(pc, NodeTypeBoolLiteral, true_token);
1725 res->data.bool_literal.value = true;
1726 return res;
1727 }
1728
1729 TokenIndex undefined = eat_token_if(pc, TokenIdKeywordUndefined);
1730 if (undefined != 0)
1731 return ast_create_node(pc, NodeTypeUndefinedLiteral, undefined);
1732
17331711 TokenIndex unreachable = eat_token_if(pc, TokenIdKeywordUnreachable);
17341712 if (unreachable != 0)
17351713 return ast_create_node(pc, NodeTypeUnreachable, unreachable);
......@@ -3094,15 +3072,6 @@ void ast_visit_node_children(AstNode *node, void (*visit)(AstNode **, void *cont
30943072 case NodeTypeUsingNamespace:
30953073 visit_field(&node->data.using_namespace.expr, visit, context);
30963074 break;
3097 case NodeTypeBoolLiteral:
3098 // none
3099 break;
3100 case NodeTypeNullLiteral:
3101 // none
3102 break;
3103 case NodeTypeUndefinedLiteral:
3104 // none
3105 break;
31063075 case NodeTypeIfBoolExpr:
31073076 visit_field(&node->data.if_bool_expr.condition, visit, context);
31083077 visit_field(&node->data.if_bool_expr.then_block, visit, context);
src/stage1/tokenizer.cpp-8
......@@ -163,7 +163,6 @@ static const struct ZigKeyword zig_keywords[] = {
163163 {"error", TokenIdKeywordError},
164164 {"export", TokenIdKeywordExport},
165165 {"extern", TokenIdKeywordExtern},
166 {"false", TokenIdKeywordFalse},
167166 {"fn", TokenIdKeywordFn},
168167 {"for", TokenIdKeywordFor},
169168 {"if", TokenIdKeywordIf},
......@@ -171,7 +170,6 @@ static const struct ZigKeyword zig_keywords[] = {
171170 {"noalias", TokenIdKeywordNoAlias},
172171 {"noinline", TokenIdKeywordNoInline},
173172 {"nosuspend", TokenIdKeywordNoSuspend},
174 {"null", TokenIdKeywordNull},
175173 {"opaque", TokenIdKeywordOpaque},
176174 {"or", TokenIdKeywordOr},
177175 {"orelse", TokenIdKeywordOrElse},
......@@ -185,9 +183,7 @@ static const struct ZigKeyword zig_keywords[] = {
185183 {"switch", TokenIdKeywordSwitch},
186184 {"test", TokenIdKeywordTest},
187185 {"threadlocal", TokenIdKeywordThreadLocal},
188 {"true", TokenIdKeywordTrue},
189186 {"try", TokenIdKeywordTry},
190 {"undefined", TokenIdKeywordUndefined},
191187 {"union", TokenIdKeywordUnion},
192188 {"unreachable", TokenIdKeywordUnreachable},
193189 {"usingnamespace", TokenIdKeywordUsingNamespace},
......@@ -1563,7 +1559,6 @@ const char * token_name(TokenId id) {
15631559 case TokenIdKeywordError: return "error";
15641560 case TokenIdKeywordExport: return "export";
15651561 case TokenIdKeywordExtern: return "extern";
1566 case TokenIdKeywordFalse: return "false";
15671562 case TokenIdKeywordFn: return "fn";
15681563 case TokenIdKeywordFor: return "for";
15691564 case TokenIdKeywordIf: return "if";
......@@ -1571,7 +1566,6 @@ const char * token_name(TokenId id) {
15711566 case TokenIdKeywordNoAlias: return "noalias";
15721567 case TokenIdKeywordNoInline: return "noinline";
15731568 case TokenIdKeywordNoSuspend: return "nosuspend";
1574 case TokenIdKeywordNull: return "null";
15751569 case TokenIdKeywordOpaque: return "opaque";
15761570 case TokenIdKeywordOr: return "or";
15771571 case TokenIdKeywordOrElse: return "orelse";
......@@ -1583,9 +1577,7 @@ const char * token_name(TokenId id) {
15831577 case TokenIdKeywordSwitch: return "switch";
15841578 case TokenIdKeywordTest: return "test";
15851579 case TokenIdKeywordThreadLocal: return "threadlocal";
1586 case TokenIdKeywordTrue: return "true";
15871580 case TokenIdKeywordTry: return "try";
1588 case TokenIdKeywordUndefined: return "undefined";
15891581 case TokenIdKeywordUnion: return "union";
15901582 case TokenIdKeywordUnreachable: return "unreachable";
15911583 case TokenIdKeywordUsingNamespace: return "usingnamespace";
src/stage1/tokenizer.hpp-4
......@@ -72,7 +72,6 @@ enum TokenId : uint8_t {
7272 TokenIdKeywordError,
7373 TokenIdKeywordExport,
7474 TokenIdKeywordExtern,
75 TokenIdKeywordFalse,
7675 TokenIdKeywordFn,
7776 TokenIdKeywordFor,
7877 TokenIdKeywordIf,
......@@ -81,7 +80,6 @@ enum TokenId : uint8_t {
8180 TokenIdKeywordLinkSection,
8281 TokenIdKeywordNoAlias,
8382 TokenIdKeywordNoSuspend,
84 TokenIdKeywordNull,
8583 TokenIdKeywordOpaque,
8684 TokenIdKeywordOr,
8785 TokenIdKeywordOrElse,
......@@ -94,9 +92,7 @@ enum TokenId : uint8_t {
9492 TokenIdKeywordSwitch,
9593 TokenIdKeywordTest,
9694 TokenIdKeywordThreadLocal,
97 TokenIdKeywordTrue,
9895 TokenIdKeywordTry,
99 TokenIdKeywordUndefined,
10096 TokenIdKeywordUnion,
10197 TokenIdKeywordUnreachable,
10298 TokenIdKeywordUsingNamespace,