refactor: new direction for error reporting

This commit is contained in:
Brett Broadhurst 2026-03-18 17:52:07 -06:00
parent 72b686d750
commit c940374f27
Failed to generate hash of commit
11 changed files with 758 additions and 582 deletions

View file

@ -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) {