Ejemplo n.º 1
0
        protected static void InvokeYieldingInvokable(Machine machine, YieldingInvokable invokable, Arguments arguments)
        {
            invokable.Arguments = arguments;
            var iterator = invokable.GetIterator(false);

            machine.Push((IObject)iterator);
        }
Ejemplo n.º 2
0
        public override void Generate(OperationsBuilder builder)
        {
            var functionName      = $"__$comprehension{id()}";
            var yieldingInvokable = new YieldingInvokable(functionName, Parameters.Empty, image);

            if (builder.RegisterInvokable(yieldingInvokable, block, true).If(out _, out var exception))
            {
                builder.PushObject(yieldingInvokable);
            }
            else
            {
                throw exception;
            }
        }