const std = @import("std"); const lang = @import("lang.zig"); pub const RunError = error{UnknownCommand}; pub const Runner = struct { allocator: *std.mem.Allocator, pub fn init(allocator: *std.mem.Allocator) Runner { return Runner{ .allocator = allocator }; } fn runCommand(self: *Runner, cmd: *lang.Command) !void { return switch (cmd.command) { .Noop => {}, else => blk: { std.debug.warn("Unknown command: {}\n", cmd.command); break :blk RunError.UnknownCommand; }, }; } pub fn runCommands( self: *Runner, cmds: lang.CommandList, debug_flag: bool, ) !void { var it = cmds.iterator(); while (it.next()) |cmd| { if (debug_flag) cmd.print(); try self.runCommand(cmd); } } };