feat: code generation for simple choice statements, testing machinery

This commit is contained in:
Brett Broadhurst 2026-03-16 17:33:31 -06:00
parent fac5a968e3
commit ee26be6254
Failed to generate hash of commit
13 changed files with 304 additions and 70 deletions

View file

@ -34,6 +34,8 @@ fn mainArgs(
var arg_index: usize = 1;
var compile_only: bool = false;
var dump_ast: bool = false;
var dump_ir: bool = false;
var dump_story: bool = false;
var use_stdin: bool = false;
var use_color: bool = false;
@ -46,6 +48,10 @@ fn mainArgs(
compile_only = true;
} else if (std.mem.eql(u8, arg, "--dump-ast")) {
dump_ast = true;
} else if (std.mem.eql(u8, arg, "--dump-ir")) {
dump_ir = true;
} else if (std.mem.eql(u8, arg, "--dump-story")) {
dump_story = true;
} else if (std.mem.eql(u8, arg, "--use-color")) {
use_color = true;
} else {
@ -86,10 +92,14 @@ fn mainArgs(
.stderr_writer = &stderr_writer.interface,
.dump_writer = &stdout_writer.interface,
.use_color = use_color,
.dump_ast = dump_ast,
.dump_ir = dump_ir,
});
defer story.deinit();
try story.dump(&stderr_writer.interface);
if (dump_story) {
try story.dump(&stderr_writer.interface);
}
if (compile_only) return;
while (!story.is_exited and story.can_advance) {