| over c@ '' = if |
over c@ '' = if |
| 1 /string s'>unumber? exit |
1 /string s'>unumber? exit |
| endif |
endif |
| base @ >r getbase sign? >r |
base @ >r getbase sign? |
| 0. 2swap |
over if |
| |
>r 0. 2swap |
| BEGIN ( d addr len ) |
BEGIN ( d addr len ) |
| dup >r >number dup |
dup >r >number dup |
| WHILE \ there are characters left |
WHILE \ there are characters left |
| ELSE |
ELSE |
| rdrop 2drop r> ?dnegate true |
rdrop 2drop r> ?dnegate true |
| THEN |
THEN |
| |
ELSE |
| |
drop 2drop 0. false THEN |
| 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 |