\ Конструкция выбора CASE \ с учетом возможной вложенности операторов CASE DECIMAL VARIABLE CSP \ Указатель стека контроля 6 CONSTANT L-CAS# \ Допустимый уровень вложенности CREATE S-CSP L-CAS# CELLS ALLOT \ Стек контроля S-CSP CSP ! : +CSP ( -> P) \ Добавить уровень CSP @ DUP CELL+ CSP ! ; : -CSP ( -> ) \ Убрать уровень CSP @ 1 CELLS - CSP ! ; : !CSP ( -> ) \ Инициализировать уровень SP@ +CSP ! ; : CSP@ ( -> A) CSP @ 1 CELLS - @ ; : ?CSP ( -> ) \ Проверить выдержанность стека \ SP@ CSP@ <> 37 ?ERROR ( ABORT" Сбой стека по CSP !") -CSP ; : CASE ( -> ) !CSP ; IMMEDIATE : OF POSTPONE OVER POSTPONE = [COMPILE] IF POSTPONE DROP ; IMMEDIATE : ENDOF [COMPILE] ELSE ; IMMEDIATE : ENDCASE POSTPONE DROP BEGIN SP@ CSP@ = 0= WHILE [COMPILE] THEN REPEAT -CSP ; IMMEDIATE