Пример #1
0
        internal static void TransformParametersToSuperCall(AstGenerator /*!*/ gen, CallBuilder /*!*/ callBuilder, Parameters parameters)
        {
            if (parameters == null)
            {
                return;
            }

            if (parameters.Mandatory != null)
            {
                foreach (Variable v in parameters.Mandatory)
                {
                    callBuilder.Add(v.TransformRead(gen));
                }
            }

            if (parameters.Optional != null)
            {
                foreach (SimpleAssignmentExpression s in parameters.Optional)
                {
                    callBuilder.Add(s.Left.TransformRead(gen));
                }
            }

            if (parameters.Array != null)
            {
                callBuilder.SplattedArgument = parameters.Array.TransformRead(gen);
            }
        }
Пример #2
0
        /// <summary>
        /// Emits the call.
        /// </summary>
        /// <param name="methodID">The method identifier.</param>
        /// <param name="arguments">The arguments.</param>
        /// <returns>CallBuilder.</returns>
        private CallBuilder emitCall(MethodID methodID, Arguments arguments)
        {
            var call = new Call(methodID, arguments);

            emitInstruction(call);

            var builder = new CallBuilder(call);

            return(builder);
        }