diff options
| author | Baitinq <[email protected]> | 2025-01-06 12:47:53 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-01-06 13:13:52 +0100 |
| commit | 792f271de057315eb5ba1e0bac3a7c6b90da450a (patch) | |
| tree | 49cc589621dd3a84640786f2cc1ed92ae0b42dfc /src/main.zig | |
| parent | Add language grammar (diff) | |
| download | pry-lang-792f271de057315eb5ba1e0bac3a7c6b90da450a.tar.gz pry-lang-792f271de057315eb5ba1e0bac3a7c6b90da450a.tar.bz2 pry-lang-792f271de057315eb5ba1e0bac3a7c6b90da450a.zip | |
Start writing parser
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index 3be7b14..128ad7e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,11 +1,14 @@ const std = @import("std"); const tokenizer = @import("tokenizer.zig"); +const parser = @import("parser.zig"); pub fn main() !void { const pathLen = std.mem.len(std.os.argv[1]); const path = std.os.argv[1][0..pathLen]; std.debug.print("Tokenizing! {s}\n", .{path}); + //TODO: Repl mode + const file = try std.fs.cwd().openFile(path, .{}); var gpa = std.heap.GeneralPurposeAllocator(.{}){}; @@ -20,10 +23,20 @@ pub fn main() !void { std.debug.print("Buf:\n{s}\n", .{buf}); + var token_list = std.ArrayList(tokenizer.Token).init(allocator); + defer token_list.deinit(); + var sourceTokenizer = try tokenizer.Tokenizer.init(buf); while (sourceTokenizer.next()) |token| { + try token_list.append(token); + } + + for (token_list.items) |token| { std.debug.print("{any}\n", .{token}); } + + const ast = try parser.Parser.parse(token_list.items); + std.debug.print("AST: {any}\n", .{ast}); } test { |