First pass of parser complete.
This commit is contained in:
parent
44792e5c19
commit
7236c0b43a
6 changed files with 221 additions and 12 deletions
19
src/main.zig
19
src/main.zig
|
|
@ -1,6 +1,8 @@
|
|||
const std = @import("std");
|
||||
|
||||
const scanner = @import("scanner.zig");
|
||||
const expr = @import("expr.zig");
|
||||
const parser = @import("parser.zig");
|
||||
const err = @import("error.zig");
|
||||
|
||||
pub fn main() !void {
|
||||
|
|
@ -56,8 +58,17 @@ fn runPrompt(alloc: std.mem.Allocator) !void {
|
|||
fn run(allocator: std.mem.Allocator, bytes: []u8) !void {
|
||||
var scan = scanner.Scanner.init(allocator, bytes);
|
||||
defer scan.deinit();
|
||||
std.debug.print("{any}\n", .{scan.scanTokens()});
|
||||
}
|
||||
|
||||
// Error reporting
|
||||
// TODO: Move to a separate file.
|
||||
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
|
||||
defer arena.deinit();
|
||||
var alloc = arena.allocator();
|
||||
var parse = parser.Parser{
|
||||
.tokens = scan.scanTokens(),
|
||||
.allocator = alloc,
|
||||
};
|
||||
|
||||
const expression = try parse.expression();
|
||||
// std.debug.print("AST: {}", .{expression.*});
|
||||
expr.AstPrint(expression.*);
|
||||
std.debug.print("\n", .{});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue