| drop |
drop |
| THEN ; |
THEN ; |
| |
|
| : sign? ( addr u -- addr u flag ) |
: sign? ( addr u -- addr1 u1 flag ) |
| over c@ [char] - = dup >r |
over c@ [char] - = dup >r |
| IF |
IF |
| 1 /string |
1 /string |
| endif |
endif |
| x@+/string 0 s" '" 2rot string-prefix? ; |
x@+/string 0 s" '" 2rot string-prefix? ; |
| |
|
| : s>unumber? ( addr u -- ud flag ) |
: s>unumber? ( addr u -- ud flag ) \ gforth |
| |
\G converts string addr len into ud, flag indicates success |
| dpl on |
dpl on |
| over c@ '' = if |
over c@ '' = if |
| 1 /string s'>unumber? exit |
1 /string s'>unumber? exit |
| r> base ! ; |
r> base ! ; |
| |
|
| \ ouch, this is complicated; there must be a simpler way - anton |
\ ouch, this is complicated; there must be a simpler way - anton |
| : s>number? ( addr len -- d f ) |
: s>number? ( addr len -- d f ) \ gforth |
| \ converts string addr len into d, flag indicates success |
\G converts string addr len into d, flag indicates success |
| sign? >r |
sign? >r |
| s>unumber? |
s>unumber? |
| 0= IF |
0= IF |