public SymplEq(SymplExpression left, SymplExpression right, SourceSpan location) : base(location) { Left = left; Right = right; }
public SymplNew(SymplExpression type, SymplExpression[] arguments, SourceSpan location) : base(location) { Type = type; Arguments = arguments; }
public SymplSet(SymplExpression lhs, SymplExpression value, SourceSpan location) : base(location) { Source = lhs; Value = value; }
public SymplCall(SymplExpression fun, SymplExpression[] args, SourceSpan location) : base(location) { Function = fun; Arguments = args; }
public SymplBinary(SymplExpression left, SymplExpression right, ExpressionType operation, SourceSpan location) : base(location) { Left = left; Right = right; Operation = operation; }
public SymplIf(SymplExpression test, SymplExpression consequent, SymplExpression?alternative, SourceSpan location) : base(location) { Test = test; Consequent = consequent; Alternative = alternative; }
public SymplUnary(SymplExpression expression, ExpressionType operation, SourceSpan location) : base(location) { Operand = expression; Operation = operation; }
public SymplElt(SymplExpression expr, SymplExpression[] indexes, SourceSpan location) : base(location) { ObjectExpr = expr; Indexes = indexes; }
public LetBinding(IdOrKeywordToken variable, SymplExpression value) { Variable = variable; Value = value; }
public SymplDot(SymplExpression expr, SymplExpression[] exprs, SourceSpan location) : base(location) { Target = expr; Expressions = exprs; }