| author | |
| committer | |
| log | 05cf44933d753f7a5a53ab289ea60fd43761de57 |
| tree | 41c6fd4776628161769f26161baa36d77ba1c47c |
| parent | 6a6e2cd64f3ebb1919dd0ac53d8a1f29c56e6ec2 |
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 | 887 | next_tok_is_fn = true; |
| 888 | 888 | }, |
| 889 | 889 | |
| 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 | 890 | .string_literal, |
| 901 | 891 | .multiline_string_literal_line, |
| 902 | 892 | .char_literal, |
| ... | ... | @@ -921,9 +911,18 @@ fn tokenizeAndPrintRaw( |
| 921 | 911 | }, |
| 922 | 912 | |
| 923 | 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 | 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 | 926 | try out.writeAll("</span>"); |
| 928 | 927 | } else { |
| 929 | 928 | const is_int = blk: { |
| ... | ... | @@ -938,12 +937,12 @@ fn tokenizeAndPrintRaw( |
| 938 | 937 | } |
| 939 | 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 | 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 | 943 | try out.writeAll("</span>"); |
| 945 | 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 | 11564 | / INTEGER |
| 11565 | 11565 | / KEYWORD_comptime TypeExpr |
| 11566 | 11566 | / KEYWORD_error DOT IDENTIFIER |
| 11567 | / KEYWORD_false | |
| 11568 | / KEYWORD_null | |
| 11569 | 11567 | / KEYWORD_anyframe |
| 11570 | / KEYWORD_true | |
| 11571 | / KEYWORD_undefined | |
| 11572 | 11568 | / KEYWORD_unreachable |
| 11573 | 11569 | / STRINGLITERAL |
| 11574 | 11570 | / SwitchExpr |
| ... | ... | @@ -11937,7 +11933,6 @@ KEYWORD_errdefer &lt;- 'errdefer' end_of_word |
| 11937 | 11933 | KEYWORD_error &lt;- 'error' end_of_word |
| 11938 | 11934 | KEYWORD_export &lt;- 'export' end_of_word |
| 11939 | 11935 | KEYWORD_extern &lt;- 'extern' end_of_word |
| 11940 | KEYWORD_false &lt;- 'false' end_of_word | |
| 11941 | 11936 | KEYWORD_fn &lt;- 'fn' end_of_word |
| 11942 | 11937 | KEYWORD_for &lt;- 'for' end_of_word |
| 11943 | 11938 | KEYWORD_if &lt;- 'if' end_of_word |
| ... | ... | @@ -11945,7 +11940,6 @@ KEYWORD_inline &lt;- 'inline' end_of_word |
| 11945 | 11940 | KEYWORD_noalias &lt;- 'noalias' end_of_word |
| 11946 | 11941 | KEYWORD_nosuspend &lt;- 'nosuspend' end_of_word |
| 11947 | 11942 | KEYWORD_noinline &lt;- 'noinline' end_of_word |
| 11948 | KEYWORD_null &lt;- 'null' end_of_word | |
| 11949 | 11943 | KEYWORD_opaque &lt;- 'opaque' end_of_word |
| 11950 | 11944 | KEYWORD_or &lt;- 'or' end_of_word |
| 11951 | 11945 | KEYWORD_orelse &lt;- 'orelse' end_of_word |
| ... | ... | @@ -11959,9 +11953,7 @@ KEYWORD_suspend &lt;- 'suspend' end_of_word |
| 11959 | 11953 | KEYWORD_switch &lt;- 'switch' end_of_word |
| 11960 | 11954 | KEYWORD_test &lt;- 'test' end_of_word |
| 11961 | 11955 | KEYWORD_threadlocal &lt;- 'threadlocal' end_of_word |
| 11962 | KEYWORD_true &lt;- 'true' end_of_word | |
| 11963 | 11956 | KEYWORD_try &lt;- 'try' end_of_word |
| 11964 | KEYWORD_undefined &lt;- 'undefined' end_of_word | |
| 11965 | 11957 | KEYWORD_union &lt;- 'union' end_of_word |
| 11966 | 11958 | KEYWORD_unreachable &lt;- 'unreachable' end_of_word |
| 11967 | 11959 | KEYWORD_usingnamespace &lt;- 'usingnamespace' end_of_word |
| ... | ... | @@ -11974,13 +11966,13 @@ keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe |
| 11974 | 11966 | / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime |
| 11975 | 11967 | / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else |
| 11976 | 11968 | / KEYWORD_enum / KEYWORD_errdefer / KEYWORD_error / KEYWORD_export |
| 11977 | / KEYWORD_extern / KEYWORD_false / KEYWORD_fn / KEYWORD_for / KEYWORD_if | |
| 11969 | / KEYWORD_extern / KEYWORD_fn / KEYWORD_for / KEYWORD_if | |
| 11978 | 11970 | / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline |
| 11979 | / KEYWORD_null / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed | |
| 11971 | / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed | |
| 11980 | 11972 | / KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection |
| 11981 | 11973 | / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch |
| 11982 | / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try | |
| 11983 | / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable | |
| 11974 | / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_try | |
| 11975 | / KEYWORD_union / KEYWORD_unreachable | |
| 11984 | 11976 | / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while |
| 11985 | 11977 | </code></pre> |
| 11986 | 11978 | {#header_close#} |
lib/std/zig/ast.zig-16| ... | ... | @@ -346,10 +346,6 @@ pub const Tree = struct { |
| 346 | 346 | .char_literal, |
| 347 | 347 | .integer_literal, |
| 348 | 348 | .float_literal, |
| 349 | .false_literal, | |
| 350 | .true_literal, | |
| 351 | .null_literal, | |
| 352 | .undefined_literal, | |
| 353 | 349 | .unreachable_literal, |
| 354 | 350 | .string_literal, |
| 355 | 351 | .multiline_string_literal, |
| ... | ... | @@ -711,10 +707,6 @@ pub const Tree = struct { |
| 711 | 707 | .char_literal, |
| 712 | 708 | .integer_literal, |
| 713 | 709 | .float_literal, |
| 714 | .false_literal, | |
| 715 | .true_literal, | |
| 716 | .null_literal, | |
| 717 | .undefined_literal, | |
| 718 | 710 | .unreachable_literal, |
| 719 | 711 | .identifier, |
| 720 | 712 | .deref, |
| ... | ... | @@ -2757,14 +2749,6 @@ pub const Node = struct { |
| 2757 | 2749 | /// Both lhs and rhs unused. |
| 2758 | 2750 | float_literal, |
| 2759 | 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 | 2752 | unreachable_literal, |
| 2769 | 2753 | /// Both lhs and rhs unused. |
| 2770 | 2754 | /// 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 | 2226 | /// / INTEGER |
| 2227 | 2227 | /// / KEYWORD_comptime TypeExpr |
| 2228 | 2228 | /// / KEYWORD_error DOT IDENTIFIER |
| 2229 | /// / KEYWORD_false | |
| 2230 | /// / KEYWORD_null | |
| 2231 | 2229 | /// / KEYWORD_anyframe |
| 2232 | /// / KEYWORD_true | |
| 2233 | /// / KEYWORD_undefined | |
| 2234 | 2230 | /// / KEYWORD_unreachable |
| 2235 | 2231 | /// / STRINGLITERAL |
| 2236 | 2232 | /// / SwitchExpr |
| ... | ... | @@ -2273,38 +2269,6 @@ const Parser = struct { |
| 2273 | 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 | 2272 | .keyword_unreachable => return p.addNode(.{ |
| 2309 | 2273 | .tag = .unreachable_literal, |
| 2310 | 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 | 187 | .integer_literal, |
| 188 | 188 | .float_literal, |
| 189 | 189 | .char_literal, |
| 190 | .true_literal, | |
| 191 | .false_literal, | |
| 192 | .null_literal, | |
| 193 | 190 | .unreachable_literal, |
| 194 | .undefined_literal, | |
| 195 | 191 | .anyframe_literal, |
| 196 | 192 | .string_literal, |
| 197 | 193 | => return renderToken(ais, tree, main_tokens[node], space), |
lib/std/zig/tokenizer.zig-12| ... | ... | @@ -32,7 +32,6 @@ pub const Token = struct { |
| 32 | 32 | .{ "error", .keyword_error }, |
| 33 | 33 | .{ "export", .keyword_export }, |
| 34 | 34 | .{ "extern", .keyword_extern }, |
| 35 | .{ "false", .keyword_false }, | |
| 36 | 35 | .{ "fn", .keyword_fn }, |
| 37 | 36 | .{ "for", .keyword_for }, |
| 38 | 37 | .{ "if", .keyword_if }, |
| ... | ... | @@ -40,7 +39,6 @@ pub const Token = struct { |
| 40 | 39 | .{ "noalias", .keyword_noalias }, |
| 41 | 40 | .{ "noinline", .keyword_noinline }, |
| 42 | 41 | .{ "nosuspend", .keyword_nosuspend }, |
| 43 | .{ "null", .keyword_null }, | |
| 44 | 42 | .{ "opaque", .keyword_opaque }, |
| 45 | 43 | .{ "or", .keyword_or }, |
| 46 | 44 | .{ "orelse", .keyword_orelse }, |
| ... | ... | @@ -54,9 +52,7 @@ pub const Token = struct { |
| 54 | 52 | .{ "switch", .keyword_switch }, |
| 55 | 53 | .{ "test", .keyword_test }, |
| 56 | 54 | .{ "threadlocal", .keyword_threadlocal }, |
| 57 | .{ "true", .keyword_true }, | |
| 58 | 55 | .{ "try", .keyword_try }, |
| 59 | .{ "undefined", .keyword_undefined }, | |
| 60 | 56 | .{ "union", .keyword_union }, |
| 61 | 57 | .{ "unreachable", .keyword_unreachable }, |
| 62 | 58 | .{ "usingnamespace", .keyword_usingnamespace }, |
| ... | ... | @@ -157,7 +153,6 @@ pub const Token = struct { |
| 157 | 153 | keyword_error, |
| 158 | 154 | keyword_export, |
| 159 | 155 | keyword_extern, |
| 160 | keyword_false, | |
| 161 | 156 | keyword_fn, |
| 162 | 157 | keyword_for, |
| 163 | 158 | keyword_if, |
| ... | ... | @@ -165,7 +160,6 @@ pub const Token = struct { |
| 165 | 160 | keyword_noalias, |
| 166 | 161 | keyword_noinline, |
| 167 | 162 | keyword_nosuspend, |
| 168 | keyword_null, | |
| 169 | 163 | keyword_opaque, |
| 170 | 164 | keyword_or, |
| 171 | 165 | keyword_orelse, |
| ... | ... | @@ -179,9 +173,7 @@ pub const Token = struct { |
| 179 | 173 | keyword_switch, |
| 180 | 174 | keyword_test, |
| 181 | 175 | keyword_threadlocal, |
| 182 | keyword_true, | |
| 183 | 176 | keyword_try, |
| 184 | keyword_undefined, | |
| 185 | 177 | keyword_union, |
| 186 | 178 | keyword_unreachable, |
| 187 | 179 | keyword_usingnamespace, |
| ... | ... | @@ -280,7 +272,6 @@ pub const Token = struct { |
| 280 | 272 | .keyword_error => "error", |
| 281 | 273 | .keyword_export => "export", |
| 282 | 274 | .keyword_extern => "extern", |
| 283 | .keyword_false => "false", | |
| 284 | 275 | .keyword_fn => "fn", |
| 285 | 276 | .keyword_for => "for", |
| 286 | 277 | .keyword_if => "if", |
| ... | ... | @@ -288,7 +279,6 @@ pub const Token = struct { |
| 288 | 279 | .keyword_noalias => "noalias", |
| 289 | 280 | .keyword_noinline => "noinline", |
| 290 | 281 | .keyword_nosuspend => "nosuspend", |
| 291 | .keyword_null => "null", | |
| 292 | 282 | .keyword_opaque => "opaque", |
| 293 | 283 | .keyword_or => "or", |
| 294 | 284 | .keyword_orelse => "orelse", |
| ... | ... | @@ -302,9 +292,7 @@ pub const Token = struct { |
| 302 | 292 | .keyword_switch => "switch", |
| 303 | 293 | .keyword_test => "test", |
| 304 | 294 | .keyword_threadlocal => "threadlocal", |
| 305 | .keyword_true => "true", | |
| 306 | 295 | .keyword_try => "try", |
| 307 | .keyword_undefined => "undefined", | |
| 308 | 296 | .keyword_union => "union", |
| 309 | 297 | .keyword_unreachable => "unreachable", |
| 310 | 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 | 370 | .bool_not, |
| 371 | 371 | .address_of, |
| 372 | 372 | .float_literal, |
| 373 | .undefined_literal, | |
| 374 | .true_literal, | |
| 375 | .false_literal, | |
| 376 | .null_literal, | |
| 377 | 373 | .optional_type, |
| 378 | 374 | .block, |
| 379 | 375 | .block_semicolon, |
| ... | ... | @@ -759,10 +755,6 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerEr |
| 759 | 755 | const result = try expr(gz, scope, .ref, node_datas[node].lhs); |
| 760 | 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 | 758 | .optional_type => { |
| 767 | 759 | const operand = try typeExpr(gz, scope, node_datas[node].lhs); |
| 768 | 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 | 7844 | .string_literal, |
| 7853 | 7845 | .multiline_string_literal, |
| 7854 | 7846 | .char_literal, |
| 7855 | .true_literal, | |
| 7856 | .false_literal, | |
| 7857 | .null_literal, | |
| 7858 | .undefined_literal, | |
| 7859 | 7847 | .unreachable_literal, |
| 7860 | 7848 | .identifier, |
| 7861 | 7849 | .error_set_decl, |
| ... | ... | @@ -8092,10 +8080,6 @@ fn nodeMayEvalToError(tree: *const ast.Tree, start_node: ast.Node.Index) enum { |
| 8092 | 8080 | .string_literal, |
| 8093 | 8081 | .multiline_string_literal, |
| 8094 | 8082 | .char_literal, |
| 8095 | .true_literal, | |
| 8096 | .false_literal, | |
| 8097 | .null_literal, | |
| 8098 | .undefined_literal, | |
| 8099 | 8083 | .unreachable_literal, |
| 8100 | 8084 | .error_set_decl, |
| 8101 | 8085 | .container_decl, |
| ... | ... | @@ -8265,10 +8249,6 @@ fn nodeImpliesRuntimeBits(tree: *const ast.Tree, start_node: ast.Node.Index) boo |
| 8265 | 8249 | .string_literal, |
| 8266 | 8250 | .multiline_string_literal, |
| 8267 | 8251 | .char_literal, |
| 8268 | .true_literal, | |
| 8269 | .false_literal, | |
| 8270 | .null_literal, | |
| 8271 | .undefined_literal, | |
| 8272 | 8252 | .unreachable_literal, |
| 8273 | 8253 | .identifier, |
| 8274 | 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 | 928 | return renderCall(c, lhs, payload.args); |
| 929 | 929 | }, |
| 930 | 930 | .null_literal => return c.addNode(.{ |
| 931 | .tag = .null_literal, | |
| 932 | .main_token = try c.addToken(.keyword_null, "null"), | |
| 931 | .tag = .identifier, | |
| 932 | .main_token = try c.addToken(.identifier, "null"), | |
| 933 | 933 | .data = undefined, |
| 934 | 934 | }), |
| 935 | 935 | .undefined_literal => return c.addNode(.{ |
| 936 | .tag = .undefined_literal, | |
| 937 | .main_token = try c.addToken(.keyword_undefined, "undefined"), | |
| 936 | .tag = .identifier, | |
| 937 | .main_token = try c.addToken(.identifier, "undefined"), | |
| 938 | 938 | .data = undefined, |
| 939 | 939 | }), |
| 940 | 940 | .true_literal => return c.addNode(.{ |
| 941 | .tag = .true_literal, | |
| 942 | .main_token = try c.addToken(.keyword_true, "true"), | |
| 941 | .tag = .identifier, | |
| 942 | .main_token = try c.addToken(.identifier, "true"), | |
| 943 | 943 | .data = undefined, |
| 944 | 944 | }), |
| 945 | 945 | .false_literal => return c.addNode(.{ |
| 946 | .tag = .false_literal, | |
| 947 | .main_token = try c.addToken(.keyword_false, "false"), | |
| 946 | .tag = .identifier, | |
| 947 | .main_token = try c.addToken(.identifier, "false"), | |
| 948 | 948 | .data = undefined, |
| 949 | 949 | }), |
| 950 | 950 | .zero_literal => return c.addNode(.{ |
| ... | ... | @@ -1599,8 +1599,8 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { |
| 1599 | 1599 | const while_tok = try c.addToken(.keyword_while, "while"); |
| 1600 | 1600 | _ = try c.addToken(.l_paren, "("); |
| 1601 | 1601 | const cond = try c.addNode(.{ |
| 1602 | .tag = .true_literal, | |
| 1603 | .main_token = try c.addToken(.keyword_true, "true"), | |
| 1602 | .tag = .identifier, | |
| 1603 | .main_token = try c.addToken(.identifier, "true"), | |
| 1604 | 1604 | .data = undefined, |
| 1605 | 1605 | }); |
| 1606 | 1606 | _ = try c.addToken(.r_paren, ")"); |