TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

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

             Блоки состоят из описаний, которые записаны и скомбинированы
        в любом порядке, и операторов. Каждый блок является частью описа-
        ния процедуры или функции,  или частью программы или модуля.  Все
        идентификаторы и метки,  объявленные в разделе описаний, являются
        для блока локальными.

                                    Синтаксис
        ─────────────────────────────────────────────────────────────────

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

                   ┌──────────┐     ┌──────────┐
         блок ────>│  раздел  ├────>│  раздел  ├────>
                   │ описания │     │операторов│
                   └──────────┘     └──────────┘

         раздел    ──────────┬────────────────────────────────────┬───>
         объявления    ^     │                              ^     │
                       │     │    ┌──────────────────┐      │     │
                       │     ├───>│  раздел описания ├──────┤     │
                       │     │    │      меток       │      │     │
                       │     │    └──────────────────┘      │     │
                       │     │    ┌──────────────────┐      │     │
                       │     ├───>│  раздел описания ├──────┤     │
                       │     │    │     констант     │      │     │
                       │     │    └──────────────────┘      │     │
                       │     │    ┌──────────────────┐      │     │
                       │     ├───>│  раздел описания ├──────┤     │
                       │     │    │      типов       │      │     │
                       │     │    └──────────────────┘      │     │
                       │     │    ┌──────────────────┐      │     │
                       │     ├───>│  раздел описания ├──────┤     │
                       │     │    │    переменных    │      │     │
                       │     │    └──────────────────┘      │     │
                       │     │    ┌──────────────────┐      │     │
                       │     ├───>│ оператор exports ├──────┤     │
                       │     │    └──────────────────┘      │     │
                       │     │    ┌──────────────────┐      │     │
                       │     └───>│  раздел описания ├──────┘     │
                       │          │процедур и функций│            │
                       │          └──────────────────┘            │
                       └──────────────────────────────────────────┘

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


          раздел           ┌───────┐       ┌───────┐      ┌───┐
          описания ───────>│ label ├──────>│ метка ├──┬──>│ ; ├───>
          меток            └───────┘   ^   └───────┘  │   └───┘
                                       │   ┌───┐      │
                                       └───┤ , ├──────┘
                                           └───┘

             Меткой может быть идентификатор или последовательность цифр.
        Используемая в качестве метки последовательность цифр должна  на-
        ходиться в диапазоне от 0 до 9999.

             Раздел описания констант содержит описания констант, локаль-
        ных для этого блока.

         раздел         ┌───────┐       ┌────────────┐
         описания ─────>│ const ├────┬─>│  описание  ├───────────┬───>
         констант       └───────┘ ^  │  │ константы  │        ^  │
                                  │  │  └────────────┘        │  │
                                  │  │  ┌───────────────────┐ │  │
                                  │  │  │     описание      │ │  │
                                  │  └─>│   типизированной  ├─┘  │
                                  │     │     константы     │    │
                                  │     └───────────────────┘    │
                                  └──────────────────────────────┘

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

         раздел         ┌───────┐       ┌────────────┐
         описания ─────>│ type  ├──────>│  описание  ├────┬───>
         типов          └───────┘  ^    │    типа    │    │
                                   │    └────────────┘    │
                                   └──────────────────────┘


             Раздел описания переменных состоит из  описания  переменных,
        локальных для этого блока.

         раздел         ┌─────┐       ┌────────────┐
         описания ─────>│ var ├──────>│  описание  ├────┬───>
         переменных     └─────┘  ^    │ переменной │    │
                                 │    └────────────┘    │
                                 └──────────────────────┘


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


         раздел                 ┌────────────┐
         описания ───────────┬─>│  описание  ├─────┬────>
         процедур и       ^  │  │ процедуры  │  ^  │
         функций          │  │  └────────────┘  │  │
                          │  │  ┌────────────┐  │  │
                          │  └─>│  описание  ├──┘  │
                          │     │  функции   │     │
                          │     └────────────┘     │
                          │     ┌────────────┐     │
                          ├────>│  описание  ├─────┤
                          │     │конструктора│     │
                          │     └────────────┘     │
                          │     ┌────────────┐     │
                          ├────>│  описание  ├─────┤
                          │     │деструктора │     │
                          │     └────────────┘     │
                          └────────────────────────┘

             В операторе  exports  перечисляются все процедуры и функции,
        которые экспортируются данной программой или динамически компону-
        емой библиотекой.  Оператор exports допускается только во внешнем
        разделе описаний программы или динамически компонуемой библиотеки
        - в разделе описаний процедуры,  функции или модуля его использо-
        вать нельзя.

             Раздел операторов  определяет  операторы или алгоритмические
        действия, которые выполняются в блоке.

         раздел           ┌───────────┐
         операторов ─────>│ составной ├─────>
                          │  оператор │
                          └───────────┘

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz