| author | |
| committer | |
| log | 65073f3dc5244941914e7c4d1897a74ac8adcd69 |
| tree | 2f0f4a2bd9adde1336b5e92d7effbd1dac4ccdf1 |
| parent | c796f5fe4e6213ea301d4b2666540e37d04517a5 |
16 files changed, 39 insertions(+), 34 deletions(-)
lib/compiler/Maker.zig+1-1| ... | ... | @@ -3536,7 +3536,7 @@ fn loadManifest( |
| 3536 | 3536 | else => |e| fatal("unable to load {s}: {t}", .{ Package.Manifest.basename, e }), |
| 3537 | 3537 | }; |
| 3538 | 3538 | }; |
| 3539 | var ast = try std.zig.Ast.parse(gpa, manifest_bytes, .zon, .{}); | |
| 3539 | var ast = try std.zig.Ast.parse(gpa, manifest_bytes, .{ .mode = .zon }); | |
| 3540 | 3540 | errdefer ast.deinit(gpa); |
| 3541 | 3541 | |
| 3542 | 3542 | if (ast.errors.len > 0) { |
lib/compiler/Maker/Package/Manifest.zig+4-4| ... | ... | @@ -597,7 +597,7 @@ pub fn load( |
| 597 | 597 | 0, |
| 598 | 598 | ); |
| 599 | 599 | |
| 600 | ast.* = try std.zig.Ast.parse(arena, manifest_bytes, .zon, .{}); | |
| 600 | ast.* = try std.zig.Ast.parse(arena, manifest_bytes, .{ .mode = .zon }); | |
| 601 | 601 | |
| 602 | 602 | if (ast.errors.len > 0) { |
| 603 | 603 | const file_path = try manifest_path.joinString(arena, ""); |
| ... | ... | @@ -636,7 +636,7 @@ test "basic" { |
| 636 | 636 | \\} |
| 637 | 637 | ; |
| 638 | 638 | |
| 639 | var ast = try Ast.parse(gpa, example, .zon, .{}); | |
| 639 | var ast = try Ast.parse(gpa, example, .{ .mode = .zon }); | |
| 640 | 640 | defer ast.deinit(gpa); |
| 641 | 641 | |
| 642 | 642 | try testing.expect(ast.errors.len == 0); |
| ... | ... | @@ -682,7 +682,7 @@ test "minimum_zig_version" { |
| 682 | 682 | \\} |
| 683 | 683 | ; |
| 684 | 684 | |
| 685 | var ast = try Ast.parse(gpa, example, .zon, .{}); | |
| 685 | var ast = try Ast.parse(gpa, example, .{ .mode = .zon }); | |
| 686 | 686 | defer ast.deinit(gpa); |
| 687 | 687 | |
| 688 | 688 | try testing.expect(ast.errors.len == 0); |
| ... | ... | @@ -717,7 +717,7 @@ test "minimum_zig_version - invalid version" { |
| 717 | 717 | \\} |
| 718 | 718 | ; |
| 719 | 719 | |
| 720 | var ast = try Ast.parse(gpa, example, .zon, .{}); | |
| 720 | var ast = try Ast.parse(gpa, example, .{ .mode = .zon }); | |
| 721 | 721 | defer ast.deinit(gpa); |
| 722 | 722 | |
| 723 | 723 | try testing.expect(ast.errors.len == 0); |
lib/compiler/reduce.zig+2-2| ... | ... | @@ -188,7 +188,7 @@ pub fn main(init: std.process.Init) !void { |
| 188 | 188 | try astgen_input.writer.writeAll(rendered.written()); |
| 189 | 189 | try astgen_input.writer.writeByte(0); |
| 190 | 190 | const source_with_null = astgen_input.written()[0..(astgen_input.written().len - 1) :0]; |
| 191 | var astgen_tree = try Ast.parse(gpa, source_with_null, .zig, .{}); | |
| 191 | var astgen_tree = try Ast.parse(gpa, source_with_null, .{}); | |
| 192 | 192 | defer astgen_tree.deinit(gpa); |
| 193 | 193 | if (astgen_tree.errors.len != 0) { |
| 194 | 194 | @panic("syntax errors occurred"); |
| ... | ... | @@ -407,7 +407,7 @@ fn parse(gpa: Allocator, io: Io, file_path: []const u8) !Ast { |
| 407 | 407 | }; |
| 408 | 408 | errdefer gpa.free(source_code); |
| 409 | 409 | |
| 410 | var tree = try Ast.parse(gpa, source_code, .zig, .{}); | |
| 410 | var tree = try Ast.parse(gpa, source_code, .{}); | |
| 411 | 411 | errdefer tree.deinit(gpa); |
| 412 | 412 | |
| 413 | 413 | if (tree.errors.len != 0) { |
lib/docs/wasm/Walk.zig+3-3| ... | ... | @@ -428,7 +428,7 @@ fn parse(file_name: []const u8, source: []u8) Oom!Ast { |
| 428 | 428 | break :s source[0 .. source.len - 1 :0]; |
| 429 | 429 | }; |
| 430 | 430 | |
| 431 | var ast = try Ast.parse(gpa, adjusted_source, .zig, .{}); | |
| 431 | var ast = try Ast.parse(gpa, adjusted_source, .{}); | |
| 432 | 432 | if (ast.errors.len > 0) { |
| 433 | 433 | defer ast.deinit(gpa); |
| 434 | 434 | |
| ... | ... | @@ -446,7 +446,7 @@ fn parse(file_name: []const u8, source: []u8) Oom!Ast { |
| 446 | 446 | file_name, err_loc.line + 1, err_loc.column + 1, rendered_err.written(), |
| 447 | 447 | }); |
| 448 | 448 | } |
| 449 | return Ast.parse(gpa, "", .zig, .{}); | |
| 449 | return Ast.parse(gpa, "", .{}); | |
| 450 | 450 | } |
| 451 | 451 | return ast; |
| 452 | 452 | } |
| ... | ... | @@ -1085,7 +1085,7 @@ pub fn isPrimitiveNonType(name: []const u8) bool { |
| 1085 | 1085 | // |
| 1086 | 1086 | // // example test command: |
| 1087 | 1087 | // // zig test --dep input.zig -Mroot=src/Walk.zig -Minput.zig=/home/andy/dev/zig/lib/std/fs/File/zig |
| 1088 | // var ast = try Ast.parse(gpa, @embedFile("input.zig"), .zig, .{}); | |
| 1088 | // var ast = try Ast.parse(gpa, @embedFile("input.zig"), .{}); | |
| 1089 | 1089 | // defer ast.deinit(gpa); |
| 1090 | 1090 | // |
| 1091 | 1091 | // var w: Walk = .{ |
lib/std/zig/Ast.zig+5-5| ... | ... | @@ -141,11 +141,12 @@ pub fn deinit(tree: *Ast, gpa: Allocator) void { |
| 141 | 141 | pub const Mode = enum { zig, zon }; |
| 142 | 142 | pub const ParseOptions = struct { |
| 143 | 143 | recover: bool = true, |
| 144 | mode: Mode = .zig, | |
| 144 | 145 | }; |
| 145 | 146 | |
| 146 | 147 | /// Result should be freed with tree.deinit() when there are |
| 147 | 148 | /// no more references to any of the tokens or nodes. |
| 148 | pub fn parse(gpa: Allocator, source: [:0]const u8, mode: Mode, options: ParseOptions) Allocator.Error!Ast { | |
| 149 | pub fn parse(gpa: Allocator, source: [:0]const u8, options: ParseOptions) Allocator.Error!Ast { | |
| 149 | 150 | var tokens = Ast.TokenList{}; |
| 150 | 151 | defer tokens.deinit(gpa); |
| 151 | 152 | |
| ... | ... | @@ -165,14 +166,13 @@ pub fn parse(gpa: Allocator, source: [:0]const u8, mode: Mode, options: ParseOpt |
| 165 | 166 | |
| 166 | 167 | var tokens_slice = tokens.toOwnedSlice(); |
| 167 | 168 | errdefer tokens_slice.deinit(gpa); |
| 168 | return parseTokens(gpa, source, tokens_slice, mode, options); | |
| 169 | return parseTokens(gpa, source, tokens_slice, options); | |
| 169 | 170 | } |
| 170 | 171 | |
| 171 | 172 | pub fn parseTokens( |
| 172 | 173 | gpa: Allocator, |
| 173 | 174 | source: [:0]const u8, |
| 174 | 175 | tokens: Ast.TokenList.Slice, |
| 175 | mode: Mode, | |
| 176 | 176 | options: ParseOptions, |
| 177 | 177 | ) Allocator.Error!Ast { |
| 178 | 178 | var parser: Parse = .{ |
| ... | ... | @@ -196,7 +196,7 @@ pub fn parseTokens( |
| 196 | 196 | const estimated_node_count = (tokens.len + 2) / 2; |
| 197 | 197 | try parser.nodes.ensureTotalCapacity(gpa, estimated_node_count); |
| 198 | 198 | |
| 199 | switch (mode) { | |
| 199 | switch (options.mode) { | |
| 200 | 200 | .zig => try parser.parseRoot(), |
| 201 | 201 | .zon => try parser.parseZon(), |
| 202 | 202 | } |
| ... | ... | @@ -207,7 +207,7 @@ pub fn parseTokens( |
| 207 | 207 | // TODO experiment with compacting the MultiArrayList slices here |
| 208 | 208 | return .{ |
| 209 | 209 | .source = source, |
| 210 | .mode = mode, | |
| 210 | .mode = options.mode, | |
| 211 | 211 | .tokens = tokens, |
| 212 | 212 | .nodes = parser.nodes.toOwnedSlice(), |
| 213 | 213 | .extra_data = parser.extra_data.toOwnedSliceAssert(), |
lib/std/zig/parser_fuzz.zig+1-1| ... | ... | @@ -171,7 +171,7 @@ fn checkAgainstOracle(source: [:0]const u8) !void { |
| 171 | 171 | // error right away and does no recovery. However, std.zig.Ast.parse() does recovery |
| 172 | 172 | // by default and will hit a stack overflow rather than returning after the parser error. |
| 173 | 173 | // Stack overflows are not interesting and we do not want the fuzzer to be able to find them. |
| 174 | const ast = try std.zig.Ast.parse(fba.allocator(), source, .zig, .{ .recover = false }); | |
| 174 | const ast = try std.zig.Ast.parse(fba.allocator(), source, .{ .recover = false }); | |
| 175 | 175 | |
| 176 | 176 | errdefer logBadSource(source, ast); |
| 177 | 177 | try std.testing.expectEqual(expected, ast.errors.len == 0); |
lib/std/zig/parser_test.zig+7-4| ... | ... | @@ -7231,7 +7231,7 @@ test "ampersand" { |
| 7231 | 7231 | test "Ast: pointer types with subexprs containing qualifiers" { |
| 7232 | 7232 | var fixed_allocator = std.heap.FixedBufferAllocator.init(fixed_buffer_mem[0..]); |
| 7233 | 7233 | const allocator = fixed_allocator.allocator(); |
| 7234 | var tree = try std.zig.Ast.parse(allocator, "**addrspace(*align(1)T)T", .zon, .{}); | |
| 7234 | var tree = try std.zig.Ast.parse(allocator, "**addrspace(*align(1)T)T", .{ .mode = .zon }); | |
| 7235 | 7235 | defer tree.deinit(allocator); |
| 7236 | 7236 | |
| 7237 | 7237 | const regular_ptr_node = tree.nodeData(.root).node; |
| ... | ... | @@ -7253,7 +7253,7 @@ fn testParse(io: Io, source: [:0]const u8, allocator: Allocator, anything_change |
| 7253 | 7253 | defer io.unlockStderr(); |
| 7254 | 7254 | const writer = &stderr.file_writer.interface; |
| 7255 | 7255 | |
| 7256 | var tree = try std.zig.Ast.parse(allocator, source, .zig, .{}); | |
| 7256 | var tree = try std.zig.Ast.parse(allocator, source, .{}); | |
| 7257 | 7257 | defer tree.deinit(allocator); |
| 7258 | 7258 | |
| 7259 | 7259 | for (tree.errors) |parse_error| { |
| ... | ... | @@ -7313,7 +7313,7 @@ fn testCanonical(source: [:0]const u8) !void { |
| 7313 | 7313 | const Error = std.zig.Ast.Error.Tag; |
| 7314 | 7314 | |
| 7315 | 7315 | fn testError(source: [:0]const u8, expected_errors: []const Error) !void { |
| 7316 | var tree = try std.zig.Ast.parse(std.testing.allocator, source, .zig, .{}); | |
| 7316 | var tree = try std.zig.Ast.parse(std.testing.allocator, source, .{}); | |
| 7317 | 7317 | defer tree.deinit(std.testing.allocator); |
| 7318 | 7318 | |
| 7319 | 7319 | std.testing.expectEqual(expected_errors.len, tree.errors.len) catch |err| { |
| ... | ... | @@ -7333,5 +7333,8 @@ fn fuzzTestOneParse(_: void, smith: *std.testing.Smith) !void { |
| 7333 | 7333 | const mode = smith.value(std.zig.Ast.Mode); |
| 7334 | 7334 | var tokens: std.zig.TokenSmith = .gen(smith); |
| 7335 | 7335 | var fba: std.heap.FixedBufferAllocator = .init(&fixed_buffer_mem); |
| 7336 | _ = std.zig.Ast.parseTokens(fba.allocator(), tokens.source(), tokens.list(), mode, .{ .recover = false }) catch return; | |
| 7336 | _ = std.zig.Ast.parseTokens(fba.allocator(), tokens.source(), tokens.list(), .{ | |
| 7337 | .recover = false, | |
| 7338 | .mode = mode, | |
| 7339 | }) catch return; | |
| 7337 | 7340 | } |
lib/std/zig/perf_test.zig+1-1| ... | ... | @@ -32,6 +32,6 @@ pub fn main() !void { |
| 32 | 32 | fn testOnce() usize { |
| 33 | 33 | var fixed_buf_alloc = std.heap.FixedBufferAllocator.init(&fixed_buffer_mem); |
| 34 | 34 | const allocator = fixed_buf_alloc.allocator(); |
| 35 | _ = std.zig.Ast.parse(allocator, source, .zig, .{}) catch @panic("parse failure"); | |
| 35 | _ = std.zig.Ast.parse(allocator, source, .{}) catch @panic("parse failure"); | |
| 36 | 36 | return fixed_buf_alloc.end_index; |
| 37 | 37 | } |
lib/std/zon/parse.zig+3-3| ... | ... | @@ -294,7 +294,7 @@ pub fn fromSliceAlloc( |
| 294 | 294 | ) error{ OutOfMemory, ParseZon }!T { |
| 295 | 295 | if (diag) |s| s.assertEmpty(); |
| 296 | 296 | |
| 297 | var ast = try std.zig.Ast.parse(gpa, source, .zon, .{}); | |
| 297 | var ast = try std.zig.Ast.parse(gpa, source, .{ .mode = .zon }); | |
| 298 | 298 | defer if (diag == null) ast.deinit(gpa); |
| 299 | 299 | if (diag) |s| s.ast = ast; |
| 300 | 300 | |
| ... | ... | @@ -2140,7 +2140,7 @@ test "std.zon string literal" { |
| 2140 | 2140 | // Passing string literal to a array |
| 2141 | 2141 | { |
| 2142 | 2142 | { |
| 2143 | var ast = try std.zig.Ast.parse(gpa, "\"abcd\"", .zon, .{}); | |
| 2143 | var ast = try std.zig.Ast.parse(gpa, "\"abcd\"", .{ .mode = .zon }); | |
| 2144 | 2144 | defer ast.deinit(gpa); |
| 2145 | 2145 | var zoir = try ZonGen.generate(gpa, ast, .{ .parse_str_lits = false }); |
| 2146 | 2146 | defer zoir.deinit(gpa); |
| ... | ... | @@ -3534,7 +3534,7 @@ test "std.zon no alloc" { |
| 3534 | 3534 | |
| 3535 | 3535 | const Nested = struct { u8, u8, struct { u8, u8 } }; |
| 3536 | 3536 | |
| 3537 | var ast = try std.zig.Ast.parse(gpa, ".{ 1, 2, .{ 3, 4 } }", .zon, .{}); | |
| 3537 | var ast = try std.zig.Ast.parse(gpa, ".{ 1, 2, .{ 3, 4 } }", .{ .mode = .zon }); | |
| 3538 | 3538 | defer ast.deinit(gpa); |
| 3539 | 3539 | |
| 3540 | 3540 | var zoir = try ZonGen.generate(gpa, ast, .{ .parse_str_lits = false }); |
src/Builtin.zig+1-1| ... | ... | @@ -296,7 +296,7 @@ pub fn populateFile(opts: @This(), gpa: Allocator, file: *File) Allocator.Error! |
| 296 | 296 | |
| 297 | 297 | log.debug("parsing and generating 'builtin.zig'", .{}); |
| 298 | 298 | |
| 299 | file.tree = try std.zig.Ast.parse(gpa, file.source.?, .zig, .{}); | |
| 299 | file.tree = try std.zig.Ast.parse(gpa, file.source.?, .{}); | |
| 300 | 300 | assert(file.tree.?.errors.len == 0); // builtin.zig must parse |
| 301 | 301 | |
| 302 | 302 | file.zir = try AstGen.generate(gpa, file.tree.?); |
src/Zcu.zig+1-1| ... | ... | @@ -1145,7 +1145,7 @@ pub const File = struct { |
| 1145 | 1145 | if (file.tree) |*tree| return tree; |
| 1146 | 1146 | |
| 1147 | 1147 | const source = try file.getSource(zcu); |
| 1148 | file.tree = try .parse(zcu.gpa, source, file.getMode(), .{}); | |
| 1148 | file.tree = try .parse(zcu.gpa, source, .{ .mode = file.getMode() }); | |
| 1149 | 1149 | return &file.tree.?; |
| 1150 | 1150 | } |
| 1151 | 1151 |
src/Zcu/PerThread.zig+1-1| ... | ... | @@ -642,7 +642,7 @@ pub fn updateFile( |
| 642 | 642 | |
| 643 | 643 | var timer = comp.startTimer(); |
| 644 | 644 | // Any potential AST errors are converted to ZIR errors when we run AstGen/ZonGen. |
| 645 | file.tree = try Ast.parse(gpa, source, file.getMode(), .{}); | |
| 645 | file.tree = try Ast.parse(gpa, source, .{ .mode = file.getMode() }); | |
| 646 | 646 | if (timer.finish(io)) |ns_parse| { |
| 647 | 647 | comp.mutex.lockUncancelable(io); |
| 648 | 648 | defer comp.mutex.unlock(io); |
src/fmt.zig+4-2| ... | ... | @@ -117,7 +117,9 @@ pub fn run(gpa: Allocator, arena: Allocator, io: Io, args: []const []const u8) ! |
| 117 | 117 | }; |
| 118 | 118 | defer gpa.free(source_code); |
| 119 | 119 | |
| 120 | var tree = std.zig.Ast.parse(gpa, source_code, if (force_zon) .zon else .zig, .{}) catch |err| { | |
| 120 | var tree = std.zig.Ast.parse(gpa, source_code, .{ | |
| 121 | .mode = if (force_zon) .zon else .zig, | |
| 122 | }) catch |err| { | |
| 121 | 123 | fatal("error parsing stdin: {}", .{err}); |
| 122 | 124 | }; |
| 123 | 125 | defer tree.deinit(gpa); |
| ... | ... | @@ -312,7 +314,7 @@ fn fmtPathFile( |
| 312 | 314 | break :mode .zig; |
| 313 | 315 | }; |
| 314 | 316 | |
| 315 | var tree = try std.zig.Ast.parse(gpa, source_code, mode, .{}); | |
| 317 | var tree = try std.zig.Ast.parse(gpa, source_code, .{ .mode = mode }); | |
| 316 | 318 | defer tree.deinit(gpa); |
| 317 | 319 | |
| 318 | 320 | if (tree.errors.len != 0) { |
src/main.zig+3-3| ... | ... | @@ -5528,7 +5528,7 @@ fn cmdAstCheck(arena: Allocator, io: Io, args: []const []const u8, environ_map: |
| 5528 | 5528 | break :mode .zig; |
| 5529 | 5529 | }; |
| 5530 | 5530 | |
| 5531 | const tree = try Ast.parse(arena, source, mode, .{}); | |
| 5531 | const tree = try Ast.parse(arena, source, .{ .mode = mode }); | |
| 5532 | 5532 | |
| 5533 | 5533 | var stdout_writer = Io.File.stdout().writerStreaming(io, &stdout_buffer); |
| 5534 | 5534 | const stdout_bw = &stdout_writer.interface; |
| ... | ... | @@ -5698,7 +5698,7 @@ fn cmdChangelist(arena: Allocator, io: Io, args: []const []const u8, environ_map |
| 5698 | 5698 | fatal("unable to read new source file {q}: {t}", .{ new_source_path, err }); |
| 5699 | 5699 | }; |
| 5700 | 5700 | |
| 5701 | const old_tree = try Ast.parse(arena, old_source, .zig, .{}); | |
| 5701 | const old_tree = try Ast.parse(arena, old_source, .{}); | |
| 5702 | 5702 | const old_zir = try AstGen.generate(arena, old_tree); |
| 5703 | 5703 | |
| 5704 | 5704 | if (old_zir.loweringFailed()) { |
| ... | ... | @@ -5710,7 +5710,7 @@ fn cmdChangelist(arena: Allocator, io: Io, args: []const []const u8, environ_map |
| 5710 | 5710 | process.exit(1); |
| 5711 | 5711 | } |
| 5712 | 5712 | |
| 5713 | const new_tree = try Ast.parse(arena, new_source, .zig, .{}); | |
| 5713 | const new_tree = try Ast.parse(arena, new_source, .{}); | |
| 5714 | 5714 | const new_zir = try AstGen.generate(arena, new_tree); |
| 5715 | 5715 | |
| 5716 | 5716 | if (new_zir.loweringFailed()) { |
tools/gen_parser_oracle.zig+1-1| ... | ... | @@ -46,7 +46,7 @@ pub fn main(init: std.process.Init) !void { |
| 46 | 46 | defer gpa.free(generated); |
| 47 | 47 | |
| 48 | 48 | // Parse the generated Zig code and render it in the canonical format |
| 49 | var tree = try std.zig.Ast.parse(gpa, generated, .zig, .{}); | |
| 49 | var tree = try std.zig.Ast.parse(gpa, generated, .{}); | |
| 50 | 50 | defer tree.deinit(gpa); |
| 51 | 51 | |
| 52 | 52 | if (tree.errors.len != 0) { |
tools/gen_spirv_spec.zig+1-1| ... | ... | @@ -116,7 +116,7 @@ pub fn main(init: std.process.Init) !void { |
| 116 | 116 | try allocating.writer.writeByte(0); |
| 117 | 117 | const output = allocating.written()[0 .. allocating.written().len - 1 :0]; |
| 118 | 118 | |
| 119 | var tree = try std.zig.Ast.parse(arena, output, .zig, .{}); | |
| 119 | var tree = try std.zig.Ast.parse(arena, output, .{}); | |
| 120 | 120 | |
| 121 | 121 | if (tree.errors.len != 0) { |
| 122 | 122 | try std.zig.printAstErrorsToStderr(arena, io, tree, "", .auto); |