Mirror of CollapseOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

16 lines
471B

  1. ( r c -- r f )
  2. ( Parse digit c and accumulate into result r.
  3. Flag f is 0 when c was a valid digit, 1 when c was WS,
  4. -1 when c was an invalid digit. )
  5. : _pdacc
  6. DUP 0x21 < IF DROP 1 EXIT THEN
  7. ( parse char )
  8. '0' -
  9. ( if bad, return "r -1" )
  10. DUP 0< IF DROP -1 EXIT THEN ( bad )
  11. DUP 9 > IF DROP -1 EXIT THEN ( bad )
  12. ( good, add to running result )
  13. SWAP 10 * + ( r*10+n )
  14. 0 ( good )
  15. ;