1 USING: tools.walker io io.streams.string kernel math
2 math.private namespaces prettyprint sequences tools.test
3 continuations math.parser threads arrays tools.walker.debug
4 generic.single sequences.private kernel.private
5 tools.continuations accessors words combinators ;
21 [ 2 [ "Yo" ] dip ] test-walker
25 [ 2 [ "Yo" ] dip 3 ] test-walker
29 [ t [ 2 ] [ "hi" ] if ] test-walker
33 [ f [ 2 ] [ "hi" ] if ] test-walker
37 [ 2 2 fixnum+ ] test-walker
40 : foo ( -- x ) 2 2 fixnum+ ;
43 [ foo 4 fixnum+ ] test-walker
46 [ { C{ 1 1.5 } { } C{ 1 1.5 } { } } ] [
47 [ C{ 1 1.5 } { } 2dup ] test-walker
51 [ 5 5 number= ] test-walker
55 [ 5 6 number= ] test-walker
59 [ 0 { array-capacity } declare ] test-walker
63 [ "XYZ" "XYZ" mismatch ] test-walker
67 [ "XYZ" "XYZ" sequence= ] test-walker
71 [ "XYZ" "XYZ" = ] test-walker
75 [ "XYZ" "XuZ" = ] test-walker
83 [ [ 3 "x" set "x" get ] with-scope ] test-walker
87 [ [ "hi" print ] with-string-writer ] test-walker
91 [ [ 2 2 + number>string print ] with-string-writer ] test-walker
95 [ { 1 2 3 } set-datastack ] test-walker
99 [ [ 3 [ nip continue ] callcc0 2 * ] test-walker ] unit-test
102 [ [ [ 3 swap continue-with ] callcc1 2 * ] test-walker ] unit-test
105 [ [ [ ] [ ] recover ] test-walker ] unit-test
108 [ [ [ 3 throw ] [ 2 * ] recover ] test-walker ] unit-test
110 [ { T{ no-method f + nth } } ]
111 [ [ [ 0 \ + nth ] [ ] recover ] test-walker ] unit-test
114 [ "a" "b" set "c" "d" set [ ] test-walker ] with-scope
117 : breakpoint-test ( -- x ) break 1 2 + ;
119 \ breakpoint-test don't-step-into
121 [ f ] [ \ breakpoint-test optimized? ] unit-test
123 [ { 3 } ] [ [ breakpoint-test ] test-walker ] unit-test
125 GENERIC: method-breakpoint-test ( x -- y )
127 TUPLE: method-breakpoint-tuple ;
129 M: method-breakpoint-tuple method-breakpoint-test break drop 1 2 + ;
131 \ method-breakpoint-test don't-step-into
134 [ [ T{ method-breakpoint-tuple } method-breakpoint-test ] test-walker ] unit-test
136 : case-breakpoint-test ( -- x )
137 5 { [ break 1 + ] } case ;
139 \ case-breakpoint-test don't-step-into
141 [ { 6 } ] [ [ case-breakpoint-test ] test-walker ] unit-test
143 : call(-breakpoint-test ( -- x )
144 [ break 1 ] call( -- x ) 2 + ;
146 \ call(-breakpoint-test don't-step-into
148 [ { 3 } ] [ [ call(-breakpoint-test ] test-walker ] unit-test