aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig12
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 {