diff options
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/main.zig b/src/main.zig index 4dec1f1..c1d63c0 100644 --- a/src/main.zig +++ b/src/main.zig @@ -38,9 +38,11 @@ fn write_result( fn recognize(args: *RecognizeArgs, allocator: std.mem.Allocator) !void { const stdout = std.io.getStdOut(); - const writer = std.io.getStdOut().writer(); + var bufwriter = std.io.bufferedWriter(stdout.writer()); + const writer = bufwriter.writer(); - var reader = args.input.file.reader(); + var bufreader = std.io.bufferedReader(args.input.file.reader()); + var reader = bufreader.reader(); var index: usize = 0; const stderr = std.io.getStdErr(); @@ -58,8 +60,6 @@ fn recognize(args: *RecognizeArgs, allocator: std.mem.Allocator) !void { )) |buffer| { const trimmed = std.mem.trim(u8, buffer, &std.ascii.whitespace); - var arena = std.heap.ArenaAllocator.init(allocator); - defer arena.deinit(); try write_result( writer, @@ -70,7 +70,7 @@ fn recognize(args: *RecognizeArgs, allocator: std.mem.Allocator) !void { try recognizer.check( &args.grammar, trimmed, - arena.allocator() + allocator )); index += 1; @@ -79,6 +79,8 @@ fn recognize(args: *RecognizeArgs, allocator: std.mem.Allocator) !void { try stderr.writeAll("> "); } } + + try bufwriter.flush(); } fn generate(args: *GenerateArgs, allocator: std.mem.Allocator) !void { |