protected static void InvokeYieldingInvokable(Machine machine, YieldingInvokable invokable, Arguments arguments) { invokable.Arguments = arguments; var iterator = invokable.GetIterator(false); machine.Push((IObject)iterator); }
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; } }