Тип запись
Тип запись - структура, состоящая из фиксированного числа элементов, которые могут быть различных типов и называются полями. Объявление типа запись определяет имя и тип каждого поля. Область действия идентификаторов полей простирается от точки их объявления до конца объявления типа запись, но они также видимы внутри обозначений, ссылающихся на элементы переменных-записей (см. ). Если тип запись экспортируется, то идентификаторы полей, которые должны быть видимы вне модуля, в котором объявлены, должны быть помечены. Они называются доступными полями; непомеченные элементы называются скрытыми полями.
ТипЗапись | = | RECORD ["(" БазовыйТип ")"] СписокПолей {";" СписокПолей} END. |
БазовыйТип | = | УточнИдент. |
СписокПолей | = | [СписокИдент ":" Тип]. |
Тип запись может быть объявлен как расширение другого типа запись. В примере
T0 = RECORD x: INTEGER END
T1 = RECORD (T0) y: REAL END
T1 - (непосредственное) расширение T0, а T0 - (непосредственный) базовый тип T1 (см. Прил. A). Расширенный тип T1 состоит из полей своего базового типа и полей, которые объявлены в T1. Все идентификаторы, объявленные в расширенной записи, должны быть отличны от идентификаторов, объявленных в записи(записях) ее базового типа.
Примеры объявлений типа запись:
RECORD
day, month, year: INTEGER
END
RECORD
name, firstname: ARRAY 32 OF CHAR;
age: INTEGER;
salary: REAL
END