authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-08-28 10:54:14-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-08-28 12:10:55-07:00
log05cf44933d753f7a5a53ab289ea60fd43761de57
tree41c6fd4776628161769f26161baa36d77ba1c47c
parent6a6e2cd64f3ebb1919dd0ac53d8a1f29c56e6ec2

stage2: delete keywords `true`, `false`, `undefined`, `null`

The grammar does not need these as keywords; they are merely primitives provided by the language the same as `void`, `u32`, etc.

8 files changed, 28 insertions(+), 125 deletions(-)

doc/docgen.zig+14-15
...@@ -887,16 +887,6 @@ fn tokenizeAndPrintRaw(...@@ -887,16 +887,6 @@ fn tokenizeAndPrintRaw(
887 next_tok_is_fn = true;887 next_tok_is_fn = true;
888 },888 },
889889
890 .keyword_undefined,
891 .keyword_null,
892 .keyword_true,
893 .keyword_false,
894 => {
895 try out.writeAll("<span class=\"tok-null\">");
896 try writeEscaped(out, src[token.loc.start..token.loc.end]);
897 try out.writeAll("</span>");
898 },
899
900 .string_literal,890 .string_literal,
901 .multiline_string_literal_line,891 .multiline_string_literal_line,
902 .char_literal,892 .char_literal,
...@@ -921,9 +911,18 @@ fn tokenizeAndPrintRaw(...@@ -921,9 +911,18 @@ fn tokenizeAndPrintRaw(
921 },911 },
922912
923 .identifier => {913 .identifier => {
924 if (prev_tok_was_fn) {914 const tok_bytes = src[token.loc.start..token.loc.end];
915 if (mem.eql(u8, tok_bytes, "undefined") or
916 mem.eql(u8, tok_bytes, "null") or
917 mem.eql(u8, tok_bytes, "true") or
918 mem.eql(u8, tok_bytes, "false"))
919 {
920 try out.writeAll("<span class=\"tok-null\">");
921 try writeEscaped(out, tok_bytes);
922 try out.writeAll("</span>");
923 } else if (prev_tok_was_fn) {
925 try out.writeAll("<span class=\"tok-fn\">");924 try out.writeAll("<span class=\"tok-fn\">");
926 try writeEscaped(out, src[token.loc.start..token.loc.end]);925 try writeEscaped(out, tok_bytes);
927 try out.writeAll("</span>");926 try out.writeAll("</span>");
928 } else {927 } else {
929 const is_int = blk: {928 const is_int = blk: {
...@@ -938,12 +937,12 @@ fn tokenizeAndPrintRaw(...@@ -938,12 +937,12 @@ fn tokenizeAndPrintRaw(
938 }937 }
939 break :blk true;938 break :blk true;
940 };939 };
941 if (is_int or isType(src[token.loc.start..token.loc.end])) {940 if (is_int or isType(tok_bytes)) {
942 try out.writeAll("<span class=\"tok-type\">");941 try out.writeAll("<span class=\"tok-type\">");
943 try writeEscaped(out, src[token.loc.start..token.loc.end]);942 try writeEscaped(out, tok_bytes);
944 try out.writeAll("</span>");943 try out.writeAll("</span>");
945 } else {944 } else {
946 try writeEscaped(out, src[token.loc.start..token.loc.end]);945 try writeEscaped(out, tok_bytes);
947 }946 }
948 }947 }
949 },948 },
doc/langref.html.in+4-12
...@@ -11564,11 +11564,7 @@ PrimaryTypeExpr...@@ -11564,11 +11564,7 @@ PrimaryTypeExpr
11564 / INTEGER11564 / INTEGER
11565 / KEYWORD_comptime TypeExpr11565 / KEYWORD_comptime TypeExpr
11566 / KEYWORD_error DOT IDENTIFIER11566 / KEYWORD_error DOT IDENTIFIER
11567 / KEYWORD_false
11568 / KEYWORD_null
11569 / KEYWORD_anyframe11567 / KEYWORD_anyframe
11570 / KEYWORD_true
11571 / KEYWORD_undefined
11572 / KEYWORD_unreachable11568 / KEYWORD_unreachable
11573 / STRINGLITERAL11569 / STRINGLITERAL
11574 / SwitchExpr11570 / SwitchExpr
...@@ -11937,7 +11933,6 @@ KEYWORD_errdefer &lt;- 'errdefer' end_of_word...@@ -11937,7 +11933,6 @@ KEYWORD_errdefer &lt;- 'errdefer' end_of_word
11937KEYWORD_error &lt;- 'error' end_of_word11933KEYWORD_error &lt;- 'error' end_of_word
11938KEYWORD_export &lt;- 'export' end_of_word11934KEYWORD_export &lt;- 'export' end_of_word
11939KEYWORD_extern &lt;- 'extern' end_of_word11935KEYWORD_extern &lt;- 'extern' end_of_word
11940KEYWORD_false &lt;- 'false' end_of_word
11941KEYWORD_fn &lt;- 'fn' end_of_word11936KEYWORD_fn &lt;- 'fn' end_of_word
11942KEYWORD_for &lt;- 'for' end_of_word11937KEYWORD_for &lt;- 'for' end_of_word
11943KEYWORD_if &lt;- 'if' end_of_word11938KEYWORD_if &lt;- 'if' end_of_word
...@@ -11945,7 +11940,6 @@ KEYWORD_inline &lt;- 'inline' end_of_word...@@ -11945,7 +11940,6 @@ KEYWORD_inline &lt;- 'inline' end_of_word
11945KEYWORD_noalias &lt;- 'noalias' end_of_word11940KEYWORD_noalias &lt;- 'noalias' end_of_word
11946KEYWORD_nosuspend &lt;- 'nosuspend' end_of_word11941KEYWORD_nosuspend &lt;- 'nosuspend' end_of_word
11947KEYWORD_noinline &lt;- 'noinline' end_of_word11942KEYWORD_noinline &lt;- 'noinline' end_of_word
11948KEYWORD_null &lt;- 'null' end_of_word
11949KEYWORD_opaque &lt;- 'opaque' end_of_word11943KEYWORD_opaque &lt;- 'opaque' end_of_word
11950KEYWORD_or &lt;- 'or' end_of_word11944KEYWORD_or &lt;- 'or' end_of_word
11951KEYWORD_orelse &lt;- 'orelse' end_of_word11945KEYWORD_orelse &lt;- 'orelse' end_of_word
...@@ -11959,9 +11953,7 @@ KEYWORD_suspend &lt;- 'suspend' end_of_word...@@ -11959,9 +11953,7 @@ KEYWORD_suspend &lt;- 'suspend' end_of_word
11959KEYWORD_switch &lt;- 'switch' end_of_word11953KEYWORD_switch &lt;- 'switch' end_of_word
11960KEYWORD_test &lt;- 'test' end_of_word11954KEYWORD_test &lt;- 'test' end_of_word
11961KEYWORD_threadlocal &lt;- 'threadlocal' end_of_word11955KEYWORD_threadlocal &lt;- 'threadlocal' end_of_word
11962KEYWORD_true &lt;- 'true' end_of_word
11963KEYWORD_try &lt;- 'try' end_of_word11956KEYWORD_try &lt;- 'try' end_of_word
11964KEYWORD_undefined &lt;- 'undefined' end_of_word
11965KEYWORD_union &lt;- 'union' end_of_word11957KEYWORD_union &lt;- 'union' end_of_word
11966KEYWORD_unreachable &lt;- 'unreachable' end_of_word11958KEYWORD_unreachable &lt;- 'unreachable' end_of_word
11967KEYWORD_usingnamespace &lt;- 'usingnamespace' end_of_word11959KEYWORD_usingnamespace &lt;- 'usingnamespace' end_of_word
...@@ -11974,13 +11966,13 @@ keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe...@@ -11974,13 +11966,13 @@ keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe
11974 / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime11966 / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime
11975 / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else11967 / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else
11976 / KEYWORD_enum / KEYWORD_errdefer / KEYWORD_error / KEYWORD_export11968 / KEYWORD_enum / KEYWORD_errdefer / KEYWORD_error / KEYWORD_export
11977 / KEYWORD_extern / KEYWORD_false / KEYWORD_fn / KEYWORD_for / KEYWORD_if11969 / KEYWORD_extern / KEYWORD_fn / KEYWORD_for / KEYWORD_if
11978 / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline11970 / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline
11979 / KEYWORD_null / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed11971 / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed
11980 / KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection11972 / KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection
11981 / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch11973 / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch
11982 / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try11974 / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_try
11983 / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable11975 / KEYWORD_union / KEYWORD_unreachable
11984 / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while11976 / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while
11985</code></pre>11977</code></pre>
11986 {#header_close#}11978 {#header_close#}
lib/std/zig/ast.zig-16
...@@ -346,10 +346,6 @@ pub const Tree = struct {...@@ -346,10 +346,6 @@ pub const Tree = struct {
346 .char_literal,346 .char_literal,
347 .integer_literal,347 .integer_literal,
348 .float_literal,348 .float_literal,
349 .false_literal,
350 .true_literal,
351 .null_literal,
352 .undefined_literal,
353 .unreachable_literal,349 .unreachable_literal,
354 .string_literal,350 .string_literal,
355 .multiline_string_literal,351 .multiline_string_literal,
...@@ -711,10 +707,6 @@ pub const Tree = struct {...@@ -711,10 +707,6 @@ pub const Tree = struct {
711 .char_literal,707 .char_literal,
712 .integer_literal,708 .integer_literal,
713 .float_literal,709 .float_literal,
714 .false_literal,
715 .true_literal,
716 .null_literal,
717 .undefined_literal,
718 .unreachable_literal,710 .unreachable_literal,
719 .identifier,711 .identifier,
720 .deref,712 .deref,
...@@ -2757,14 +2749,6 @@ pub const Node = struct {...@@ -2757,14 +2749,6 @@ pub const Node = struct {
2757 /// Both lhs and rhs unused.2749 /// Both lhs and rhs unused.
2758 float_literal,2750 float_literal,
2759 /// Both lhs and rhs unused.2751 /// Both lhs and rhs unused.
2760 false_literal,
2761 /// Both lhs and rhs unused.
2762 true_literal,
2763 /// Both lhs and rhs unused.
2764 null_literal,
2765 /// Both lhs and rhs unused.
2766 undefined_literal,
2767 /// Both lhs and rhs unused.
2768 unreachable_literal,2752 unreachable_literal,
2769 /// Both lhs and rhs unused.2753 /// Both lhs and rhs unused.
2770 /// Most identifiers will not have explicit AST nodes, however for expressions2754 /// Most identifiers will not have explicit AST nodes, however for expressions
lib/std/zig/parse.zig-36
...@@ -2226,11 +2226,7 @@ const Parser = struct {...@@ -2226,11 +2226,7 @@ const Parser = struct {
2226 /// / INTEGER2226 /// / INTEGER
2227 /// / KEYWORD_comptime TypeExpr2227 /// / KEYWORD_comptime TypeExpr
2228 /// / KEYWORD_error DOT IDENTIFIER2228 /// / KEYWORD_error DOT IDENTIFIER
2229 /// / KEYWORD_false
2230 /// / KEYWORD_null
2231 /// / KEYWORD_anyframe2229 /// / KEYWORD_anyframe
2232 /// / KEYWORD_true
2233 /// / KEYWORD_undefined
2234 /// / KEYWORD_unreachable2230 /// / KEYWORD_unreachable
2235 /// / STRINGLITERAL2231 /// / STRINGLITERAL
2236 /// / SwitchExpr2232 /// / SwitchExpr
...@@ -2273,38 +2269,6 @@ const Parser = struct {...@@ -2273,38 +2269,6 @@ const Parser = struct {
2273 .rhs = undefined,2269 .rhs = undefined,
2274 },2270 },
2275 }),2271 }),
2276 .keyword_false => return p.addNode(.{
2277 .tag = .false_literal,
2278 .main_token = p.nextToken(),
2279 .data = .{
2280 .lhs = undefined,
2281 .rhs = undefined,
2282 },
2283 }),
2284 .keyword_true => return p.addNode(.{
2285 .tag = .true_literal,
2286 .main_token = p.nextToken(),
2287 .data = .{
2288 .lhs = undefined,
2289 .rhs = undefined,
2290 },
2291 }),
2292 .keyword_null => return p.addNode(.{
2293 .tag = .null_literal,
2294 .main_token = p.nextToken(),
2295 .data = .{
2296 .lhs = undefined,
2297 .rhs = undefined,
2298 },
2299 }),
2300 .keyword_undefined => return p.addNode(.{
2301 .tag = .undefined_literal,
2302 .main_token = p.nextToken(),
2303 .data = .{
2304 .lhs = undefined,
2305 .rhs = undefined,
2306 },
2307 }),
2308 .keyword_unreachable => return p.addNode(.{2272 .keyword_unreachable => return p.addNode(.{
2309 .tag = .unreachable_literal,2273 .tag = .unreachable_literal,
2310 .main_token = p.nextToken(),2274 .main_token = p.nextToken(),
lib/std/zig/render.zig-4
...@@ -187,11 +187,7 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I...@@ -187,11 +187,7 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I
187 .integer_literal,187 .integer_literal,
188 .float_literal,188 .float_literal,
189 .char_literal,189 .char_literal,
190 .true_literal,
191 .false_literal,
192 .null_literal,
193 .unreachable_literal,190 .unreachable_literal,
194 .undefined_literal,
195 .anyframe_literal,191 .anyframe_literal,
196 .string_literal,192 .string_literal,
197 => return renderToken(ais, tree, main_tokens[node], space),193 => return renderToken(ais, tree, main_tokens[node], space),
lib/std/zig/tokenizer.zig-12
...@@ -32,7 +32,6 @@ pub const Token = struct {...@@ -32,7 +32,6 @@ pub const Token = struct {
32 .{ "error", .keyword_error },32 .{ "error", .keyword_error },
33 .{ "export", .keyword_export },33 .{ "export", .keyword_export },
34 .{ "extern", .keyword_extern },34 .{ "extern", .keyword_extern },
35 .{ "false", .keyword_false },
36 .{ "fn", .keyword_fn },35 .{ "fn", .keyword_fn },
37 .{ "for", .keyword_for },36 .{ "for", .keyword_for },
38 .{ "if", .keyword_if },37 .{ "if", .keyword_if },
...@@ -40,7 +39,6 @@ pub const Token = struct {...@@ -40,7 +39,6 @@ pub const Token = struct {
40 .{ "noalias", .keyword_noalias },39 .{ "noalias", .keyword_noalias },
41 .{ "noinline", .keyword_noinline },40 .{ "noinline", .keyword_noinline },
42 .{ "nosuspend", .keyword_nosuspend },41 .{ "nosuspend", .keyword_nosuspend },
43 .{ "null", .keyword_null },
44 .{ "opaque", .keyword_opaque },42 .{ "opaque", .keyword_opaque },
45 .{ "or", .keyword_or },43 .{ "or", .keyword_or },
46 .{ "orelse", .keyword_orelse },44 .{ "orelse", .keyword_orelse },
...@@ -54,9 +52,7 @@ pub const Token = struct {...@@ -54,9 +52,7 @@ pub const Token = struct {
54 .{ "switch", .keyword_switch },52 .{ "switch", .keyword_switch },
55 .{ "test", .keyword_test },53 .{ "test", .keyword_test },
56 .{ "threadlocal", .keyword_threadlocal },54 .{ "threadlocal", .keyword_threadlocal },
57 .{ "true", .keyword_true },
58 .{ "try", .keyword_try },55 .{ "try", .keyword_try },
59 .{ "undefined", .keyword_undefined },
60 .{ "union", .keyword_union },56 .{ "union", .keyword_union },
61 .{ "unreachable", .keyword_unreachable },57 .{ "unreachable", .keyword_unreachable },
62 .{ "usingnamespace", .keyword_usingnamespace },58 .{ "usingnamespace", .keyword_usingnamespace },
...@@ -157,7 +153,6 @@ pub const Token = struct {...@@ -157,7 +153,6 @@ pub const Token = struct {
157 keyword_error,153 keyword_error,
158 keyword_export,154 keyword_export,
159 keyword_extern,155 keyword_extern,
160 keyword_false,
161 keyword_fn,156 keyword_fn,
162 keyword_for,157 keyword_for,
163 keyword_if,158 keyword_if,
...@@ -165,7 +160,6 @@ pub const Token = struct {...@@ -165,7 +160,6 @@ pub const Token = struct {
165 keyword_noalias,160 keyword_noalias,
166 keyword_noinline,161 keyword_noinline,
167 keyword_nosuspend,162 keyword_nosuspend,
168 keyword_null,
169 keyword_opaque,163 keyword_opaque,
170 keyword_or,164 keyword_or,
171 keyword_orelse,165 keyword_orelse,
...@@ -179,9 +173,7 @@ pub const Token = struct {...@@ -179,9 +173,7 @@ pub const Token = struct {
179 keyword_switch,173 keyword_switch,
180 keyword_test,174 keyword_test,
181 keyword_threadlocal,175 keyword_threadlocal,
182 keyword_true,
183 keyword_try,176 keyword_try,
184 keyword_undefined,
185 keyword_union,177 keyword_union,
186 keyword_unreachable,178 keyword_unreachable,
187 keyword_usingnamespace,179 keyword_usingnamespace,
...@@ -280,7 +272,6 @@ pub const Token = struct {...@@ -280,7 +272,6 @@ pub const Token = struct {
280 .keyword_error => "error",272 .keyword_error => "error",
281 .keyword_export => "export",273 .keyword_export => "export",
282 .keyword_extern => "extern",274 .keyword_extern => "extern",
283 .keyword_false => "false",
284 .keyword_fn => "fn",275 .keyword_fn => "fn",
285 .keyword_for => "for",276 .keyword_for => "for",
286 .keyword_if => "if",277 .keyword_if => "if",
...@@ -288,7 +279,6 @@ pub const Token = struct {...@@ -288,7 +279,6 @@ pub const Token = struct {
288 .keyword_noalias => "noalias",279 .keyword_noalias => "noalias",
289 .keyword_noinline => "noinline",280 .keyword_noinline => "noinline",
290 .keyword_nosuspend => "nosuspend",281 .keyword_nosuspend => "nosuspend",
291 .keyword_null => "null",
292 .keyword_opaque => "opaque",282 .keyword_opaque => "opaque",
293 .keyword_or => "or",283 .keyword_or => "or",
294 .keyword_orelse => "orelse",284 .keyword_orelse => "orelse",
...@@ -302,9 +292,7 @@ pub const Token = struct {...@@ -302,9 +292,7 @@ pub const Token = struct {
302 .keyword_switch => "switch",292 .keyword_switch => "switch",
303 .keyword_test => "test",293 .keyword_test => "test",
304 .keyword_threadlocal => "threadlocal",294 .keyword_threadlocal => "threadlocal",
305 .keyword_true => "true",
306 .keyword_try => "try",295 .keyword_try => "try",
307 .keyword_undefined => "undefined",
308 .keyword_union => "union",296 .keyword_union => "union",
309 .keyword_unreachable => "unreachable",297 .keyword_unreachable => "unreachable",
310 .keyword_usingnamespace => "usingnamespace",298 .keyword_usingnamespace => "usingnamespace",
src/AstGen.zig-20
...@@ -370,10 +370,6 @@ fn lvalExpr(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!Zir.Ins...@@ -370,10 +370,6 @@ fn lvalExpr(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!Zir.Ins
370 .bool_not,370 .bool_not,
371 .address_of,371 .address_of,
372 .float_literal,372 .float_literal,
373 .undefined_literal,
374 .true_literal,
375 .false_literal,
376 .null_literal,
377 .optional_type,373 .optional_type,
378 .block,374 .block,
379 .block_semicolon,375 .block_semicolon,
...@@ -759,10 +755,6 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerEr...@@ -759,10 +755,6 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerEr
759 const result = try expr(gz, scope, .ref, node_datas[node].lhs);755 const result = try expr(gz, scope, .ref, node_datas[node].lhs);
760 return rvalue(gz, rl, result, node);756 return rvalue(gz, rl, result, node);
761 },757 },
762 .undefined_literal => return rvalue(gz, rl, .undef, node),
763 .true_literal => return rvalue(gz, rl, .bool_true, node),
764 .false_literal => return rvalue(gz, rl, .bool_false, node),
765 .null_literal => return rvalue(gz, rl, .null_value, node),
766 .optional_type => {758 .optional_type => {
767 const operand = try typeExpr(gz, scope, node_datas[node].lhs);759 const operand = try typeExpr(gz, scope, node_datas[node].lhs);
768 const result = try gz.addUnNode(.optional_type, operand, node);760 const result = try gz.addUnNode(.optional_type, operand, node);
...@@ -7852,10 +7844,6 @@ fn nodeMayNeedMemoryLocation(tree: *const ast.Tree, start_node: ast.Node.Index)...@@ -7852,10 +7844,6 @@ fn nodeMayNeedMemoryLocation(tree: *const ast.Tree, start_node: ast.Node.Index)
7852 .string_literal,7844 .string_literal,
7853 .multiline_string_literal,7845 .multiline_string_literal,
7854 .char_literal,7846 .char_literal,
7855 .true_literal,
7856 .false_literal,
7857 .null_literal,
7858 .undefined_literal,
7859 .unreachable_literal,7847 .unreachable_literal,
7860 .identifier,7848 .identifier,
7861 .error_set_decl,7849 .error_set_decl,
...@@ -8092,10 +8080,6 @@ fn nodeMayEvalToError(tree: *const ast.Tree, start_node: ast.Node.Index) enum {...@@ -8092,10 +8080,6 @@ fn nodeMayEvalToError(tree: *const ast.Tree, start_node: ast.Node.Index) enum {
8092 .string_literal,8080 .string_literal,
8093 .multiline_string_literal,8081 .multiline_string_literal,
8094 .char_literal,8082 .char_literal,
8095 .true_literal,
8096 .false_literal,
8097 .null_literal,
8098 .undefined_literal,
8099 .unreachable_literal,8083 .unreachable_literal,
8100 .error_set_decl,8084 .error_set_decl,
8101 .container_decl,8085 .container_decl,
...@@ -8265,10 +8249,6 @@ fn nodeImpliesRuntimeBits(tree: *const ast.Tree, start_node: ast.Node.Index) boo...@@ -8265,10 +8249,6 @@ fn nodeImpliesRuntimeBits(tree: *const ast.Tree, start_node: ast.Node.Index) boo
8265 .string_literal,8249 .string_literal,
8266 .multiline_string_literal,8250 .multiline_string_literal,
8267 .char_literal,8251 .char_literal,
8268 .true_literal,
8269 .false_literal,
8270 .null_literal,
8271 .undefined_literal,
8272 .unreachable_literal,8252 .unreachable_literal,
8273 .identifier,8253 .identifier,
8274 .error_set_decl,8254 .error_set_decl,
src/translate_c/ast.zig+10-10
...@@ -928,23 +928,23 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {...@@ -928,23 +928,23 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {
928 return renderCall(c, lhs, payload.args);928 return renderCall(c, lhs, payload.args);
929 },929 },
930 .null_literal => return c.addNode(.{930 .null_literal => return c.addNode(.{
931 .tag = .null_literal,931 .tag = .identifier,
932 .main_token = try c.addToken(.keyword_null, "null"),932 .main_token = try c.addToken(.identifier, "null"),
933 .data = undefined,933 .data = undefined,
934 }),934 }),
935 .undefined_literal => return c.addNode(.{935 .undefined_literal => return c.addNode(.{
936 .tag = .undefined_literal,936 .tag = .identifier,
937 .main_token = try c.addToken(.keyword_undefined, "undefined"),937 .main_token = try c.addToken(.identifier, "undefined"),
938 .data = undefined,938 .data = undefined,
939 }),939 }),
940 .true_literal => return c.addNode(.{940 .true_literal => return c.addNode(.{
941 .tag = .true_literal,941 .tag = .identifier,
942 .main_token = try c.addToken(.keyword_true, "true"),942 .main_token = try c.addToken(.identifier, "true"),
943 .data = undefined,943 .data = undefined,
944 }),944 }),
945 .false_literal => return c.addNode(.{945 .false_literal => return c.addNode(.{
946 .tag = .false_literal,946 .tag = .identifier,
947 .main_token = try c.addToken(.keyword_false, "false"),947 .main_token = try c.addToken(.identifier, "false"),
948 .data = undefined,948 .data = undefined,
949 }),949 }),
950 .zero_literal => return c.addNode(.{950 .zero_literal => return c.addNode(.{
...@@ -1599,8 +1599,8 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {...@@ -1599,8 +1599,8 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {
1599 const while_tok = try c.addToken(.keyword_while, "while");1599 const while_tok = try c.addToken(.keyword_while, "while");
1600 _ = try c.addToken(.l_paren, "(");1600 _ = try c.addToken(.l_paren, "(");
1601 const cond = try c.addNode(.{1601 const cond = try c.addNode(.{
1602 .tag = .true_literal,1602 .tag = .identifier,
1603 .main_token = try c.addToken(.keyword_true, "true"),1603 .main_token = try c.addToken(.identifier, "true"),
1604 .data = undefined,1604 .data = undefined,
1605 });1605 });
1606 _ = try c.addToken(.r_paren, ")");1606 _ = try c.addToken(.r_paren, ")");