public Binary(Expr left, Token op, Expr right) { Left = left; Op = op; Right = right; }
public Assign(Token name, Expr value) { Name = name; Value = value; }
public Logical(Expr left, Token op, Expr right) { Left = left; Op = op; Right = right; }
public Call(Expr callee, Token paren, List <Expr> args) { Callee = callee; Paren = paren; Arguments = args; }
public Grouping(Expr expression) { Expression = expression; }
public Unary(Token op, Expr right) { Op = op; Right = right; }