17 lines
554 B
Plaintext
17 lines
554 B
Plaintext
: (parsed) ( a -- n f )
|
|
DUP C@ ( a c )
|
|
DUP '-' = IF
|
|
DROP 1+ ( a+1 ) (parsed) 0 ROT ( f 0 n )
|
|
- SWAP EXIT ( 0-n f )
|
|
THEN
|
|
0 SWAP _pdacc ( a r f )
|
|
?DUP IF 2DROP 0 EXIT THEN
|
|
BEGIN ( a r )
|
|
SWAP 1+ ( r a+1 )
|
|
DUP C@ ( r a c )
|
|
ROT SWAP ( a r c )
|
|
_pdacc ( a r f )
|
|
?DUP UNTIL
|
|
1 = ( a r f )
|
|
ROT DROP ( r f ) ;
|