From 8b67ccc1bfc0944720d3ffc0cc583658f1c07a04 Mon Sep 17 00:00:00 2001 From: Luna Date: Tue, 10 Sep 2019 11:45:04 -0300 Subject: [PATCH] add printing of commands to any stream --- src/main.zig | 4 ++++ src/printer.zig | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/printer.zig diff --git a/src/main.zig b/src/main.zig index 1ac9680..5c414a8 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,6 +1,7 @@ const std = @import("std"); const langs = @import("lang.zig"); const runners = @import("runner.zig"); +const printer = @import("printer.zig"); test "scritcher" { _ = @import("lang.zig"); @@ -52,6 +53,9 @@ pub fn doRepl(allocator: *std.mem.Allocator, args_it: var) !void { // TODO save the line to scri_file? or should we have a special `push` // to do so? + + // note this is debug + try printer.printList(cmds, stdout); } } diff --git a/src/printer.zig b/src/printer.zig new file mode 100644 index 0000000..29aeb9b --- /dev/null +++ b/src/printer.zig @@ -0,0 +1,23 @@ +const langs = @import("lang.zig"); + +pub fn printList(list: langs.CommandList, stream: var) !void { + for (list.toSlice()) |cmd| { + var command = switch (cmd.command) { + .Noop => "noop", + .Load => "load", + .Quicksave => "quicksave", + .RunQS => "runqs", + + // TODO rest of commands + else => unreachable, + }; + + try stream.print("{}", command); + + for (cmd.args.toSlice()) |arg| { + try stream.print(" {}", arg); + } + + try stream.write(";\n"); + } +}