Хелпикс

Главная

Контакты

Случайная статья





Инструкция for



12.6.3 Инструкция for

Значение нетерминала ИнструкцияИтерации : for ( ВыражениеБезInопц ; Выражениеопц ; Выражениеопц) Инструкция вычисляется по следующей схеме:

1. Если ВыражениеБезIn опущено - переход на шаг 4.

2. Вычислить значение ВыраженияБезIn.

3. Вызвать ПолучитьЗначение(Результат(2)). (В дальнейшем это значение не используется.)

4. Пусть V = empty.

5. Если первое Выражение опущено - переход на шаг 10.

6. Вычислить значение первого Выражения.

7. Вызвать ПолучитьЗначение(Результат(6)).

8. Вызвать ToBoolean(Результат(7)).

9. Если Результат(8) равен false - переход на шаг 19.

10. Вычислить значение Инструкции.

11. Если Результат(10). значение не равно empty, приравнять V = Результат(10). значение.

12. Если Результат(10). тип равен break и Результат(10). цель принадлежит текущему набору меток - переход на шаг 19.

13. Если Результат(10). тип равен continue и Результат(10). цель принадлежит текущему набору меток - переход на шаг 15.

14. Если Результат(10) является неожиданным завершением, вернуть Результат(10).

15. Если второе Выражение опущено - переход на шаг 5.

16. Вычислить значение второго Выражения.

17. Вызвать ПолучитьЗначение(Результат(16)). (В дальнейшем это значение не используется.)

18. Переход на шаг 5.

19. Вернуть (normal, V, empty).

Значение нетерминала ИнструкцияИтерации : for (var СписокОбъявленияПеременныхБезIn ; Выражениеопц ; Выражениеопц ) Инструкция вычисляется по следующей схеме:

1. Вычислить значение СпискаОбъявленияПеременныхБезIn.

2. Пусть V = empty.

3. Если первое Выражение опущено - переход на шаг 8.

4. Вычислить значение первого Выражения.

5. Вызвать ПолучитьЗначение(Результат(4)).

6. Вызвать ToBoolean(Результат(5)).

7. Если Результат(6) равен false - переход на шаг 17.

8. Вычислить значение Инструкции.

9. Если Результат(8). значение не равно empty, приравнять V = Результат(8). значение.

10. Если Результат(8). тип равен break и Результат(8). цель принадлежит текущему набору меток - переход на шаг 17.

11. Если Результат(8). тип равен continue и Результат(8). цель принадлежит текущему набору меток - переход на шаг 13.

12. Если Результат(8) является неожиданным завершением, вернуть Результат(8).

13. Если второе Выражение опущено - переход на шаг 3.

14. Вычислить значение второго Выражения.

15. Вызвать ПолучитьЗначение(Результат(14)). (В дальнейшем это значение не используется.)

16. Переход на шаг 3.

17. Вернуть (normal, V, empty).



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.