public Arguments Clone(CloneContext cloneContext) { var clone = new Arguments(_arguments.Count); clone.AddRange(_arguments.Select(o => Ast.Clone(cloneContext, o))); return(clone); }
public InvokeExpression(Expression target, IEnumerable <Argument> arguments) : this() { if (target == null) { throw new ArgumentNullException("target"); } Target = target; if (arguments != null) { Arguments.AddRange(arguments); } }
public CallExpression(MethodInfo method, Expression target, IEnumerable <Argument> arguments) : this() { if (method == null) { throw new ArgumentNullException("method"); } if (target == null) { throw new ArgumentNullException("target"); } Method = method; Target = target; if (arguments != null) { Arguments.AddRange(arguments); } }
public CallExpression(string methodName, Expression target, IEnumerable <Argument> arguments) : this() { if (methodName == null) { throw new ArgumentNullException("methodName"); } if (target == null) { throw new ArgumentNullException("target"); } MethodName = methodName; Target = target; if (arguments != null) { Arguments.AddRange(arguments); } }
public void Append(Expression operand) { // // Constant folding // var sc = operand as ConstantExpression <string>; if (sc != null) { if (_arguments.Count != 0) { var lastArgument = _arguments[_arguments.Count - 1]; var lastExprConstant = lastArgument.Value as ConstantExpression <string>; if (lastExprConstant != null) { lastArgument.Value = new ConstantExpression <string>( lastExprConstant.Value + sc.Value, sc.Span); return; } } } else { // // Multiple (3+) concatenation are resolved as multiple StringConcat instances // var concatOper = operand as ConcatExpression; if (concatOper != null) { _arguments.AddRange(concatOper._arguments); return; } } _arguments.Add(new Argument(operand)); }