2019-10-18 09:05:06 -04:00
|
|
|
USING: compiler test kernel kernel-internals ;
|
2006-05-05 21:41:57 -04:00
|
|
|
IN: temporary
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
! Test empty word
|
|
|
|
|
[ ] [ [ ] compile-1 ] unit-test
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
! Test literals
|
|
|
|
|
[ 1 ] [ [ 1 ] compile-1 ] unit-test
|
|
|
|
|
[ 31 ] [ [ 31 ] compile-1 ] unit-test
|
|
|
|
|
[ 255 ] [ [ 255 ] compile-1 ] unit-test
|
|
|
|
|
[ -1 ] [ [ -1 ] compile-1 ] unit-test
|
|
|
|
|
[ 65536 ] [ [ 65536 ] compile-1 ] unit-test
|
|
|
|
|
[ -65536 ] [ [ -65536 ] compile-1 ] unit-test
|
|
|
|
|
[ "hey" ] [ [ "hey" ] compile-1 ] unit-test
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
! Calls
|
|
|
|
|
: no-op ;
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ ] [ [ no-op ] compile-1 ] unit-test
|
|
|
|
|
[ 3 ] [ [ no-op 3 ] compile-1 ] unit-test
|
|
|
|
|
[ 3 ] [ [ 3 no-op ] compile-1 ] unit-test
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
: bar 4 ;
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ 4 ] [ [ bar no-op ] compile-1 ] unit-test
|
|
|
|
|
[ 4 3 ] [ [ no-op bar 3 ] compile-1 ] unit-test
|
|
|
|
|
[ 3 4 ] [ [ 3 no-op bar ] compile-1 ] unit-test
|
2004-10-01 22:02:54 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ ] [ no-op ] unit-test
|
2006-02-28 00:26:45 -05:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
! Conditionals
|
2006-02-28 00:26:45 -05:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ 1 ] [ t [ [ 1 ] [ 2 ] if ] compile-1 ] unit-test
|
|
|
|
|
[ 2 ] [ f [ [ 1 ] [ 2 ] if ] compile-1 ] unit-test
|
|
|
|
|
[ 1 3 ] [ t [ [ 1 ] [ 2 ] if 3 ] compile-1 ] unit-test
|
|
|
|
|
[ 2 3 ] [ f [ [ 1 ] [ 2 ] if 3 ] compile-1 ] unit-test
|
2006-04-28 18:38:48 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ "hi" ] [ 0 [ { [ "hi" ] [ "bye" ] } dispatch ] compile-1 ] unit-test
|
|
|
|
|
[ "bye" ] [ 1 [ { [ "hi" ] [ "bye" ] } dispatch ] compile-1 ] unit-test
|
2019-10-18 09:05:04 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ "hi" 3 ] [ 0 [ { [ "hi" ] [ "bye" ] } dispatch 3 ] compile-1 ] unit-test
|
|
|
|
|
[ "bye" 3 ] [ 1 [ { [ "hi" ] [ "bye" ] } dispatch 3 ] compile-1 ] unit-test
|
2019-10-18 09:05:04 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
[ 4 1 ] [ 0 [ { [ bar 1 ] [ 3 1 ] } dispatch ] compile-1 ] unit-test
|
|
|
|
|
[ 3 1 ] [ 1 [ { [ bar 1 ] [ 3 1 ] } dispatch ] compile-1 ] unit-test
|
|
|
|
|
[ 4 1 3 ] [ 0 [ { [ bar 1 ] [ 3 1 ] } dispatch 3 ] compile-1 ] unit-test
|
|
|
|
|
[ 3 1 3 ] [ 1 [ { [ bar 1 ] [ 3 1 ] } dispatch 3 ] compile-1 ] unit-test
|
2019-10-18 09:05:04 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
! Labels
|
2019-10-18 09:05:04 -04:00
|
|
|
|
2019-10-18 09:05:06 -04:00
|
|
|
: recursive ( ? -- ) [ f recursive ] when ; inline
|
|
|
|
|
[ ] [ t [ recursive ] compile-1 ] unit-test
|