diff --git a/src/parser.zig b/src/parser.zig index e587a51..ef075ef 100644 --- a/src/parser.zig +++ b/src/parser.zig @@ -943,6 +943,35 @@ pub const Parser = struct { return .{ .template = template }; } + pub fn debugNodes(self: Parser, data: struct { + nodes: []Node, + name: ?[]const u8 = null, + }) void { + _ = self; + var prefix: []const u8 = ""; + + if (data.name) |name| { + prefix = " - "; + std.debug.print("{s}:\n", .{name}); + } + + for (data.nodes) |node| { + if (node.type == .tag) { + if (node.type == .tag and node.tag.?.kind == .block) { + std.debug.print("{s}tag: {any}, name: {s}\n", .{ prefix, node.tag.?.kind, node.tag.?.body.block.name }); + } else { + std.debug.print("{s}tag: {any}\n", .{ prefix, node.tag.?.kind }); + } + } + if (node.type == .text) { + std.debug.print("{s}text: {s}\n", .{ prefix, node.text.?.content }); + } + if (node.type == .variable) { + std.debug.print("{s}variable: {s}\n", .{ prefix, node.variable.?.expr }); + } + } + } + fn advance(self: *Parser, n: usize) void { self.pos += n; if (self.pos > self.template.len) self.pos = self.template.len;