vig/src/ast.zig

20 lines
403 B
Zig

pub const AstNodeType = enum {
Program,
};
pub const AstNode = union(AstNodeType) {
Program: []AstNode,
};
pub fn printNode(stdout: var, node: AstNode) anyerror!void {
switch (node) {
.Program => |children| try printNodes(stdout, children),
}
}
fn printNodes(stdout: var, nodes: []AstNode) anyerror!void {
for (nodes) |node| {
try printNode(stdout, node);
}
}