25 lines
755 B
Forth
25 lines
755 B
Forth
: 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
|