internal Print(Expr expression) { this.Expression = expression; }
internal Return(Token keyword, Expr value) { this.Keyword = keyword; this.Value = value; }
internal Conditional(Expr ifThen, Expr ifElse) { this.IfThen = ifThen; this.IfElse = ifElse; }
internal Call(Expr callee, Token paren, List <Expr> arguments) { this.Callee = callee; this.Paren = paren; this.Arguments = arguments; }
public Grouping(Expr expression) { this.Expression = expression; }
internal Binary(Expr left, Token @operator, Expr right) { this.Left = left; this.@operator = @operator; this.Right = right; }
internal Set(Expr @object, Token name, Expr value) { this.@object = @object; this.Name = name; this.Value = value; }
internal ExpressionStmt(Expr expression) { this.Expression = expression; }
internal Grouping(Expr expression) { this.Expression = expression; }
internal Logical(Expr left, Token @operator, Expr right) { this.Left = left; this.@operator = @operator; this.Right = right; }
internal Get(Expr @object, Token name) { this.@object = @object; this.Name = name; }
public Binary(Expr left, Token @operator, Expr right) { this.Left = left; this.Operator = @operator; this.Right = right; }
public Unary(Token @operator, Expr right) { this.Operator = @operator; this.Right = right; }
internal While(Expr condition, Stmt body) { this.Condition = condition; this.Body = body; }
internal Assign(Token name, Expr value) { this.Name = name; this.Value = value; }
internal Var(Token name, Expr initializer) { this.Name = name; this.Initializer = initializer; }
internal Unary(Token @operator, Expr right) { this.@operator = @operator; this.Right = right; }
internal If(Expr condition, Stmt thenBranch, Stmt elseBranch) { this.Condition = condition; this.ThenBranch = thenBranch; this.ElseBranch = elseBranch; }
internal Get(Expr obj, Token name) { this.Object = obj; this.Name = name; }