ГОСТ 27975-88 сторінка 7 з 11
-
Бесформатный вывод.
Прагматические замечания и описание с соответствуют ГОСТ 27974. а) проц вывод = (имя файл f,
[ ] об (выводимое, проц (имя файл) пуст) х) пуст:
если открыт из f то
для і до вегр х
цк выб настроить на запись (f) ; настроить на литерное (f) ; х [і] в (проц (имя файл) пусть пиф) : пиф (f), (выводимое выв):
начало
[ ] провывод у = стройвывод выв;
<£ процДпреоб разование /(вещ = (Двещг) строк: плав (г, Д разрядность вещ + Д разрядность
порядка + 4, Д разрядность вещ — 1, Д разрядность порядка + 1)1 для j до вегр у цк выб у [j] в
(об (число,< Д компл>) чиском):
начало строк s: =
выб чиском в
■ (Д цел к): целое (к, Д разрядность цел +1)
(Д вещ г): Д преоб вещ (г) (Д компл w): Д преоб вещ (вч w) + + Д преоб вещ (мч w) $■ быв;
имя имени ПОЗИЦИЯ 11103= тпоз из f.
цел п= вегр s;
пока
след позиция (f);
г (п > с из границы книги (f) I не определено);
с из тпоз + (с ИЗ Т ПОЗ =1 I ПІ п + 1) > с из границы книги (f) + 1
цк ( -і конец строчки исправлен (f) I вывод (f, нов строчка)); настроить на запись (f)
кц;
(с из тпозf і I припз);
для к до вегр s цк вывести литеру (f, s [к]) кц
конец вывода чисел yi
(лог Ь): (след позиция (f);
вывести литеру (f, (b I да 1нет))),
(Д бит дбит) :
для к до Д размер бит
цк вывод (f, (Д F из дбит) [к]) кц
(лит к): (след позиция (f); вывести литеру (f, к))
([ ] лит стр):
для к от нигр стр до вегр стр цк след позиция (f); вывести литеру (f, стр [к]) КЦ быв кц
конец
быв кц
иначе не определено все;
проц (имя файл, [] об (выводимое, проц (имя файл) пуст)) пуст put = вывод;
Ь) проц я. вывести литеру = (имя файл f, лит лит) пуст: если открыт из f Л -| строчка окончена (f) то имя позиция тпоз =тпоз из f, п поз =заполн из книга из f; настроить на литерное (f); натроить на запись (f); имя цел р =р из тпоз, 1 =1 из тпоз, с =с из т поз;
лит к; лог есть: =ложь;
выб текст из f в
(текст): (к: =лит; есть: = истина), (подвтекст):
для і до вегр F из код из f пока есть
цк ст (лит внутр, внешн) табл = (F из код из f) [і];
(внутр из табл =лит I к: = внешн из табл;
есть: = истина)
кц
быв;
если есть то
выб текст из f в
(текст 11) : tl [р] [1] [с] : = к,
(подвтекст t2) : t2 [р] [1] [с] : = к
быв;
с + : = 1;
если тпоз вне ппоз то ппоз: = тпоз
инее-, возм установка (f) 1 Д
позиция (р из ппоз, 1 из ппоз, 1) вне т поз то ппоз: = тпоз;
(сжимаем (f) I
с размер строчки и страницы, содержащей логический размер данной книги, и всех последующих строчек и страниц может увеличиться {например, до размеров, с которыми книга была заведена (10.3.1.4.сс) первоначально, или до размеров, предполагаемых из макс позиция из кан из f} с)
все
иначе к: = ;
если -j ошибка литеры исправлена (f, к)
то не определено; к: = ”х ”
все;
проверить позицию (f); вывести литеру (f, к)
все
иначе не определено
все настройка на запись сохраняется /;
-
Бесформатный ввод
Прагматические замечания аа, bb, сс, dd, ее, ff, gg, соответствуют ГОСТ 27974.
{hh) Если вид этого N специфицируется посредством имя строк, то литеры читаются до тех пор,
-
пока не встретится литера, содержащаяся в строке, присоединенной к данному файлу вызовом процедуры задать стопстроку,
-
либо пока не исчерпается текущая строчка, вследствие чего вызывается процедура конец строчки исправлен (или, где это целесообразно, конец страницы исправлен, конец физ файла исправлен или конец лог файла исправлен); если данная процедура обработки события продвигает текущую позицию к хорошей позиции (см. 10.3.3), го ввод литер возобновляется.
Строка, состоящая из введенных литер, присваивается N (отметим, что если текущая строчка была исчерпана либо текущая позиция была на начале пустой строчки или вне логического файла, то этому N присваивается пустая строка).}
а) проц ввод = (имя файл f,
[ ] об (вводимое, проц (имя файл) пуст) х) пуст:
если открыт из f, то
для і до вегр X
цк выб настроить на чтение (f); настроить на литерное (f);
х [і] в
(проц (имя файл) пуст пиф): пиф (f),
(вводимое вв):
начало
[ ] проввод у =стройввод вв; лит к; лог к пусто;
оп?. = (строк s) лог:
вырабатывает истина, если следующая литера, когда она есть, в текущей строчке содержится в 's' (эта литера присваивается 'к'), а иначе ложь
если к пусто Д (строчка окончена (f) V лог файл окончен (f) ) то ложь
иначе (к пусто I ввести литеру (f, к) );
к пусто: = литера в строке (к, лок цел, s) все;
оп? = (лит с) лог : ? строк (с);
прио! =8;
оп! = (строк s, лит с) лит:
запрашивает литеру, содержащуюся в 's'; если читается литера, не входящая в s', вызывается процедура обработки события, соответствующая 'при ошибке литеры', с предлагаемой литерой 'с'-Х
если (к пусто I проверить позицию (f);
ввести литеру (f, к) );
к пусто: = истина;
литера в строке (к, лок цел, s)
то к
иначе лит предл: = с;
если ошибка литеры исправлена (f, предл) то
(литера в строке (предл, лок цел, s)
іпредл I не определено; с)
иначе не определено; с
все;
настроить на чтение (f)
все;
оп! = (лит s, с) лит: строк (s) !с;
процпроп^уск / нач альных yl пробелов = пуст:
пока (к пусто I след позиция (f) ); ? ”л_ ”
цк пропуск кц;
процпроп уск f( пробелов - пуст :
пока ? ”з.” цк пропуск кц;
проц чит X ать X циф X ры X = строк:
(строк t: ”--”0123456789” ! "0” ;
пока ? ”0123456789” цк t плюспр к кц; t);
проц чит знак =лит:
(лит t = (проп пробелов; ” Iki ” + ”);
проп пробелов; t);
проц чит чис X ло X = строк:
(лит t = чит знак; t + чит циф);
проц чит вещ X ественное X = строк:
(строк t: =чит знак;
( — ? ”. ” 11 плюспр чит циф I к пусто: = ложь);
( ? ” . ” t плюспр ” . ” + чит циф);
(? ”ю е” It плюспр "]0” + чит чис); t);
для j до вегр у
цк лог не конч X ено yt: = ложь; к пусто: = истина;
выбу [j] в
(имя Д цел идц):
(проп нач пробелов;
не конч: =-i строку в Д цел (чит чис, 10, идц)) У>,
(имя Д вещ идв) :
(проп нач пробелов;
не конч: = -і строку в Д вещ (чит вещ, идв))
<£ (имя Д компл идк) :
(проп нач пробелов;
не конч: = -л строку в Д вещ (чит вещ, ивч идк);
проп пробелов; ’,’i и 1” !
не конч: =не конч V
-і строку в Д вещ (чит вещ, имч идк))
(имя лог ил):
(проп нач пробелов;
ил: = (да + нет) ! нет = да),
< (имя Д бит идб) :
для і до Д размер бит
цк ввод (f, (Д F из изб) [і]) кц
(имя лит ил) : (след позиция (f); ввести литеру (f, ил)).
(имя [ ] лит имл) :
для і от нигр имл до вегр имл
цк след позиция (f); ввести литеру (f, имл [І]) кц;
(имя строк ис):
начало строк t;
пока проверить позицию (f) ;
если строчка окончена (f) V пог файл окончен (f) то ложь
иначе ввести литеру (f, к);
к пусто: =-і литера в строке (к, лок цел, стопе из f) всецк t плюспр к кц; ис: =t конец
быв;
(-і к пусто I назад (f) );
если не конч
то ( -і ошибка значения исправлена (f) I не определено); настроить на чтение (f)
все кц конец быв кц иначе не определено все:
проц (имя файл, [ ] об (вводимое, проц (имя файл) пуст)) пуст get = ввод;
-
проц-?, ввести литеру = (имя файл f, имя лит лит) пуст:
если открыт из f Д строчка окончена (f) Д - < лог файл окончен (f)
то имя позиция т поз = т поз из f;
настроить на литерное (f); настроить на чтение (f);
цел р = р из тпоз, 1 = і из тпоз, с-сиз тпоз;
с из т поз + : = 1;
лит: = выб текст из f в
(текст t 1): t 1 [р] [1] [с], (подвтекст t 2):
(лит k: = 12 [р] [1] [с];
лог есть: =ложь;
для і до вегр F из код из f пока -п есть
цк ст (лит внутр, внешн) табл = (F из код ^из f) [і ] (внешн из табл =k I к : = внутрь из табл;
есть: = истина) цк;
если есть то к
иначе к: =
если ошибка литеры исправлена (f, к) то к
иначе не определено; все;
настроить на чтение (f) все) быв
иначе не определено
все yi настройка на чтение сохраняется j(;
-
проц $ проверить позицию = (имя файл f) пуст: начало лог чтение =для чтения из f;
лог не окончено: = истина;
пока не окончено: =не окончено Д страница хороша (f, чтение) строчка окончена (f)/j не окончено
цк не окончено: = конец строчки исправлен (f) кц конец;
Прагматическое замечание соответствует ГОСТ 27974.
-
Тексты формата
Прагматическое замечание соответствует ГОСТ 27974.
-
Наборы и шаблоны.
-
Синтаксис.
-
Прагматическое замечание, метаправила А, В, С, D, Е, F, G, Н, I, J, К, L, М, N, О, Р; гиперправила a, b, с, d, е, f, g, h, і, j, k, 1, m, n, о и разъяснения aa, bb, cc, dd, ее, ff, jj, kk, соответствуют ГОСТ 27974.
-
£gg) Формат может состоять из последовательности шаблонов, каждый из которых выбирается по очереди посредством взять след шаблон (10.3.5.Ь). В дополнение к этому некоторое множество шаблонов можно сгруппировать вместе и образовать повторяемый „набор’.’ (который сам может содержать подобные наборы). Когда выбирается последний шаблон набора, снова выбирается его первый шаблон и т. д., пока весь этот набор не повторится h раз, где п — целое число, вырабатываемое его повторителем. Набор можно снабдить двумя вставками, первая из которых осуществляется перед набором, а вторая — после него.
Формат может также вызывать другие форматы с помощью трафаретов 'форматного' (10.3.4.9.1).
Когда формат исчерпывается, вызывается процедура конец формата исправлен, если она вырабатывает ложь, то данный формат повторяется, а иначе, если только эта процедура обработки события не может обеспечить новый формат, вызывается не определено.
hh) Значение V выводится с помощью шаблона Р следующим образом: Если трафарет Q этого Р есть трафарет 'выбора' или 'бесформатного', то,у выводится с помощью Р (см. 10.3.4.8.1. aa, dd, 10.3.4.l.aa), а иначе V выводится так:
-
Р подготавливается.
Если вид этого V „совместим по выводу” с Q то »
-
V преобразуется в строку, управляемую (dd) этим Q
Если данный вид не совметим по выводу или если это преобразование не было успешным, то
-
вызывается процедура ошибка значения исправлена;
-
если она вырабатывает ложь, V выводится с помощью процедуры вывод и вызывается не определено;
а иначе данная строка „редактируется” (jj) с помощью трафарета Q;
-
осуществляется вставка из Р.
-
Значение вводится в имя N с помощью шаблона Р следующим образом:
Если трафарет Q этого Р есть трафарет выбора' или 'бесформатного', ■ то значение вводится в NcпомощьюР (см. 10.3.4.8.1.bb, ее. 10.3.4.10.1 .bb);
а иначе
-
Р подготавливается;
-
„составляется” строка, управляемая Q (kk).
Если вид этого N „совместим по вводу” с Q (см. соответствующий раздел),
> • данная строка преобразуется с помощью Q в подходящее для N значе
ние;
-
если это преобразование было успешным, данное значение присваива- г ется N.
Если данный вид не совместим по вводу или если это преобразование не было успешным,
то
-
вызывается процедура ошибка значения исправлена;
-
• если она вырабатывает ложь, вызывается не определено:
• осуществляется вставка из Р.
11) Элемент множества литер S „ожидается” с предлагаемой литерой С следующим образом:
• читается некоторая литера;
если это одна из ожидаемых литер (т. е. принадлежит множеству S), то . она подается,
а иначе вызывается процедура ошибка литеры исправлена с предлагаемой литерой С; если эта процедура вырабатывает истина, а (возможно, измененная) литера С есть одна из ожидаемых литер, то подается С, а иначе вызывается не определено . J
-
. Семантика соответствует ГОСТ 27974.
-
Трафареты целого соответствуют ГОСТ 27974.
-
Трафареты вещественного соответствут ГОСТ 27974.
-
Трафареты логического соответствуют ГОСТ 27974. •
-
Трафареты комплексного соответствуют ГОСТ 27974.
-
Трафареты строкового соответствуют ГОСТ 27974.
-
Трафареты битового соответствуют ГОСТ 27974.
-
Трафареты выбора.
-
Синтаксис.
-
Гиперправила а, Ь, с соответствуют ГОСТ 27974.
{аа) Значение V выводится с помощью шаблона Р, трафарет которого Q был выдан трафаретом-целого-выбора С, следующим образом:
• подготавливается (10.3.4.1.l.dd) и осуществляется (10.3.4.1.l.ee) вставка из Q;
Если вид значения V специфицируется посредством цел, а У>0,иесли число составляющих литералов в упаковашюм-списке-поясняемых-литералов этого С не меньше V,
-
подготавливается и осуществляется литерал, выдаваемый У -м из этих литералов;
а иначе
-
вызывается процедура ошибка значения исправлена;
-
если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;
-
подготавливается и осуществляется вставка из Р
bb) Значение вводится в имя N с помощью шаблона Р, трафарет которого Q был выдан трафаретом-целого-выбора С, следующим образом:
-
подготавливается и осуществляется вставка из Q;
-
по очереди подготавливается и „отыскивается” (сс) каждый из литералов, выдаваемых составляющими литералами упакованного-списка-пояс- няемых-литералов этого С;
Если вид этого N специфицируется посредством имя цел и і-й литерал окажется первым из искомых,
то і присваивается N;
а иначе
-
вызывается процедура ошибка значения исправлена;
-
если она вырабатывает ложь, вызывается не определено;
-
подготавливается и осуществляется вставка из Р.
сс) Разъяснение соответствует ГОСТ 27974.
dd) Значение V выводится с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-выбора С, следующим образом:
-
подготавливается и осуществляется вставка из Q;
Если вид этого V специфицируется посредством лог, то
-
если V — истина (ложь), подготавливается и осуществляется литерал, выдаваемый первым (вторым) составляющим литералом из С;
Побачили розбіжність з офіційним текстом?
Дивіться також
Сборник ГОСТ ЕСКД
Збірник із 154 стандартів