// 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) { 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."); } } } }
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); } } }
public void PushInput(Interpreter inI, int n) { ObjectStack _stack = inI.InputStack(); if (_stack.Size() > n) { object inObject = _stack.DeepPeek(n); if (inObject is int) { IntStack istack = inI.IntStack(); istack.Push((int)inObject); } else { // if (inObject is Number) // { // FloatStack fstack = inI.FloatStack(); // fstack.Push(((Number)inObject).FloatValue()); // } //else if (inObject is float) { FloatStack fstack = inI.FloatStack(); fstack.Push((float)inObject); } else { if (inObject is bool) { BooleanStack bstack = inI.BoolStack(); bstack.Push((bool)inObject); } else { Console.Error.WriteLine("Error during input.index - object " + inObject.GetType() + " is not a legal object according to " + this.GetType() + "."); } } } } }
// 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); } } }
internal ObjectStackInstruction(ObjectStack inStack) { _stack = inStack; }
internal IF(ObjectStack inStack) : base(inStack) { }
internal ObjectEquals(ObjectStack inStack) : base(inStack) { }
internal RandomPushCode(ObjectStack inStack) : base(inStack) { Rng = new Random(); }
internal ExecY(ObjectStack inStack) : base(inStack) { }
internal ExecS(ObjectStack inStack, int inMaxPointsInProgram) : base(inStack) { _maxPointsInProgram = inMaxPointsInProgram; }
public ObjectConstant(ObjectStack inStack, object inValue) : base(inStack) { _value = inValue; }
internal InputIndex(ObjectStack inStack) : base(inStack) { }
internal InputInRev(ObjectStack inStack) : base(inStack) { }
internal InputInAll(ObjectStack inStack) : base(inStack) { }