add tests for numeric literal parsing
This commit is contained in:
parent
59ed031ca4
commit
7de6cf5a0c
|
|
@ -0,0 +1,24 @@
|
|||
: INSPECT ( c-addr u -- ) "\"" TYPE TYPE-ESCAPED "\"" TYPE ;
|
||||
|
||||
: REPORT ( c-addr1 u1 c-addr2 u2 xt -- )
|
||||
-ROT 2>R >R 2DUP INSPECT " ( " TYPE EVALUATE DUP R@ EXECUTE " ) ⇔ " TYPE
|
||||
R> SWAP 2R> ROT >R ROT >R
|
||||
2DUP INSPECT " ( " TYPE EVALUATE DUP R> EXECUTE " ) " TYPE
|
||||
R> = IF " ✓\n" ELSE " ✗\n" THEN TYPE ;
|
||||
|
||||
: SREPORT ['] . REPORT ;
|
||||
: UREPORT ['] U. REPORT ;
|
||||
|
||||
: TEST
|
||||
"0" "0 DUP -" SREPORT
|
||||
"4294967295" "0xFFFFFFFF" UREPORT
|
||||
"-1" "0 1-" SREPORT
|
||||
"-2147483648" "1 31 LSHIFT" SREPORT
|
||||
"0177" "127" SREPORT
|
||||
"0b1101101" "6 16 * 13 +" SREPORT
|
||||
"0B1011110" "5 16 * 14 +" SREPORT
|
||||
"0x5aa5a55a" "1520805210" SREPORT
|
||||
"0Xa55a5aa5" "1520805210 INVERT" SREPORT
|
||||
;
|
||||
|
||||
TEST
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
"0" ( 0 ) ⇔ "0 DUP -" ( 0 ) ✓
|
||||
"4294967295" ( 4294967295 ) ⇔ "0xFFFFFFFF" ( 4294967295 ) ✓
|
||||
"-1" ( -1 ) ⇔ "0 1-" ( -1 ) ✓
|
||||
"-2147483648" ( -2147483648 ) ⇔ "1 31 LSHIFT" ( -2147483648 ) ✓
|
||||
"0177" ( 127 ) ⇔ "127" ( 127 ) ✓
|
||||
"0b1101101" ( 109 ) ⇔ "6 16 * 13 +" ( 109 ) ✓
|
||||
"0B1011110" ( 94 ) ⇔ "5 16 * 14 +" ( 94 ) ✓
|
||||
"0x5aa5a55a" ( 1520805210 ) ⇔ "1520805210" ( 1520805210 ) ✓
|
||||
"0Xa55a5aa5" ( -1520805211 ) ⇔ "1520805210 INVERT" ( -1520805211 ) ✓
|
||||
exit-code: 0
|
||||
Loading…
Reference in New Issue