refactor: new direction for error reporting
This commit is contained in:
parent
72b686d750
commit
c940374f27
11 changed files with 758 additions and 582 deletions
19
src/main.zig
19
src/main.zig
|
|
@ -79,28 +79,33 @@ fn mainArgs(
|
|||
};
|
||||
};
|
||||
|
||||
const stdin = std.fs.File.stdin();
|
||||
var stdin_reader = stdin.reader(&stdin_buffer);
|
||||
|
||||
const stdout = std.fs.File.stdout();
|
||||
var stdout_writer = stdout.writer(&stdout_buffer);
|
||||
|
||||
const stderr = std.fs.File.stderr();
|
||||
var stderr_writer = stderr.writer(&stderr_buffer);
|
||||
|
||||
var story = try ink.Story.loadFromString(gpa, source_bytes, .{
|
||||
.stderr_writer = &stderr_writer.interface,
|
||||
var story = ink.Story.loadFromString(gpa, source_bytes, .{
|
||||
.error_writer = &stderr_writer.interface,
|
||||
.dump_writer = &stdout_writer.interface,
|
||||
.use_color = use_color,
|
||||
.dump_ast = dump_ast,
|
||||
.dump_ir = dump_ir,
|
||||
});
|
||||
}) catch |err| switch (err) {
|
||||
error.Fail => std.process.exit(1),
|
||||
else => |e| return e,
|
||||
};
|
||||
defer story.deinit();
|
||||
|
||||
if (dump_story) {
|
||||
try story.dump(&stderr_writer.interface);
|
||||
}
|
||||
if (compile_only) return;
|
||||
return if (!compile_only) run(gpa, &story);
|
||||
}
|
||||
|
||||
fn run(gpa: std.mem.Allocator, story: *ink.Story) !void {
|
||||
const stdin = std.fs.File.stdin();
|
||||
var stdin_reader = stdin.reader(&stdin_buffer);
|
||||
|
||||
while (!story.is_exited and story.can_advance) {
|
||||
while (story.can_advance) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue