2020-05-25 20:16:07 -04:00
|
|
|
: _ ( a+1 len -- n f )
|
2020-05-25 13:22:26 -04:00
|
|
|
OVER C@ ( a len c )
|
|
|
|
'-' = IF
|
|
|
|
1- SWAP 1+ SWAP ( a+1 len-1 ) _ 0 ROT ( f 0 n )
|
2020-05-15 22:44:49 -04:00
|
|
|
- SWAP EXIT ( 0-n f )
|
2020-05-25 13:22:26 -04:00
|
|
|
THEN ( a len )
|
|
|
|
0 SWAP ( len ) 0 DO ( a r )
|
|
|
|
OVER I + C@ ( a r c ) _pdacc ( a r f )
|
2020-05-25 20:16:07 -04:00
|
|
|
IF DROP 1- 0 UNLOOP EXIT THEN LOOP ( a r )
|
2020-05-25 13:22:26 -04:00
|
|
|
NIP 1 ;
|
2020-05-25 20:16:07 -04:00
|
|
|
: (parsed) ( a -- n f ) C@+ ( a+1 l ) _ ;
|