Случай А; Вид этого N специфицируется посредством имя лит:
если S не состоит из одной литеры, то преобразование не будет успешным; иначе подается эта литера;
Случай В: Вид этого N специфицируется посредством имя [ ] лит:
если длина строки S не равна числу литер, именуемых именем N, то преобразование не будет успешным; а иначе подается S;
Случай С: Вид этого N специфицируется посредством имя строк:
подается S.J
10.3.4.7. Трафареты битового.
Синтаксис.
трафарет битового в СРЕДЕ {а341с}: рамка ДВОИЧНОГО основания в СРЕДЕ {by , образец целого в СРЕДЕ {а342Ь}.
рамка ДВОИЧНОГО основания в СРЕДЕ {а} : вставка в СРЕДЕ {A341d}, ДВОИЧНОЕ основание { 82 d, е, f, g }, неподавляемое подавление {А3411}, маркер основания { с } :
маркер основания { b} :
символ буква эр лат { 94а ] либо символ буква я [ 94а J . {Примеры:
a) 2r6d26sd • 2я6д26сд Ь) 2г • 8я }
{О семантике трафаретов-битового см. 10.3.4.1.2.Є.}
{аа) Виды, совместимые по выводу (вводу) с трафаретами 'битового', специфицируются посредством Д бит (имя Д бит).
bb) Значение V преобразуется в строку с помощью трафарета 'битового' Р следующим образом:
с помощью обозначения-операции age (10.2.3.8.і) определяется целое число 1, соответствующее V;
Если ”г” (”я”) рамка из Р выдана рамкой-двоичного- (-четверичного-, -восьмеричного-, -шестнадцатеричного-) -основания, то 1 преобразуется в управляемую образцом целого из Р строку, содержащую двоичное (четверичное, восьмеричное, шестнадцатеричное) представление этого 1 (ср. 10.3.4.2. l.bb),
если 1 нельзя представить такой строкой, то преобразование не будет успешным.
сс) Строка S преобразуется в битовое значение, подходящее для имени N, с помощью трафарета 'битового' Р следующим образом:
если ”г” ("я”) рамка из Р выдана рамкой-двоичного-(-четверичного-, восьмеричного-, -шестнадцатеричного-) -основания, то определяется целое число 1, для которого S содержит двоичное (четверичное, восьмеричное, шестнадцатеричное) представление;
с помощью обозначения-операции бин (10.2.3.8.j) определяется битовое значение В, соответствующее этому 1;
если размер этого В больше размера значения, именуемого N, то данное преобразование не будет успешным.} 10.3.4.8. Трафареты выбора.
Синтаксис.
трафарет целого выбора в СРЕДЕ {A341cJ: вставка в СРЕДЕ {A341d} , символ буква цэ лат {94а} либо символ буква ц {94а }, упакованный кратким список поясняемых литералов в СРЕДЕ {cj , возможная последовательность пояснений 192а ] .
трафарет логического выбора в СРЕДЕ { А341с}: вставка в СРЕДЕ {A341d} , маркер логического (A344b} , знак начало краткий {94 f} , поясняемый литерал в СРЕДЕ {с} , знак а также {94f}, поясняемый литерал в СРЕДЕ [с ], знак конец краткий {94f} , возможная последовательность пояснений {92а j .
поясняемый литерал в СРЕДЕ { a, b} : возможная последовательность пояснений {92а/ , литерал в СРЕДЕ {А341 і}.
{Примеры:
л20кц (’’’’север”, ””восточ”, ””юж”,’’’’запад”)
б Г”, ” ошибка”) с) ’’’’север” } (аа) Значение V выводится с помощью шаблона Р, трафарет которого
Q был выдан трафаретом-целого-выбора С, следующим образом:
• подготавливается (10.3.4.l.l.dd) и осуществляется (10.3.4.l.l.ee) вставка из Q;
Если вид значения V специфицируется посредством цел, а V > 0, и если число составляющих литералов в упакованном-списке-пояс- няемых-литералов этого С не меньше V,
то
подготавливается и осуществляется литерал, выдаваемый V-m из этих литералов;
а иначе
вызывается процедура обработки события, соответствующая при ошибке значения;
если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;
• подготавливается и осуществляется вставка из Р.
bb) Значение вводится в имя N с помощью шаблона Р, трафарет которого Q был выдан трафаретом-целого-выбора С, следующим образом:
подготавливается и осуществляется вставка из Q;
по очереди подготавливается и „отыскивается” (сс) каждый из литералов, выдаваемых составляющими литералами упакованного-списка-пояс- няемых-литералов этого С;
Если вид этого N специфицируется посредством имя цел и і-й литерал окажется первым из искомых, то і присваивается N;
а иначе
• вызывается процедура обработки события, соответствующая при ошибке значения;
если она вырабатывает ложь, вызывается не определено;
• подготавливается и осуществляется вставка из Р.
сс) Литерал „отыскивается” путем чтения литер и сопоставления их с последовательными литерами этого литерала. Если будет достигнут конец текущей строчки либо логического файла или для некоторой литеры не найдется соответствия, то этот поиск не будет успешным, а текущая позиция возвращается на то место, откуда поиск начался.
dd) Значение V выводится с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-выбора С, следующим образом:
подготавливается и осуществляется вставка из Q;
Если вид этого V специфицируется посредством лог, то
если V — истина (ложь), подготавливается и осуществляется литерал, выдаваемый первым (вторым) составляющим литералом из С;
а иначе
вызывается процедура обработки события, соответствующая при ошибке значения;
если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;
• подготавливается и осуществляется вставка из Р.
ее) Значение вводится в имя N с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-йыбора С, следующим образом: • подготавливается и осуществляется вставка из Q;
• по очереди подготавливается и отыскивается каждый из литералов, выдаваемых составляї&цими литералами из С;
Если вид этого N специфицируется посредством имя лог и первый (второй) литерал окажется искомым,
то этому N присваивается истина (ложь);
а иначе
вызывается процедура обработки события, соответствующая при ошибке значения;
если она вырабатывает ложь, вызывается не определено;
подготавливается и осуществляется вставка из Р. J
10.3.4.8.2. Семантика.
Выдача трафарета-выбора Р является структурой W вида 'ТРАВЫБ', определяемой следующим образом:
пусть п — число составляющих литералов-в-СРЕДЕ упакованного-спис- ка-поясняемых-литералов из Р;
пусть Sj, і = 1, ..., п, есть вставка-в-СРЕДЕ, подобная {1.1.3.2.к}’ і-му из этих составляющих литералов-в-СРЕДЕ;
вставка 1 из Р и все Sj, S2,..., Snисполняются совместно;
поля структуры W, взятые в их порядке, таковы:
{ в } выдача вставки 1;
(тип} 1 (2), если Р — трафарет-логического-(-целого-)-выбора;
І стр} массив вида 'вектор из ВСТАВОК', имеющий паспорт ((1, п)) и п элементов, причем выбираемый по (і), і = 1, ..., п, элемент - это выдача вставки S;.
Трафареты форматного.
Синтаксис.
а) трафарет форматного в СРЕДЕ £А341с} :
вставка в СРЕДЕ {A341d} ,
символ буква эф лат £94а} либо символ буква ф {94а},
ЗАКРЫТОЕ предложение в СРЕДЕ
раскрыто выдающее ФОРМАТ {31а, 34а} , возможная последовательность пояснений {92а} .
{Пример:
а) ф (uir I (цел) : ф 5дф, (вещ) : фд.Здф)}
{ Трафарет-форматного можно использовать, чтобы динамически создавать форматы для применения в обмене. Когда в течение вызова процедуры взять след шаблон дело доходит до трафарета 'форматного', он подготавливается, а затем осуществляется его вставка. Первый шаблон формата, вырабатываемого процедурой этого трафарета, подается в качестве очередного шаблона, а дальше шаблоны берутся из этого формата до тех пор, пока он не исчерпается.}
Семантика.
Выдача в окружении Е некоторого трафарета-форматного Р - это структура, вид которой есть 'ТРАФОР', и поля которой, взятые в их порядке, таковы:
{ в } выдача его вставки;
{ прф} процедура вида 'процедура вырабатывающая ФОРМАТ', составленная из текста-процедуры-в-СРЕДЕ-выдающего-процедуру-выра- батывающую-ФОРМАТ, основа U которого является новой основой, подобной {1.1.3.2.к} ЗАКРЫТОМУ-предложению-раскрыто-выдающему- ФОРМАТ этого Р, вместе с окружением, необходимым для U в Е.
Трафареты бесформатного.
Синтаксис.
трафарет бесформатного в СРЕДЕ {А341с} : вставка в СРЕДЕ {A341d}, символ буква ге лат {94а} либо символ буква г {94а} , возможное задание разрядности в СРЕДЕ {Ь} .
задание разрядности в СРЕДЕ {а} : знак начало краткий {94f} , основа в СРЕДЕ раскрыто выдающая целое {32d} , возможное задание после {с} , знак конец краткий {94f}, возможная последовательность пояснений {92а} .
задание после в СРЕДЕ {b} : знак а также {94f} , основа в СРЕДЕ раскрыто выдающая целое {32d} , возможное задание порядка в СРЕДЕ {d} .
задание порядка в СРЕДЕ {с} : знак а также {94f} , основа в СРЕДЕ раскрыто выдающая целое {32d} . {Примеры:
а) г • г (-18, 12,-3) Ь) -18,12,-3
с) , 12, -3 d) , —3}
{аа) Значение V выводится с помощью шаблона Р, трафарет Q которого был выдан трафаретом-бесформатного G, следующим образом:
Р подготавливается;
осуществляется вставка из Q;
Если Q не параметризован (т.е. не содержит задания-разрядности), то V выводится с помощью вывод;
а иначе, если вид этого V специфицируется посредством Д цел или Д вещ, то
если Q содержит один (два, три) параметр (а, ов), V преобразуется в строку с помощью целое (фикс, плав);
эта строка записывается с помощью вывод; а иначе
вызывается процедура обработки события, соответствующая при ошибке значения;
если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено; 1
• осуществляется вставка из Р.
bb) Значение вводится в имя N с помощью шаблона Р, трафарет кото-
рого есть трафарет 'бесформатного', следующим образом:
Р подготавливается;
осуществляется вставка из Q;
(игнорируются любые параметры и) данное значение вводится в N с помощью ввод;
осуществляется вставка из P.J
10.3.4.10.2. Семантика.
Выдача в окружении Е некоторого трафарета-бесформатного-в-СРЕДЕ Р - это структура вида 'ТРАБЕСФ', поля которой, взятые в их порядке, таковы
* {в} выдача вщ^вки из Р;
• £спец} массив W вида 'вектор из процедур вырабатывающих целое', имеющий паспорт ((1, п)), где п — число составляющих основ-раскрыто- выдающих-целое возможного-задания-разрядности из Р, и п элементов, определяемых следующим образом:
Дляі=1,..., п
• і-м элементом массива W служит процедура, вид которой есть 'процедура вырабатывающая целое', составленная из текста-процедуры-в- СРЕДЕ-выдающего-процедуру-вырабатывающую-целое, основа U которой является новой основой, подобной {1.1.3.2.к} і-й из этих основ- раскрыто-выдающих-целое, вместе с окружением, необходимым для U в Е.
10.3.5. Форматный обмен
вид формат = ст (подв [1 : 0 ] кадр F);
вид format = формат;
вид ^кадр =
ст (цел у 0 казатель 0 т 0 екущего ф н 0 абора 0,
счет 0 чик числа раз,
сколько должен быть повторен кадр 0,
о 0 братный 0 ук 0 азатель 0, подв [1 : 0] набор н);
вид «-набор = об (шаблон, пакет);
вид «-пакет =
ст (вставка в 1, проц цел повт 0оритель 0, цел у 0 казатель 0 д 0 ругого 0 к 0 адра 0, вставка в2);