public override void Execute(Interpreter inI) { IntStack istack = inI.IntStack(); ObjectStack estack = inI.ExecStack(); if (_stack.Size() > 0 && istack.Size() > 0) { if (istack.Top() > 0) { int stop = istack.Pop() - 1; object bodyObj = _stack.Pop(); try { Program doRangeMacroProgram = new Program(); doRangeMacroProgram.Push(0); doRangeMacroProgram.Push(stop); doRangeMacroProgram.Push("exec.do*range"); doRangeMacroProgram.Push(bodyObj); estack.Push(doRangeMacroProgram); } catch (Exception) { Console.Error.WriteLine("Error while initializing a program."); } } } }
public override void Execute(Interpreter inI) { ObjectStack cstack = inI.CodeStack(); ObjectStack estack = inI.ExecStack(); if (estack.Size() > 0) { cstack.Push(estack.Pop()); } }
public override void Execute(Interpreter inI) { ObjectStack codeStack = inI.CodeStack(); FloatStack fStack = inI.FloatStack(); if (fStack.Size() > 0) { codeStack.Push(fStack.Pop()); } }
public override void Execute(Interpreter inI) { ObjectStack codeStack = inI.CodeStack(); IntStack iStack = inI.IntStack(); if (iStack.Size() > 0) { codeStack.Push(iStack.Pop()); } }
// End code iteration functions // // Conversion instructions to code // public override void Execute(Interpreter inI) { ObjectStack codeStack = inI.CodeStack(); BooleanStack bStack = inI.BoolStack(); if (bStack.Size() > 0) { codeStack.Push(bStack.Pop()); } }
public override void Execute(Interpreter inI) { BooleanStack bstack = inI.BoolStack(); ObjectStack estack = inI.ExecStack(); if (_stack.Size() > 1 && bstack.Size() > 0) { bool istrue = bstack.Pop(); object iftrue = _stack.Pop(); object iffalse = _stack.Pop(); if (istrue) { estack.Push(iftrue); } else { estack.Push(iffalse); } } }
// Begin exec iteration functions public override void Execute(Interpreter inI) { IntStack istack = inI.IntStack(); ObjectStack estack = inI.ExecStack(); if (_stack.Size() > 0 && istack.Size() > 1) { int stop = istack.Pop(); int start = istack.Pop(); object code = _stack.Pop(); if (start == stop) { istack.Push(start); estack.Push(code); } else { istack.Push(start); start = (start < stop) ? (start + 1) : (start - 1); // trh//Made changes to correct errors with code.do*range try { Program recursiveCallProgram = new Program(); recursiveCallProgram.Push(start); recursiveCallProgram.Push(stop); recursiveCallProgram.Push("exec.do*range"); recursiveCallProgram.Push(code); estack.Push(recursiveCallProgram); } catch (Exception) { Console.Error.WriteLine("Error while initializing a program."); } estack.Push(code); } } }
public override void Execute(Interpreter inI) { IntStack istack = inI.IntStack(); ObjectStack estack = inI.ExecStack(); if (_stack.Size() > 0 && istack.Size() > 0) { if (istack.Top() > 0) { object bodyObj = _stack.Pop(); if (bodyObj is Program) { // insert integer.pop in front of program ((Program)bodyObj).Shove("integer.pop", ((Program)bodyObj)._size); } else { // create a new program with integer.pop in front of // the popped object Program newProgram = new Program(); newProgram.Push("integer.pop"); newProgram.Push(bodyObj); bodyObj = newProgram; } int stop = istack.Pop() - 1; try { Program doRangeMacroProgram = new Program(); doRangeMacroProgram.Push(0); doRangeMacroProgram.Push(stop); doRangeMacroProgram.Push("code.quote"); doRangeMacroProgram.Push(bodyObj); doRangeMacroProgram.Push("code.do*range"); estack.Push(doRangeMacroProgram); } catch (Exception) { Console.Error.WriteLine("Error while initializing a program."); } } } }