blob: d9aee7764ba93bc0dc2a81411808536641f0c2cd (
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
30
31
32
33
34
35
|
const std = @import("std");
pub const Grammar = @import("grammar.zig");
pub const gss = @import("gss.zig");
pub const recognizer = @import("recognizer.zig");
pub const argument = @import("argument.zig");
pub const command = @import("command/root.zig");
pub const Generator = @import("generator.zig").Generator;
pub const Scheduler = @import("scheduler.zig").Scheduler;
const Args = argument.Args;
const BenchmarkArgs = argument.BenchmarkArgs;
const GenerateArgs = argument.GenerateArgs;
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
defer {
if (gpa.deinit() == .leak) {
@panic("memory leak detected");
}
}
var arguments = Args.parse(allocator);
defer arguments.deinit();
try switch(arguments) {
.benchmark => |*args| command.benchmark(args, allocator),
.generate => |*args| command.generate(args, allocator),
};
}
test {
std.testing.refAllDecls(@This());
}
|