| 1+ |
1+ |
| THEN ; |
THEN ; |
| |
|
| : number? ( string -- string 0 / n -1 / d 0> ) |
: (number?) ( string -- string 0 / n -1 / d 0> ) |
| dup >r count snumber? dup if |
dup >r count snumber? dup if |
| rdrop |
rdrop |
| else |
else |
| then ; |
then ; |
| |
|
| : number ( string -- d ) |
: number ( string -- d ) |
| number? ?dup 0= abort" ?" 0< |
(number?) ?dup 0= abort" ?" 0< |
| IF |
IF |
| s>d |
s>d |
| THEN ; |
THEN ; |
| |
|
| [THEN] |
[THEN] |
| |
|
| |
[IFUNDEF] (number?) : (number?) number? ; [THEN] |
| |
|
| \ this provides assert( and struct stuff |
\ this provides assert( and struct stuff |
| \GFORTH [IFUNDEF] assert1( |
\GFORTH [IFUNDEF] assert1( |
| \GFORTH also forth definitions require assert.fs previous |
\GFORTH also forth definitions require assert.fs previous |
| IF nip execute-exec-compile ELSE gexecute THEN |
IF nip execute-exec-compile ELSE gexecute THEN |
| EXIT |
EXIT |
| THEN |
THEN |
| number? dup |
(number?) dup |
| IF 0> IF swap lit, THEN lit, discard |
IF 0> IF swap lit, THEN lit, discard |
| ELSE 2drop restore-input throw Ghost gexecute THEN ; |
ELSE 2drop restore-input throw Ghost gexecute THEN ; |
| |
|