3d908cef3a
This allows us to get rid of the (parse*) indirection.
16 lines
454 B
Plaintext
16 lines
454 B
Plaintext
: (parseh) ( a -- n f )
|
|
( '0': ASCII 0x30 'x': 0x78 0x7830: 30768 )
|
|
DUP @ 30768 = NOT IF 0 EXIT THEN ( a 0 )
|
|
( We have "0x" prefix )
|
|
2+
|
|
0 ( a r )
|
|
BEGIN
|
|
SWAP C@+ ( r a+1 c )
|
|
DUP NOT IF 2DROP 1 EXIT THEN ( r, 1 )
|
|
_ ( r a n )
|
|
DUP 0< IF ROT 2DROP 0 EXIT THEN ( a 0 )
|
|
ROT 16 * + ( a r*16+n )
|
|
AGAIN
|
|
;
|
|
|