Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Глава 8. Блоки, локальность и область действия

Блоки состоят из описаний, которые записаны и скомбинированы

в любом порядке, и операторов. Каждый блок является частью описа-

ния процедуры или функции, или частью программы или модуля. Все

идентификаторы и метки, объявленные в разделе описаний, являются

для блока локальными.

Синтаксис

В общем виде любой блок имеет следующий формат:

----------- -----------

блок ---->¦ раздел +---->¦ раздел +---->

¦ описания ¦ ¦операторов¦

L----------- L-----------

раздел ----------T------------------------------------T--->

объявления ^ ¦ ^ ¦

¦ ¦ ------------------- ¦ ¦

¦ +--->¦ раздел описания +------+ ¦

¦ ¦ ¦ меток ¦ ¦ ¦

¦ ¦ L------------------- ¦ ¦

¦ ¦ ------------------- ¦ ¦

¦ +--->¦ раздел описания +------+ ¦

¦ ¦ ¦ констант ¦ ¦ ¦

¦ ¦ L------------------- ¦ ¦

¦ ¦ ------------------- ¦ ¦

¦ +--->¦ раздел описания +------+ ¦

¦ ¦ ¦ типов ¦ ¦ ¦

¦ ¦ L------------------- ¦ ¦

¦ ¦ ------------------- ¦ ¦

¦ +--->¦ раздел описания +------+ ¦

¦ ¦ ¦ переменных ¦ ¦ ¦

¦ ¦ L------------------- ¦ ¦

¦ ¦ ------------------- ¦ ¦

¦ +--->¦ оператор exports +------+ ¦

¦ ¦ L------------------- ¦ ¦

¦ ¦ ------------------- ¦ ¦

¦ L--->¦ раздел описания +------- ¦

¦ ¦процедур и функций¦ ¦

¦ L------------------- ¦

L-------------------------------------------

Раздел описания меток - это та часть блока, где описываются

метки, присваиваемые операторам в соответствующем разделе опера-

торов. Каждая метка должна помечать только один оператор.

раздел -------- -------- ----

описания ------->¦ label +------>¦ метка +--T-->¦ ; +--->

меток L-------- ^ L-------- ¦ L----

¦ ---- ¦

L---+ , +-------

L----

Меткой может быть идентификатор или последовательность цифр.

Используемая в качестве метки последовательность цифр должна на-

ходиться в диапазоне от 0 до 9999.

Раздел описания констант содержит описания констант, локаль-

ных для этого блока.

раздел -------- -------------

описания ----->¦ const +----T->¦ описание +-----------T--->

констант L-------- ^ ¦ ¦ константы ¦ ^ ¦

¦ ¦ L------------- ¦ ¦

¦ ¦ -------------------- ¦ ¦

¦ ¦ ¦ описание ¦ ¦ ¦

¦ L->¦ типизированной +-- ¦

¦ ¦ константы ¦ ¦

¦ L-------------------- ¦

L-------------------------------

Раздел описания типов включает описания всех типов в блоке.

раздел -------- -------------

описания ----->¦ type +------>¦ описание +----T--->

типов L-------- ^ ¦ типа ¦ ¦

¦ L------------- ¦

L-----------------------

Раздел описания переменных состоит из описания переменных,

локальных для этого блока.

раздел ------ -------------

описания ----->¦ var +------>¦ описание +----T--->

переменных L------ ^ ¦ переменной ¦ ¦

¦ L------------- ¦

L-----------------------

Раздел описания процедур и функций состоит из описания про-

цедур и функций, локальных для этого блока.

раздел -------------

описания -----------T->¦ описание +-----T---->

процедур и ^ ¦ ¦ процедуры ¦ ^ ¦

функций ¦ ¦ L------------- ¦ ¦

¦ ¦ ------------- ¦ ¦

¦ L->¦ описание +--- ¦

¦ ¦ функции ¦ ¦

¦ L------------- ¦

¦ ------------- ¦

+---->¦ описание +-----+

¦ ¦конструктора¦ ¦

¦ L------------- ¦

¦ ------------- ¦

+---->¦ описание +-----+

¦ ¦деструктора ¦ ¦

¦ L------------- ¦

L-------------------------

В операторе exports перечисляются все процедуры и функции,

которые экспортируются данной программой или динамически компону-

емой библиотекой. Оператор exports допускается только во внешнем

разделе описаний программы или динамически компонуемой библиотеки

- в разделе описаний процедуры, функции или модуля его использо-

вать нельзя.

Раздел операторов определяет операторы или алгоритмические

действия, которые выполняются в блоке.

раздел ------------

операторов ----->¦ составной +----->

¦ оператор ¦

L------------

Соседние файлы в предмете Программирование на Pascal