private static UnaryExpression ToUnaryExpression(Expression value, UnaryOp operation) { return(new UnaryExpression( value, operation )); }
private static BinaryExpression ToBinaryExpression(Expression left, Expression right, BinaryOp operation) { return(new BinaryExpression( left, right, operation )); }
private static Expression ToBinaryExpression(ConcatEx e) { if (e.Expressions.Length == 0) { return(new EmptyExpression()); } else if (e.Expressions.Length == 1) { return(Parse(e.Expressions [0])); } else { Expression result_ex = ToBinaryExpression(e.Expressions [0], e.Expressions [1], BinaryOp.CONCAT); foreach (var additional_ex in e.Expressions.Skip(2)) { result_ex = ToBinaryExpression(result_ex, Parse(additional_ex), BinaryOp.CONCAT); } return(result_ex); } }