public Conditional(Expr expr, Expr trueExpr, Expr falseExpr) { Expr = expr; Trueexpr = trueExpr; Falseexpr = falseExpr; }
public Binary(Expr left, Token op, Expr right) { Left = left; Op = op; Right = right; }
public Call(Expr callee, Token paren, List <Expr> arguments) { Callee = callee; Paren = paren; Arguments = arguments; }
public StringFormat(Expr value, Expr alignment, Expr format) { Value = value; Alignment = alignment; Format = format; }
public Assign(Token name, Expr value) { Name = name; Value = value; }
public Unary(Token op, Expr right) { Op = op; Right = right; }
public Set(Expr obj, Token name, Expr value) { Obj = obj; Name = name; Value = value; }
public Logical(Expr left, Token op, Expr right) { Left = left; Op = op; Right = right; }
public Grouping(Expr expr) { Expr = expr; }
public Get(Expr obj, Token name) { Obj = obj; Name = name; }