stage1: delete keywords

Backports 05cf449 to the C++ implementation.
This commit is contained in:
Stevie Hryciw 2022-11-04 13:34:10 -07:00 committed by Isaac Freund
parent e7424d5d2a
commit be737bb5cc
6 changed files with 0 additions and 79 deletions

View File

@ -679,9 +679,6 @@ enum NodeType {
NodeTypePtrDeref,
NodeTypeUnwrapOptional,
NodeTypeUsingNamespace,
NodeTypeBoolLiteral,
NodeTypeNullLiteral,
NodeTypeUndefinedLiteral,
NodeTypeUnreachable,
NodeTypeIfBoolExpr,
NodeTypeWhileExpr,
@ -1171,10 +1168,6 @@ struct AstNodeEnumLiteral {
Buf *name;
};
struct AstNodeBoolLiteral {
bool value;
};
struct AstNodeBreakExpr {
Buf *name;
AstNode *expr; // may be null
@ -1240,7 +1233,6 @@ struct AstNode {
AstNodeStructField struct_field;
AstNodeContainerInitExpr container_init_expr;
AstNodeStructValueField struct_val_field;
AstNodeBoolLiteral bool_literal;
AstNodeBreakExpr break_expr;
AstNodeContinueExpr continue_expr;
AstNodeArrayType array_type;

View File

@ -4094,9 +4094,6 @@ void scan_decls(CodeGen *g, ScopeDecls *decls_scope, AstNode *node) {
case NodeTypeIntLiteral:
case NodeTypeStringLiteral:
case NodeTypeCharLiteral:
case NodeTypeBoolLiteral:
case NodeTypeNullLiteral:
case NodeTypeUndefinedLiteral:
case NodeTypeIdentifier:
case NodeTypePrefixOpExpr:
case NodeTypePointerType:

View File

@ -3857,12 +3857,6 @@ static Stage1ZirInst *astgen_char_lit(Stage1AstGen *ag, Scope *scope, AstNode *n
return ir_build_const_uint(ag, scope, node, codepoint);
}
static Stage1ZirInst *astgen_null_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
assert(node->type == NodeTypeNullLiteral);
return ir_build_const_null(ag, scope, node);
}
static Stage1ZirInst *astgen_identifier(Stage1AstGen *ag, Scope *scope, AstNode *node, LVal lval,
ResultLoc *result_loc)
{
@ -6592,11 +6586,6 @@ static Stage1ZirInst *astgen_for_expr(Stage1AstGen *ag, Scope *parent_scope, Ast
return ir_lval_wrap(ag, parent_scope, phi, lval, result_loc);
}
static Stage1ZirInst *astgen_bool_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
assert(node->type == NodeTypeBoolLiteral);
return ir_build_const_bool(ag, scope, node, node->data.bool_literal.value);
}
static Stage1ZirInst *astgen_enum_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
assert(node->type == NodeTypeEnumLiteral);
// Currently, stage1 runs astgen for every comptime function call,
@ -6736,11 +6725,6 @@ static Stage1ZirInst *astgen_anyframe_type(Stage1AstGen *ag, Scope *scope, AstNo
return ir_build_anyframe_type(ag, scope, node, payload_type_value);
}
static Stage1ZirInst *astgen_undefined_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) {
assert(node->type == NodeTypeUndefinedLiteral);
return ir_build_const_undefined(ag, scope, node);
}
static Stage1ZirInst *astgen_asm_expr(Stage1AstGen *ag, Scope *scope, AstNode *node) {
assert(node->type == NodeTypeAsmExpr);
AstNodeAsmExpr *asm_expr = &node->data.asm_expr;
@ -8063,8 +8047,6 @@ static Stage1ZirInst *astgen_node_raw(Stage1AstGen *ag, AstNode *node, Scope *sc
Stage1ZirInst *load_ptr = ir_build_load_ptr(ag, scope, node, unwrapped_ptr);
return ir_expr_wrap(ag, scope, load_ptr, result_loc);
}
case NodeTypeBoolLiteral:
return ir_lval_wrap(ag, scope, astgen_bool_literal(ag, scope, node), lval, result_loc);
case NodeTypeArrayType:
return ir_lval_wrap(ag, scope, astgen_array_type(ag, scope, node), lval, result_loc);
case NodeTypePointerType:
@ -8073,12 +8055,8 @@ static Stage1ZirInst *astgen_node_raw(Stage1AstGen *ag, AstNode *node, Scope *sc
return ir_lval_wrap(ag, scope, astgen_anyframe_type(ag, scope, node), lval, result_loc);
case NodeTypeStringLiteral:
return ir_lval_wrap(ag, scope, astgen_string_literal(ag, scope, node), lval, result_loc);
case NodeTypeUndefinedLiteral:
return ir_lval_wrap(ag, scope, astgen_undefined_literal(ag, scope, node), lval, result_loc);
case NodeTypeAsmExpr:
return ir_lval_wrap(ag, scope, astgen_asm_expr(ag, scope, node), lval, result_loc);
case NodeTypeNullLiteral:
return ir_lval_wrap(ag, scope, astgen_null_literal(ag, scope, node), lval, result_loc);
case NodeTypeIfErrorExpr:
return astgen_if_err_expr(ag, scope, node, lval, result_loc);
case NodeTypeIfOptional:
@ -8163,14 +8141,11 @@ static Stage1ZirInst *astgen_node_extra(Stage1AstGen *ag, AstNode *node, Scope *
case NodeTypeWhileExpr:
case NodeTypeForExpr:
case NodeTypeReturnExpr:
case NodeTypeBoolLiteral:
case NodeTypeArrayType:
case NodeTypePointerType:
case NodeTypeAnyFrameType:
case NodeTypeStringLiteral:
case NodeTypeUndefinedLiteral:
case NodeTypeAsmExpr:
case NodeTypeNullLiteral:
case NodeTypeIfErrorExpr:
case NodeTypeIfOptional:
case NodeTypeSwitchExpr:

View File

@ -1704,32 +1704,10 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
return res;
}
TokenIndex false_token = eat_token_if(pc, TokenIdKeywordFalse);
if (false_token != 0) {
AstNode *res = ast_create_node(pc, NodeTypeBoolLiteral, false_token);
res->data.bool_literal.value = false;
return res;
}
TokenIndex null = eat_token_if(pc, TokenIdKeywordNull);
if (null != 0)
return ast_create_node(pc, NodeTypeNullLiteral, null);
TokenIndex anyframe = eat_token_if(pc, TokenIdKeywordAnyFrame);
if (anyframe != 0)
return ast_create_node(pc, NodeTypeAnyFrameType, anyframe);
TokenIndex true_token = eat_token_if(pc, TokenIdKeywordTrue);
if (true_token != 0) {
AstNode *res = ast_create_node(pc, NodeTypeBoolLiteral, true_token);
res->data.bool_literal.value = true;
return res;
}
TokenIndex undefined = eat_token_if(pc, TokenIdKeywordUndefined);
if (undefined != 0)
return ast_create_node(pc, NodeTypeUndefinedLiteral, undefined);
TokenIndex unreachable = eat_token_if(pc, TokenIdKeywordUnreachable);
if (unreachable != 0)
return ast_create_node(pc, NodeTypeUnreachable, unreachable);
@ -3094,15 +3072,6 @@ void ast_visit_node_children(AstNode *node, void (*visit)(AstNode **, void *cont
case NodeTypeUsingNamespace:
visit_field(&node->data.using_namespace.expr, visit, context);
break;
case NodeTypeBoolLiteral:
// none
break;
case NodeTypeNullLiteral:
// none
break;
case NodeTypeUndefinedLiteral:
// none
break;
case NodeTypeIfBoolExpr:
visit_field(&node->data.if_bool_expr.condition, visit, context);
visit_field(&node->data.if_bool_expr.then_block, visit, context);

View File

@ -163,7 +163,6 @@ static const struct ZigKeyword zig_keywords[] = {
{"error", TokenIdKeywordError},
{"export", TokenIdKeywordExport},
{"extern", TokenIdKeywordExtern},
{"false", TokenIdKeywordFalse},
{"fn", TokenIdKeywordFn},
{"for", TokenIdKeywordFor},
{"if", TokenIdKeywordIf},
@ -171,7 +170,6 @@ static const struct ZigKeyword zig_keywords[] = {
{"noalias", TokenIdKeywordNoAlias},
{"noinline", TokenIdKeywordNoInline},
{"nosuspend", TokenIdKeywordNoSuspend},
{"null", TokenIdKeywordNull},
{"opaque", TokenIdKeywordOpaque},
{"or", TokenIdKeywordOr},
{"orelse", TokenIdKeywordOrElse},
@ -185,9 +183,7 @@ static const struct ZigKeyword zig_keywords[] = {
{"switch", TokenIdKeywordSwitch},
{"test", TokenIdKeywordTest},
{"threadlocal", TokenIdKeywordThreadLocal},
{"true", TokenIdKeywordTrue},
{"try", TokenIdKeywordTry},
{"undefined", TokenIdKeywordUndefined},
{"union", TokenIdKeywordUnion},
{"unreachable", TokenIdKeywordUnreachable},
{"usingnamespace", TokenIdKeywordUsingNamespace},
@ -1563,7 +1559,6 @@ const char * token_name(TokenId id) {
case TokenIdKeywordError: return "error";
case TokenIdKeywordExport: return "export";
case TokenIdKeywordExtern: return "extern";
case TokenIdKeywordFalse: return "false";
case TokenIdKeywordFn: return "fn";
case TokenIdKeywordFor: return "for";
case TokenIdKeywordIf: return "if";
@ -1571,7 +1566,6 @@ const char * token_name(TokenId id) {
case TokenIdKeywordNoAlias: return "noalias";
case TokenIdKeywordNoInline: return "noinline";
case TokenIdKeywordNoSuspend: return "nosuspend";
case TokenIdKeywordNull: return "null";
case TokenIdKeywordOpaque: return "opaque";
case TokenIdKeywordOr: return "or";
case TokenIdKeywordOrElse: return "orelse";
@ -1583,9 +1577,7 @@ const char * token_name(TokenId id) {
case TokenIdKeywordSwitch: return "switch";
case TokenIdKeywordTest: return "test";
case TokenIdKeywordThreadLocal: return "threadlocal";
case TokenIdKeywordTrue: return "true";
case TokenIdKeywordTry: return "try";
case TokenIdKeywordUndefined: return "undefined";
case TokenIdKeywordUnion: return "union";
case TokenIdKeywordUnreachable: return "unreachable";
case TokenIdKeywordUsingNamespace: return "usingnamespace";

View File

@ -72,7 +72,6 @@ enum TokenId : uint8_t {
TokenIdKeywordError,
TokenIdKeywordExport,
TokenIdKeywordExtern,
TokenIdKeywordFalse,
TokenIdKeywordFn,
TokenIdKeywordFor,
TokenIdKeywordIf,
@ -81,7 +80,6 @@ enum TokenId : uint8_t {
TokenIdKeywordLinkSection,
TokenIdKeywordNoAlias,
TokenIdKeywordNoSuspend,
TokenIdKeywordNull,
TokenIdKeywordOpaque,
TokenIdKeywordOr,
TokenIdKeywordOrElse,
@ -94,9 +92,7 @@ enum TokenId : uint8_t {
TokenIdKeywordSwitch,
TokenIdKeywordTest,
TokenIdKeywordThreadLocal,
TokenIdKeywordTrue,
TokenIdKeywordTry,
TokenIdKeywordUndefined,
TokenIdKeywordUnion,
TokenIdKeywordUnreachable,
TokenIdKeywordUsingNamespace,