about summary refs log tree commit diff
path: root/src/main.zig
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-01-06 12:47:53 +0100
committerBaitinq <[email protected]>2025-01-06 13:13:52 +0100
commit792f271de057315eb5ba1e0bac3a7c6b90da450a (patch)
tree49cc589621dd3a84640786f2cc1ed92ae0b42dfc /src/main.zig
parentAdd language grammar (diff)
downloadinterpreter-792f271de057315eb5ba1e0bac3a7c6b90da450a.tar.gz
interpreter-792f271de057315eb5ba1e0bac3a7c6b90da450a.tar.bz2
interpreter-792f271de057315eb5ba1e0bac3a7c6b90da450a.zip
Start writing parser
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig13
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 {