summaryrefslogtreecommitdiff
path: root/src/main.zig
blob: 4f1127cca744c2f24dfc841ef98de403096fef68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const std = @import("std");

const zisp = @import("zisp");

const gst_io = std.Io.Threaded.global_single_threaded.io();

pub fn main() !void {
    var stdin_buffer: [4096]u8 = undefined;
    var stdin_reader = std.Io.File.stdin().reader(gst_io, &stdin_buffer);
    const reader = &stdin_reader.interface;

    var stdout_buffer: [4096]u8 = undefined;
    var stdout_writer = std.Io.File.stdout().writer(gst_io, &stdout_buffer);
    const writer = &stdout_writer.interface;

    while (true) {
        try writer.writeAll("> ");
        try writer.flush();
        const datum = zisp.io.parse.fromReader(reader);
        if (datum.eq(zisp.value.eof)) {
            try writer.writeAll("\n");
            return;
        }
        try writer.writeAll("= ");
        try zisp.io.print.toWriter(writer, datum);
        try writer.writeAll("\n");
        try writer.flush();
    }
}