Справочное руководство по языку Ада-83


Простые и составные операторы последовательности операторов


Оператор может быть или простым, или составным. Простой оператор не содержит других операторов. Составной оператор содержит простые операторы и другие составные операторы.

последовательность-операторов ::= оператор (оператор) оператор ::= {метка} простой-оператор | {метка} составной-оператор простой-оператор ::= пустой-оператор | оператор-присваивания | оператор-вызова-процедуры | оператор-выхода | оператор-возврата | оператор-перехода | оператор-вызова-входа | оператор-задержки | оператор-прекращения | оператор-возбуждения | оператор-кода

составной-оператор ::= условный-оператор | оператор-выбора | оператор-цикла | оператор-блока | оператор-принятия | оператор-отбора

метка ::= << простое-имя-метки >> пустой-оператор ::= null:

Говорят, что имя каждой метки, стоящей перед оператором,

помечает

этот оператор. Имя метки (а также имя цикла или блока) неявно описано в конце раздела описаний самого внутреннего блока, тела подпрограммы, тела пакета, тела задачи или настраиваемого тела, которые содержат данный помеченный оператор (именованный оператор цикла или именованный оператор блока). При отсутствии в операторе блока раздела описаний подразумевается, что оператор блока содержит неявный раздел описаний (с предшествующим

declare

).

Имена меток, циклов и блоков неявно описываются в порядке появления в тексте программы начал соответствующих помеченных операторов, операторов цикла и операторов блока. Для имен меток, циклов и блоков, неявно описанных в теле программного модуля, включая вложенные в это тело операторы блока, но исключая другие вложенные программные модули (т. е. подпрограммы, пакеты, задачи или настраиваемые модули), должны использоваться различные идентификаторы.

Выполнение пустого оператора заключается в переходе к выполнению следующего оператора.

Выполнение последовательности операторов состоит в поочередном выполнении отдельных операторов последовательности, пока они все не будут закончены или пока не произойдет передача управления.




Передача управления вызывается выполнением операторов выхода, возврата или перехода, выбором альтернативы завершения, возбуждением исключения или (неявно) выполнением оператора прекращения.

Примеры помеченных операторов:

<<HERE>> <<ICI>> <<AQUI>> <<HIER>>

null;


<<AFTER>> X := 1;

Примечание.

Область действия описания начинается самим описанием (см. 8.2). Область действия

неявного

описания имени метки, цикла или блока начинается до первого

явного

появления соответствующего имени, поскольку это появление возможно лишь в качестве метки оператора, в операторе блока, операторе цикла или операторе перехода. Неявное описание в операторе блока может скрыть описание, данное во внешнем программном модуле или операторе блока (согласно обычным правилам скрытия, изложенным в разд. 8.3).

Ссылки:

альтернатива завершения 9.7.1, возбуждение исключений 11, завершенная задача 9.4, задача 9, задачный модуль 9.1, идентификатор 2.3, имя блока 5.6, имя цикла 5.5, исключение 11, настраиваемое тело 12.1, настраиваемый модуль 12, неявное описание 3.1, область действия 8.2, оператор блока 5.6, оператор возбуждения 11.3, оператор возврата 5.8, оператор выбора 5.4, оператор вызова входа 9.5, оператор вызова процедуры 6.4, оператор выхода 5.7, оператор задержки 9.6, оператор кода 13.8, оператор отбора 9.7, оператор перехода 5.9, оператор прекращения 9.10, оператор принятия 9.5, оператор, присваивания 5.2, оператор цикла 5.5, описание 3.1, пакет 7, подпрограмма 6, программный модуль 6, простое имя 4.1, раздел описаний 3.9, скрытие 8.3, тело задачи 9.1, тело пакета 7.1, тело подпрограммы 6.3, условный оператор 5.3.

Пред.  Уровень выше  След.

4.10. УНИВЕРСАЛЬНЫЕ ВЫРАЖЕНИЯ

 
Содержание  

5.2. ОПЕРАТОРЫ ПРИСВАИВАНИЯ


Содержание раздела