public RSResult Apply(RSExpression lhs, RSExpression rhs, Func <dynamic, dynamic, dynamic> f) { var lhsValue = Evaluate(lhs).Value as dynamic; var rhsValue = Evaluate(rhs).Value as dynamic; return(RSResult.FromValue(f(lhsValue, rhsValue))); }
public RSOutput(RSExpression expression) { this.Expression = expression; }
public RSConditional(RSExpression condition, RSBlock consequent, RSBlock alternate = null) { this.Condition = condition; this.Consequent = consequent; this.Alternate = alternate; }
public RSUntil(RSExpression condition, RSBlock body) { Condition = condition; Body = body; }
public RSWhile(RSExpression condition, RSBlock body) { Condition = condition; Body = body; }
public RSReturn(RSExpression expr) { this.Expression = expr; }
public RSNegate(RSExpression expr) { this.Expression = expr; }
public RSComparison(RSComparator comp, RSExpression lhs, RSExpression rhs) { Lhs = lhs; Rhs = rhs; Comparator = comp; }
public RSBinary(RSOperator op, RSExpression lhs, RSExpression rhs) { this.Operator = op; this.Lhs = lhs; this.Rhs = rhs; }
public RSAssign(RSVariable v, RSExpression e) { this.Variable = v; this.Expression = e; }