1 const Token = @import("Token.zig");
3 pub const Expr = union(enum) {
9 pub const Binary = struct {
14 pub fn init(left: *const Expr, operator: Token, right: *const Expr) Binary {
23 pub const Grouping = struct {
24 expression: *const Expr,
26 pub fn init(expression: *const Expr) Grouping {
28 .expression = expression,
33 pub const Literal = struct {
36 pub fn init(value: Token.Literal) Literal {
43 pub const Unary = struct {
47 pub fn init(operator: Token, right: *const Expr) Unary {