ff) „Размещение” есть литера, выдаваемая кодом-размещения (10.3.4.1.2.d). Повторяемое п раз размещение осуществляется следующим образом:
”к” (”к”) заставляет вызваться уст номер литеры с п в качестве
ее второго параметра;
”х” (”х”) заставляет п раз вызваться вперед;
”у” (”у”) заставляет п раз вызваться назад;
”1” С’л”) заставляет п раз вызваться нов строчка;
-у” (”п”) заставляет п раз вызваться нов страница;
”q” (”ю”) при выводе (вводе) заставляет п раз записать (ожидать)
литеру пробел.
gg) Формат может состоять из последовательности шаблонов, каждый из которых выбирается по очереди посредством взять след шаблон (10.3.5.Ь). В дополнение к этому некоторое множество шаблонов можно сгруппировать вместе и образовать повторяемый „набор” (который сам может содержать подобные наборы). Когда выбирается последний шаблон набора, снова выбирается его первый шаблон и т.д., пока весь этот набор не повторится и раз, где п — целое число, вырабатываемое его повторителем. Набор можно снабдить двумя вставками, первая из которых осуществляется перед набором, а вторая после него.
Формат может также вызывать другие форматы с помощью трафаретов'форматного ' (10.3.4.9.1).
Когда формат исчерпывается, вызывается процедура обработки события, соответствующая при конце формата; если она вырабатывает ложь, то данный формат повторяется, а иначе, если только эта процедура обработки события не может обеспечить новый формат, вызывается не определено.
hh) Значение V выводится с помощью шаблона Р следующим образом: Если трафарет Q этого Р есть трафарет 'выбора' или 'бесформатного',то V выводится с помощью Р (см. 10.3.4.8.l.aa, dd, 10.3.4,1.аа), а иначе V выводится так:
Р подготавливается.
Если вид этого V „совместим по выводу” с Q, то
V преобразуется в строку, управляемую (dd) этим Q.
Если данный вид не совместим по выводу или если это преобразование не было успешным,
то
вызывается процедура обработки события, соответствующая при ошибке значения:
если она вырабатывает ложь, V выводится с помощью процедуры вывод и вызывается не определено;
а иначе данная строка „редактируется” (jj) с помощью трафарета Q; осуществляется вставка из Р.
ii) Значение вводится в имя N с помощью шаблона Р следующим образом:
Если трафарет Q этого Р есть трафарет 'выбора' или 'бесформатного', то значение вводится в N с помощью Р (см. 10.3.4.8.l.bb, ее, 10.3.4.10.1.bb);
а иначе
Р подготавливается;
„составляется” строка, управляемая Q (kk).
Если вид этого N „совместим по вводу” с Q, то
данная строка преобразуется с помощью Q в подходящее для N значение;
если это преобразование было успешным, данное значение присваивается N.
Если данный вид не совместим по вводу или если это преобразование не было успешным,
то
вызывается процедура обработки события, соответствующая при ошибке значения;
если она вырабатывает ложь, вызывается не определено; осуществляется вставка из Р.
jj) Строка „редактируется” с помощью трафарета Р следующим образом:
В каждой части строки, управляемой образцом знака,
если (указывающая знак) первая литера этой строки есть ”+”, а данный образец знака содержит рамку то эта литера заменяется на ”
первая литера (т.е. знак) сдвигается вправо через все начальные нули в данной части этой строки и эти нули заменяются пробелами (например, с помощью образца знака 4z + (4ж +) строка”+0003” становится строкой’’ххх+3”).
В каждой части этой строки, управляемой образцом целого,
управляемые ”z” (”ж”) рамками нули заменяются пробелами, если они расположены
между началом данной строки и первой ненулевой цифрой;
между каждой ”d” (”д”) ”е” (”е”) или”і” (”и”) рамкой и следующей ненулевой цифрой;
(например, с помощью трафарета zdzd2d (жджд2д) строка ”180168” становится ”18x168”).
Для каждой рамки F из Р
осуществляется вставка из F;
если рамка F не подавляема, записываются управляемые ею литеры;
(например, редактирование с помощью трафарета 4ж + ш. ” , ” д строки ”+0003.5” дает х х +3,5”, а редактирование строки ” 180168” с помощью трафарета жд”-”жд”—19”2д дает ”18-х 1—1968”).
kk) Строка „составляется” с помощью трафарета Р следующим образом:
Для каждой рамки F из Р
осуществляется вставка из F.
Для каждого элемента этой строки, управляемого F, следующим образом получается некоторая литера:
Если F содержится в образце знака, то
если знак уже был, ожидается цифра с предлагаемым ”0”;
а иначе ожидается ”+” или ” с предлагаемым ”+” и, кроме того, если данный образец знака содержит ” рамку, в качестве знака будет приемлем пробел; предшествующий первой цифре (заменяемый на ”+”);
а иначе если рамка F содержится в образце целого, то
если она подавляема, то подается ”0”;
а иначе:
Случай A: F - ”d” С’д”) рамка:
ожидается некоторая цифра с предлагаемым ” 0 ”;
Случай В: F - ”z” (”ж”) рамка:
ожидается цифра или пробел с предлагаемым ”0”, причем пробел приемлем только в следующих случаях:
между началом данной строки и первой ненулевой цифрой;
между каждой’^” (”д”),”е” (”е”) или”і” ("и”) рамкой и следующей ненулевой цифрой;
• такие пробелы заменяются нулями;
а иначе если F — **а” С’а”) рамка,
то, если она неподавляема, читается и подается некоторая литера, а иначе подается *»► ”;
—’аче, если F неподавляема,то, если F — ” . ” (”е С’и”),”Ь” С’б”)) рамка, ожидается ” . ”
(”ю” или ”” или ”е”, ”1” или ”і”, да или нет) с предлагаемым ” . ” ( ”ю ”, ”1”, нет):
а иначе, если F — подавляема ” . ” (”е” f’e”), ”i” С’и”)) рамка, подается литера ” (”10”, ” 1”).
П) Элемент множества литер S „ожидается” с предлагаемой литерой С следующим образом:
• читается некоторая литера:
если это одна из ожидаемых литер (т.е. принадлежит множеству s), то она подается,
а иначе вызывается процедура обработки события, соответствующая при ошибке литеры, с предлагаемой литерой С; если эта процедура вырабатывает истина, а (возможно, измененная) литера С есть одна из ожидаемых литер, то подается С, а иначе вызывается не определено. J 10.3.4.1.2. Семантика.
{ Форматы вводятся в действие посредством текстов-формата. Формат лучше всего рассматривать как дерево с некоторым набором в каждом узле и шаблоном на каждом из его концов. Чтобы не нарушались ограничения на области действия, каждый узел в этом дереве запакован — в настоящем стандарте — в значение вида 'КАДР'. Формат составлен вектором таких кадров, и они содержат указатели друг на друга в форме индексов, выбирающих (их) из этого вектора. Без сомнения, в реализациях это дерево будет храниться более эффективным способом. Это возможно, так как ука- затель-поля любого формата скрыт от пользователя, чтобы тот не мог проникнуть в это поле.
Хотя текст-формата может содержать ЗАКРЫТЫЕ-предложения (в повторителях и трафаретах-форматного) или основы (в трафаретах-бесформат- ного) і эти ЗАКРоІТЫЕ-предложенйя и основы не исполняются при исполнении текста-формата, но превращаются в процедуры, вызываемые впоследствии, когда до них дойдет дело в ходе форматного обмена. В действительности исполнение текста-формата не приводит ни к каким действиям, имеющим какой-нибудь смысл для пользователя. }
Выдача текста-формата F в окружении Е есть структура, единственным полем которой является массив W вида вектор из КАДРОВ'. Этот массив составлен из паспорта ((1, п)) и п элементов и определяется следующим образам:
счетчик і устанавливается в 1;
W получается „трансформацией” F в окружении Е с помощью і.
Массив W, вид которого есть 'вектор из КАДРОВ', получается „трансформацией” текста-формата или упакованного-списка-наборов С в окружении Е с помощью счетчика і следующим образом:
• элемент этого W, выбираемый по (і), является структурой, вид которой есть 'КАДР' и поля которой, взятые в их порядке, таковы
{ утн} не определено;
(счет} не определено;
£оук) не определено;
{н} массив V, вид которого есть 'вектор из НАБОРОВ' с паспортом ((1, т)), где т — число составляющих наборов из С, и элементами, определяемыми так:
Для j = 1,mпусть Cj будетj-м составляющим набором из С:
Случай А: Прямой наследник этого Cj включает шаблон Р:
составляющий трафарет Т, если он есть, и вставка 1 этого Р Исполняются совместно;
j-м элементом V является структура, вид которой есть 'ШАБЛОН' и поля которой, взятые в их порядке, таковы:
{траф} выдача этого Т, если она есть, {е, 10.3.4.8.2, 10.3.4.9.2, 10.3.4.10.2), а иначе пусто;
' в выдача этой 1 {d} ;
Случай В: Прямой наследник этого Cj включает первую вставку 11, повторитель REP, упакованный-список-наборов Р и вторую вставку^:
і увеличивается на 1;
11, REP и 12 исполняются совместно;
j-м элементом V является структура, вид которой есть 'ПАКЕТ' и поля которой, взятые в их порядке, таковы
{в1} выдача 11 {d};
{повт} выдача REP {с] ;
{УДК} і;
{в2]выдача 12;
W получается трансформацией Р в окружении Е с помощью і.
Выдача в некотором окружении Е ?НЕПОДАВЛЯЕМОГО-повторите- ля-в-СРЕДЕ R £10.3.4.1.1^ h) - это процедура вида 'процедура вырабатывающая целое', составленная из текста-процедуры-в-СРЕДЕ-выдающего- процедуру-вырабатывающую-целое, основа которого есть U вместе с окружением, необходимым {7.2.2.с} для U в Е, причем U определяется следующим образом:
Случай A: R содержит ЗАКРЫТОЕ-предложение-раскрыто-выдающее-це- лое С:
U - новая основа, подобная £1.1.3.2.k} С;
Случай В: R содержит натуральное-число D, а не ЗАКРЫТОЕ-предложе- ние:
U — новая основа, подобная D;
Случай С: R невидимо:
U — новая основа, подобная натуральному-числу, имеющему естественное {8.1.1.2} значение 1.
Выдача вставки 1 {10.3.4.1.1.d} — это массив W вида 'ВСТАВКА', определяемый следующим образом:
пусть Ui, •••> Un— составляющие ?НЕПОДАВЛЯЕМЫЕ-повторители вставки 1 и А, для і = 1, ..., п есть приведенное-изображаемое или код-раз- мещения, непосредственно следующий за U;;
пусть RnRnи D1;Dn— совместные выдачи Uj, Unи As, .... Ап, причем выдача кода-размещения символ-буква-ка-лат или символ- буква-к-(символ-буква-икс-лат или символ-буква-х, символ-буква игрек- лат или символ-буква-у, символ-буква-эль-лат или символ-буква-л, символ- буква-пэ-лат или символ-буква-п, символ-буква-ку-лат или символ-буква- ю) есть {литера, которая есть) естественное значение {8.1.4.2b) символа- буква-ка-лат (символа-буква-икс-лат, символа-буква-игрек-лат, символа- буква-эль-лат, символа-буква-пэ-лат, символа-буква-ку-лат);
паспортом этого W является ((1, п));
элемент этого W, выбираемый по (і), і = 1,..., п, является структурой, вид которой специфицируется посредством ст (проц цел повт, об (строк, лит) стр) и поля которой, взятые в их порядке, таковы: