Initial commit
This commit is contained in:
commit
f12d41e580
9 changed files with 1953 additions and 0 deletions
1735
src/Class.zig
Normal file
1735
src/Class.zig
Normal file
File diff suppressed because it is too large
Load diff
49
src/main.zig
Normal file
49
src/main.zig
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
const std = @import("std");
|
||||
|
||||
const Class = @import("Class.zig");
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
const io = init.io;
|
||||
const allocator = init.gpa;
|
||||
|
||||
var args = try init.minimal.args.iterateAllocator(init.arena.allocator());
|
||||
defer args.deinit();
|
||||
|
||||
var stderr_writer: std.Io.File.Writer = .init(.stderr(), io, &.{});
|
||||
const stderr = &stderr_writer.interface;
|
||||
|
||||
var stdout_buf: [1024]u8 = undefined;
|
||||
var stdout_writer: std.Io.File.Writer = .init(.stdout(), io, &stdout_buf);
|
||||
const stdout = &stdout_writer.interface;
|
||||
|
||||
std.debug.assert(args.skip());
|
||||
const file_path = if (args.next()) |fp| fp else {
|
||||
try stderr.writeAll("No file argument provided.\n");
|
||||
return;
|
||||
};
|
||||
|
||||
const file = std.Io.Dir.cwd().openFile(io, file_path, .{}) catch |err| switch (err) {
|
||||
error.FileNotFound => {
|
||||
try stderr.writeAll("File not found.\n");
|
||||
return;
|
||||
},
|
||||
error.IsDir => {
|
||||
try stderr.writeAll("Path is a directory.\n");
|
||||
return;
|
||||
},
|
||||
else => return err,
|
||||
};
|
||||
defer file.close(io);
|
||||
|
||||
var file_buf: [1024]u8 = undefined;
|
||||
var file_reader = file.reader(io, &file_buf);
|
||||
const reader = &file_reader.interface;
|
||||
|
||||
var class = try Class.parse(reader, allocator);
|
||||
defer class.deinit();
|
||||
|
||||
try stdout.print("{f}", .{ class });
|
||||
|
||||
try stdout.flush();
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue