Microsoft.CSharp.RuntimeBinder.RuntimeBinder.CreateArgumentListEXPR C# (CSharp) Method

CreateArgumentListEXPR() private method

private CreateArgumentListEXPR ( ArgumentObject arguments, LocalVariableSymbol>.Dictionary dictionary, int startIndex, int endIndex ) : EXPR
arguments ArgumentObject
dictionary LocalVariableSymbol>.Dictionary
startIndex int
endIndex int
return Microsoft.CSharp.RuntimeBinder.Semantics.EXPR
        private EXPR CreateArgumentListEXPR(
            ArgumentObject[] arguments,
            Dictionary<int, LocalVariableSymbol> dictionary,
            int startIndex,
            int endIndex)
        {
            EXPR args = null;
            EXPR last = null;

            if (arguments != null)
            {
                for (int i = startIndex; i < endIndex; i++)
                {
                    ArgumentObject argument = arguments[i];
                    EXPR arg = CreateArgumentEXPR(argument, dictionary[i]);

                    if (args == null)
                    {
                        args = arg;
                        last = args;
                    }
                    else
                    {
                        // Lists are right-heavy.
                        _exprFactory.AppendItemToList(arg, ref args, ref last);
                    }
                }
            }
            return args;
        }