// {o --} private int PrintStringAction() { _interpreter.ObjectStackExpect(1); _interpreter.Output.Write(_interpreter.OPop().ToString()); return(1); }
// ( -- n) {s -- s} private int CountAction() { _interpreter.ObjectStackExpect(1); _interpreter.StackFree(1); var s = _interpreter.OPop().ToString(); _interpreter.Push(s.Length); _interpreter.OPush(s); return(1); }
// Extra // ( -- false | d true) {s -- } private int ToNumberAction() { _interpreter.ObjectStackExpect(1); var n = _interpreter.ParseIntegerNumber(_interpreter.OPop().ToString(), out var success); if (success) { _interpreter.StackFree(3); _interpreter.DPush(n); _interpreter.Push(-1); } else { _interpreter.StackFree(1); _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); }