2. Общая структура программы
17
В языке Pascal не только предусмотрено несколько стандартных типов, но
существует и механизм для определения типа, который вводит идентификатор для
обозначения некоторого типа. Этот идентификатор можно использовать для
определения новых, более сложных, типов данных или для описания переменных.
Синтаксис раздела определения типов:
TypeDeclaration =
'type' Ident '=' Type ';' {
       Ident '=' Type ';' }.
Type =
TypeIdent | SimpleType | PointerType | StructuredType.
TypeIdent =
Ident.
При описании нового типа нужно использовать только идентификаторы уже
описанных типов (не считая указатели).
2.5. Раздел описания переменных
Каждая переменная, встречающаяся в программе, должна быть описана в
разделе описания переменных. Использование неописанной переменной считается
ошибкой.
Синтаксис переменных:
VarDeclaration =
'var' IdentList ':' Type ';' {
      IdentList ':' Type ';' }.
Где: Ident - идентификатор (имя описываемой переменной).
Описание переменной задает связь между идентификатором и некоторым
типом данных, тем самым определяя и операции, которые можно применять над
переменной.
2.7. Раздел описания процедур и функций
Каждое имя процедуры или функции должно быть описано до его использования
в разделе операторов. Описание процедуры или функции состоит из заголовка и блока.
Процедура представляет собою подпрограмму и активизируется через оператор
процедуры. Функция - это тоже подпрограмма, но она возвращает по своему
окончанию некоторое значение и используется как компонента выражения.
PFDeclaration =
{ ProcDeclaration | FuncDeclaration }.
2.8. Правила доступности и область действия имен и меток
Идентификаторы и метки являются локальными в рамках блока, в начале
которого они описаны. Это означает, что вне этого блока они недоступны.
Идентификаторы доступны везде в этом блоке и в вложенных в нем блоках.
Идентификаторы, описанные в блоке, представляющей собою программу, называются
глобальными. Глобальные идентификаторы доступны везде в программе.
Следует учитывать несколько особенностей:
*
метки доступны только в блоке, в котором они описаны;
<<  <  GO  >  >>

Вернуться к началу сайта