| ." testing part 2" cr |
." testing part 2" cr |
| |
|
| : xxxx |
: xxxx |
| |
[ ." starting xxxx" .s cr ] |
| { f } f |
{ f } f |
| xif |
if |
| { a b } |
{ a b } |
| b a |
b a |
| [ ." before else" .s cr ] |
[ ." before else" .s cr ] |
| xelse |
else |
| [ ." after else" .s cr ] |
[ ." after else" .s cr ] |
| { c d } |
{ c d } |
| c d |
c d |
| xthen |
then |
| [ ." locals-size after then:" locals-size @ . cr ] |
[ ." locals-size after then:" locals-size @ . cr ] |
| f drop |
f drop |
| |
[ ." ending xxxx" .s cr ] |
| ; |
; |
| |
|
| 2 3 1 xxxx . . cr |
2 3 1 xxxx . . cr |
| cr cr cr |
cr cr cr |
| |
|
| : xxx3 |
: xxx3 |
| xbegin |
begin |
| { a } |
{ a } |
| xuntil |
until |
| a |
a |
| ; |
; |
| ." after xxx3" .s cr cr cr |
." after xxx3" .s cr cr cr |
| |
|
| : xxx2 |
: xxx2 |
| [ ." start of xxx2" .s cr ] |
[ ." start of xxx2" .s cr ] |
| xbegin |
begin |
| [ ." after begin" .s cr ] |
[ ." after begin" .s cr ] |
| { a } |
{ a } |
| [ ." after { a }" .s cr ] |
[ ." after { a }" .s cr ] |
| 1 xwhile |
1 while |
| [ ." after while" .s cr ] |
[ ." after while" .s cr ] |
| { b } |
{ b } |
| a b |
a b |
| [ ." after a" .s cr ] |
[ ." after a" .s cr ] |
| xrepeat |
repeat |
| [ ." after repeat" .s cr |
[ ." after repeat" .s cr |
| also locals words previous cr |
also locals words previous cr |
| ] |
] |
| |
|
| : xxx4 |
: xxx4 |
| [ ." before if" localsinfo ] |
[ ." before if" localsinfo ] |
| xif |
if |
| [ ." after if" localsinfo ] |
[ ." after if" localsinfo ] |
| { a } |
{ a } |
| [ ." before begin" localsinfo ] |
[ ." before begin" localsinfo ] |
| xbegin |
begin |
| [ ." after begin" localsinfo ] |
[ ." after begin" localsinfo ] |
| [ 1 cs-roll ] |
[ 1 cs-roll ] |
| [ ." before then" localsinfo ] |
[ ." before then" localsinfo ] |
| xthen |
then |
| { b } |
{ b } |
| xuntil |
until |
| [ ." after until" localsinfo ] |
[ ." after until" localsinfo ] |
| ; |
; |
| |
|
| : xxx5 |
: xxx5 |
| { a } |
{ a } |
| xahead |
ahead |
| xbegin |
begin |
| [ ." after begin" localsinfo ] |
[ ." after begin" localsinfo ] |
| [ 1 cs-roll ] |
[ 1 cs-roll ] |
| xthen |
then |
| [ ." after then" localsinfo ] |
[ ." after then" localsinfo ] |
| xuntil |
until |
| [ ." after until" localsinfo ] |
[ ." after until" localsinfo ] |
| ; |
; |
| |
|
| |
." xxx6 coming up" cr |
| : xxx6 |
: xxx6 |
| xif |
[ ." starting xxx6" localsinfo ] |
| |
if |
| { x } |
{ x } |
| xelse |
else |
| [ ." after else" localsinfo ] |
[ ." after else" localsinfo ] |
| xahead |
ahead |
| xbegin |
begin |
| [ ." after begin" localsinfo ] |
[ ." after begin" localsinfo ] |
| [ 2 CS-ROLL ] xthen |
[ 2 CS-ROLL ] then |
| [ ." after then" localsinfo ] |
[ ." after then" localsinfo ] |
| xuntil |
until |
| |
then |
| |
[ ." ending xxx6" localsinfo ] |
| ; |
; |
| |
|
| ." xxx7 coming up" cr |
." xxx7 coming up" cr |
| : xxx7 |
: xxx7 |
| { b } |
{ b } |
| xdo |
do |
| { a } |
{ a } |
| [ ." before loop" localsinfo ] |
[ ." before loop" localsinfo ] |
| xloop |
loop |
| [ ." after loop" localsinfo ] |
[ ." after loop" localsinfo ] |
| ; |
; |
| |
|
| |
|
| : xxx8 |
: xxx8 |
| { b } |
{ b } |
| x?do |
?do |
| { a } |
{ a } |
| [ ." before loop" localsinfo ] |
[ ." before loop" localsinfo ] |
| xloop |
loop |
| [ ." after loop" localsinfo ] |
[ ." after loop" localsinfo ] |
| ; |
; |
| |
|
| ." xxx9 coming up" cr |
." xxx9 coming up" cr |
| : xxx9 |
: xxx9 |
| { b } |
{ b } |
| xdo |
do |
| { c } |
{ c } |
| [ ." before ?leave" leave-sp ? leave-stack . cr ] |
[ ." before ?leave" leave-sp ? leave-stack . cr ] |
| x?leave |
?leave |
| [ ." after ?leave" leave-sp ? cr ] |
[ ." after ?leave" leave-sp ? cr ] |
| { a } |
{ a } |
| [ ." before loop" localsinfo ] |
[ ." before loop" localsinfo ] |
| xloop |
loop |
| [ ." after loop" localsinfo ] |
[ ." after loop" localsinfo ] |
| ; |
; |
| |
|
| ." strcmp coming up" cr |
." strcmp coming up" cr |
| : strcmp { addr1 u1 addr2 u2 -- n } |
: strcmp { addr1 u1 addr2 u2 -- n } |
| addr1 addr2 u1 u2 min 0 x?do |
addr1 addr2 u1 u2 min 0 ?do |
| { s1 s2 } |
{ s1 s2 } |
| s1 c@ s2 c@ - ?dup xif |
s1 c@ s2 c@ - ?dup if |
| unloop xexit |
unloop exit |
| xthen |
then |
| s1 char+ s2 char+ |
s1 char+ s2 char+ |
| xloop |
loop |
| 2drop |
2drop |
| u1 u2 - ; |
u1 u2 - ; |
| |
|
| ; |
; |
| |
|
| : findchar { c addr u -- i } |
: findchar { c addr u -- i } |
| addr u 0 x?do |
addr u 0 ?do |
| { p } |
{ p } |
| p c@ c = xif |
p c@ c = if |
| p xleave |
p leave |
| xthen |
then |
| p char+ |
p char+ |
| xloop |
loop |
| addr - ; |
addr - ; |
| |
|
| |
|
| |
|
| : xxx10 |
: xxx10 |
| [ ." before if" localsinfo ] |
[ ." before if" localsinfo ] |
| xif |
if |
| [ ." after if" localsinfo ] |
[ ." after if" localsinfo ] |
| scope |
scope |
| [ ." after scope" localsinfo ] |
[ ." after scope" localsinfo ] |
| [ ." before endscope" localsinfo ] |
[ ." before endscope" localsinfo ] |
| endscope |
endscope |
| [ ." before begin" localsinfo ] |
[ ." before begin" localsinfo ] |
| xbegin |
begin |
| [ ." after begin" localsinfo ] |
[ ." after begin" localsinfo ] |
| [ 1 cs-roll ] |
[ 1 cs-roll ] |
| [ ." before then" localsinfo ] |
[ ." before then" localsinfo ] |
| xthen |
then |
| { b } |
{ b } |
| xuntil |
until |
| [ ." after until" localsinfo ] |
[ ." after until" localsinfo ] |
| ; |
; |
| |
|
| |
: xxx11 |
| |
if |
| |
{ a } |
| |
exit |
| |
[ ." after xexit" localsinfo ] |
| |
else |
| |
{ b } |
| |
[ ." before xthen" localsinfo |
| |
then |
| |
[ ." after xthen" localsinfo ] |
| |
; |
| |
|
| |
|
| |
bye |