// (addr -- ) {o -- } private int StoreToVariableAction() { var addr = _interpreter.Pop(); _interpreter.State.ObjectHeap.Items[addr] = _interpreter.OPop(); return(1); }
// {o --} private int PrintStringAction() { _interpreter.ObjectStackExpect(1); _interpreter.Output.Write(_interpreter.OPop().ToString()); return(1); }
// ( -- false | n true) {s -- } private int ToNumberAction() { _interpreter.StackFree(1); var n = _interpreter.ParseIntegerNumber(_interpreter.OPop().ToString(), out var success); if (success) { _interpreter.StackFree(2); _interpreter.Push((int)n); _interpreter.Push(-1); } else { _interpreter.Push(0); } return(1); }
// ( -- false | true) (F: | f -- ) {s -- } private int ToNumberAction() { _interpreter.ObjectStackExpect(1); var f = _interpreter.ParseFloatingPointNumber(_interpreter.OPop().ToString(), out var success); if (success) { _interpreter.StackFree(1); _interpreter.FStackFree(1); _interpreter.FPush(f); _interpreter.Push(-1); } else { _interpreter.StackFree(1); _interpreter.Push(0); } return(1); }