internal async Task EnterStep(UserProcess process, Step step) { if (frames.Count >= MaxStackSize) { throw new CursiveRunException(this, $"The maximum call depth ({MaxStackSize}) has been exceeded. Possible infinite loop detected."); } var frame = CreateFrame(process, step); await Push(frame); }
internal virtual StackFrame CreateFrame(UserProcess process, Step step) { return(new StackFrame(process, step, CurrentVariables)); }
internal async Task EnterNewProcess(UserProcess process, StartStep step, ValueSet variables) { CurrentVariables = variables; await EnterStep(process, step); }