TURBO PASCAL |
Новости
|
Блоки, локальность и область действияБлоки состоят из описаний, которые записаны и скомбинированы в любом порядке, и операторов. Каждый блок является частью описа- ния процедуры или функции, или частью программы или модуля. Все идентификаторы и метки, объявленные в разделе описаний, являются для блока локальными. Синтаксис ───────────────────────────────────────────────────────────────── В общем виде любой блок имеет следующий формат: ┌──────────┐ ┌──────────┐ блок ────>│ раздел ├────>│ раздел ├────> │ описания │ │операторов│ └──────────┘ └──────────┘ раздел ──────────┬────────────────────────────────────┬───> объявления ^ │ ^ │ │ │ ┌──────────────────┐ │ │ │ ├───>│ раздел описания ├──────┤ │ │ │ │ меток │ │ │ │ │ └──────────────────┘ │ │ │ │ ┌──────────────────┐ │ │ │ ├───>│ раздел описания ├──────┤ │ │ │ │ констант │ │ │ │ │ └──────────────────┘ │ │ │ │ ┌──────────────────┐ │ │ │ ├───>│ раздел описания ├──────┤ │ │ │ │ типов │ │ │ │ │ └──────────────────┘ │ │ │ │ ┌──────────────────┐ │ │ │ ├───>│ раздел описания ├──────┤ │ │ │ │ переменных │ │ │ │ │ └──────────────────┘ │ │ │ │ ┌──────────────────┐ │ │ │ ├───>│ оператор exports ├──────┤ │ │ │ └──────────────────┘ │ │ │ │ ┌──────────────────┐ │ │ │ └───>│ раздел описания ├──────┘ │ │ │процедур и функций│ │ │ └──────────────────┘ │ └──────────────────────────────────────────┘ Раздел описания меток - это та часть блока, где описываются метки, присваиваемые операторам в соответствующем разделе опера- торов. Каждая метка должна помечать только один оператор. раздел ┌───────┐ ┌───────┐ ┌───┐ описания ───────>│ label ├──────>│ метка ├──┬──>│ ; ├───> меток └───────┘ ^ └───────┘ │ └───┘ │ ┌───┐ │ └───┤ , ├──────┘ └───┘ Меткой может быть идентификатор или последовательность цифр. Используемая в качестве метки последовательность цифр должна на- ходиться в диапазоне от 0 до 9999. Раздел описания констант содержит описания констант, локаль- ных для этого блока. раздел ┌───────┐ ┌────────────┐ описания ─────>│ const ├────┬─>│ описание ├───────────┬───> констант └───────┘ ^ │ │ константы │ ^ │ │ │ └────────────┘ │ │ │ │ ┌───────────────────┐ │ │ │ │ │ описание │ │ │ │ └─>│ типизированной ├─┘ │ │ │ константы │ │ │ └───────────────────┘ │ └──────────────────────────────┘ Раздел описания типов включает описания всех типов в блоке. раздел ┌───────┐ ┌────────────┐ описания ─────>│ type ├──────>│ описание ├────┬───> типов └───────┘ ^ │ типа │ │ │ └────────────┘ │ └──────────────────────┘ Раздел описания переменных состоит из описания переменных, локальных для этого блока. раздел ┌─────┐ ┌────────────┐ описания ─────>│ var ├──────>│ описание ├────┬───> переменных └─────┘ ^ │ переменной │ │ │ └────────────┘ │ └──────────────────────┘ Раздел описания процедур и функций состоит из описания про- цедур и функций, локальных для этого блока. раздел ┌────────────┐ описания ───────────┬─>│ описание ├─────┬────> процедур и ^ │ │ процедуры │ ^ │ функций │ │ └────────────┘ │ │ │ │ ┌────────────┐ │ │ │ └─>│ описание ├──┘ │ │ │ функции │ │ │ └────────────┘ │ │ ┌────────────┐ │ ├────>│ описание ├─────┤ │ │конструктора│ │ │ └────────────┘ │ │ ┌────────────┐ │ ├────>│ описание ├─────┤ │ │деструктора │ │ │ └────────────┘ │ └────────────────────────┘ В операторе exports перечисляются все процедуры и функции, которые экспортируются данной программой или динамически компону- емой библиотекой. Оператор exports допускается только во внешнем разделе описаний программы или динамически компонуемой библиотеки - в разделе описаний процедуры, функции или модуля его использо- вать нельзя. Раздел операторов определяет операторы или алгоритмические действия, которые выполняются в блоке. раздел ┌───────────┐ операторов ─────>│ составной ├─────> │ оператор │ └───────────┘ |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |