Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Errors:
- o <n1> - required character missing
- o <n2> - invalid digit encountered
- o <n3> - repeated control character
- o <n4> - ':' support pending
- Stack Frame:
- o <result> <buffer> <decimals> <flags> <base>
- o s4 s3 s2 s1 s0
- .: set s1 @ check +! ;
- .: check over2 and 0=; <n3> err ;
- .: fwd s3 1+ ;
- .: peek s3 @ c@ ;
- .: get peek fwd ;
- .: need get =; <n1> err ;
- .; base! s0 ! 4 set fwd;
- .: >digit (digit) case? valid? absorb ;
- .: (digit) 0-9? A-Z? a-z? <n2> err ;
- .: 0-9? 48 - 10 .u<;; ;
- .: A-Z? 7 - 36 .u<;; ;
- .: a-z? 6 - 62 .u<;; ;
- .: case? s0 @ 37 u<; 26 .u>; 26 - ;
- .: valid? s0 @ .u<; <n2> err ;
- .: +dp? s1 @ 1 and s2 +! ;
- .: absorb swap s0 @ * + +dp? ;
- ; post neg? result ! ;
- : neg? 2 set? 0=; negate ;
- .: digits \0?; get process me [
- .: \0?; ?dup 0=;; ;
- .: process .? e? :? >digit ;
- .: .? 56 .!=; 1 set ; drop ;;
- .: e? 101 .!=; 4 set 3 err ;;
- .: :? 59 .!=; 8 set base! ;;
- .: pre peek -? x? b? ;
- .: -? 45 .!=; drop 2 set fwd ;;
- .: x? 120 .!=; drop 59 need 16 base! ;;
- .: b? 98 !=; 59 need 2 base! ;;
- : frame 0 wbuf 1+ 0 0 10 ;
- : num frame { 0 pre digits post 4 } ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement