summary refs log tree commit diff
path: root/src/main.zig
diff options
context:
space:
mode:
authorBaitinq <manuelpalenzuelamerino@gmail.com>2025-01-08 23:49:27 +0100
committerBaitinq <manuelpalenzuelamerino@gmail.com>2025-01-08 23:49:27 +0100
commitdfa9ef4a951c4d498893a80728aa84734bf33775 (patch)
tree9adafce2199b1407f4a82e3a85b6270bb150cb43 /src/main.zig
parentMisc: Dont crash REPL if parsing fails (diff)
downloadinterpreter-dfa9ef4a951c4d498893a80728aa84734bf33775.tar.gz
interpreter-dfa9ef4a951c4d498893a80728aa84734bf33775.tar.bz2
interpreter-dfa9ef4a951c4d498893a80728aa84734bf33775.zip
Evaluator: Implement first version of evaluator that handles print statements
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig
index c8ebcfe..4a0f9ef 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1,6 +1,7 @@
 const std = @import("std");
 const tokenizer = @import("tokenizer.zig");
 const parser = @import("parser.zig");
+const evaluator = @import("evaluator.zig");
 
 pub fn main() !void {
     const stdout = std.io.getStdOut().writer();
@@ -56,6 +57,11 @@ fn process_buf(buf: []u8, allocator: std.mem.Allocator) !void {
     defer arena.deinit();
     const ast = try source_parser.parse();
     std.debug.print("AST: {any}\n", .{ast});
+
+    const source_evaluator = try evaluator.Evaluator.init(allocator);
+    defer source_evaluator.deinit();
+    const result = try source_evaluator.evaluate_ast(ast);
+    std.debug.print("Evaluation result: {any}\n", .{result});
 }
 
 test {