: else ( C: orig1 -- orig2 )
postpone ahead ( С: orig1 orig2 ) \ отметили переход вперёд
1 cs-roll ( C: orig2 orig1 ) \ поменяли ссылки на стеке местами
postpone then ( C: orig2 ) \ разрешили ссылку вперёд,
; immediate
: while ( C: dest -- orig dest )
postpone if ( C: dest orig ) \ отметили переход вперёд
1 cs-roll ( C: orig dest ) \ поменяли ссылки местами
; immediate
: repeat ( C: orig dest -- )
postpone again ( C: orig ) \ разрешили переход назад
postpone then ( C: ) \ разрешили переход вперёд
; immediate
.( test if else then:) cr
: .sign ( n -- )
dup 0<
if
." negative"
else
dup 0=
if
." zero"
else
." positive"
then
then drop cr ;
-42 .sign
0 .sign
100500 .sign
cr
.( test begin while repeat:) cr
: .count ( u -- )
begin
dup
while
dup .
1-
repeat
drop ." done." cr ;
5 .count
1 .count
0 .count
OiBlbHNlICAoIEM6IG9yaWcxIC0tIG9yaWcyICkKICAgIHBvc3Rwb25lIGFoZWFkICAoINChOiBvcmlnMSBvcmlnMiApICBcINC+0YLQvNC10YLQuNC70Lgg0L/QtdGA0LXRhdC+0LQg0LLQv9C10YDRkdC0CiAgICAxIGNzLXJvbGwgICAgICAgKCBDOiBvcmlnMiBvcmlnMSApICBcINC/0L7QvNC10L3Rj9C70Lgg0YHRgdGL0LvQutC4INC90LAg0YHRgtC10LrQtSDQvNC10YHRgtCw0LzQuAogICAgcG9zdHBvbmUgdGhlbiAgICggQzogb3JpZzIgKSAgICAgICAgXCDRgNCw0LfRgNC10YjQuNC70Lgg0YHRgdGL0LvQutGDINCy0L/QtdGA0ZHQtCwgCjsgaW1tZWRpYXRlCgo6IHdoaWxlICAoIEM6IGRlc3QgLS0gb3JpZyBkZXN0ICkKICAgIHBvc3Rwb25lIGlmICAoIEM6IGRlc3Qgb3JpZyApICBcINC+0YLQvNC10YLQuNC70Lgg0L/QtdGA0LXRhdC+0LQg0LLQv9C10YDRkdC0CiAgICAxIGNzLXJvbGwgICAgKCBDOiBvcmlnIGRlc3QgKSAgXCDQv9C+0LzQtdC90Y/Qu9C4INGB0YHRi9C70LrQuCDQvNC10YHRgtCw0LzQuAo7IGltbWVkaWF0ZQoKOiByZXBlYXQgICggQzogb3JpZyBkZXN0IC0tICkKICAgIHBvc3Rwb25lIGFnYWluICAoIEM6IG9yaWcgKSAgXCDRgNCw0LfRgNC10YjQuNC70Lgg0L/QtdGA0LXRhdC+0LQg0L3QsNC30LDQtAogICAgcG9zdHBvbmUgdGhlbiAgICggQzogKSAgICAgICBcINGA0LDQt9GA0LXRiNC40LvQuCDQv9C10YDQtdGF0L7QtCDQstC/0LXRgNGR0LQKOyBpbW1lZGlhdGUKCgouKCB0ZXN0IGlmIGVsc2UgdGhlbjopIGNyCjogLnNpZ24gICggbiAtLSApCiAgICBkdXAgMDwKICAgIGlmCiAgICAgIC4iIG5lZ2F0aXZlIgogICAgZWxzZQogICAgICBkdXAgMD0KICAgICAgaWYKICAgICAgICAuIiB6ZXJvIgogICAgICBlbHNlCiAgICAgICAgLiIgcG9zaXRpdmUiCiAgICAgIHRoZW4KICAgIHRoZW4gZHJvcCBjciA7CgotNDIgLnNpZ24KMCAuc2lnbgoxMDA1MDAgLnNpZ24KY3IKCi4oIHRlc3QgYmVnaW4gd2hpbGUgcmVwZWF0OikgY3IKOiAuY291bnQgICggdSAtLSApCiAgICBiZWdpbgogICAgICBkdXAKICAgIHdoaWxlCiAgICAgIGR1cCAuCiAgICAgIDEtCiAgICByZXBlYXQKICAgIGRyb3AgLiIgZG9uZS4iIGNyIDsKCjUgLmNvdW50CjEgLmNvdW50CjAgLmNvdW50