mirror of
https://github.com/ziglang/zig.git
synced 2025-12-30 18:13:19 +00:00
stage1: delete keywords
Backports 05cf449 to the C++ implementation.
This commit is contained in:
parent
e7424d5d2a
commit
be737bb5cc
@ -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;
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user