main: add Result enum
This commit is contained in:
parent
53d41b31e7
commit
3b8943731e
1 changed files with 34 additions and 0 deletions
34
src/main.zig
34
src/main.zig
|
@ -1,9 +1,43 @@
|
|||
const std = @import("std");
|
||||
|
||||
pub const Result = enum {
|
||||
Ok,
|
||||
TokenizeError,
|
||||
ParseError,
|
||||
CompileError,
|
||||
};
|
||||
|
||||
pub fn run(allocator: *std.mem.Allocator, slice: []const u8) Result {
|
||||
return Result.Ok;
|
||||
}
|
||||
|
||||
pub fn main() anyerror!void {
|
||||
const allocator = std.heap.direct_allocator;
|
||||
var args_it = std.process.args();
|
||||
_ = args_it.skip();
|
||||
|
||||
const filepath = try (args_it.next(allocator) orelse @panic("expected file path"));
|
||||
|
||||
var file = try std.fs.File.openRead(filepath);
|
||||
defer file.close();
|
||||
|
||||
const total_bytes = try file.getEndPos();
|
||||
|
||||
var slice = try allocator.alloc(u8, total_bytes);
|
||||
defer allocator.free(slice);
|
||||
|
||||
_ = try file.read(slice);
|
||||
|
||||
//switch (try run(allocator, slice)) {
|
||||
switch (run(allocator, slice)) {
|
||||
.Ok => {},
|
||||
|
||||
.TokenizeError,
|
||||
.ParseError,
|
||||
.CompileError,
|
||||
=> |res| {
|
||||
std.debug.warn("error: {}\n", res);
|
||||
std.os.exit(1);
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue