I не конч := истина), fi вещественное ji
(у UI I
< (Д вещ в): ред Д вещ (в) >,
< (Д цел ц) : ред Д вещ (ц) >,
I не конч := истина), ^логическое
(У U1 I
(лог b): s := (b І даі нет)
I не конч := истина),
комплексное (ft(У В] I
(Д компл дк): ред Д компл (дк) >,
(Д вещ дв) : ред Д вещ (вд) >,
< (Д цел дц): ред Д вещ (да) >
I не коня := истина), 0 строковое у!
(у 0] 1
(лит с): (счет лит =1 I s :» cl не конч := истина), ([ ]лит1):
(счет лит = вегр t - нигр t + 1
. Is :=t [cl]
І не конч := истина)
І не конч := истина) либо
Ji битовое /
(у В11
< (Д бит дб): ред Д бит (дб, тип из трафарет - 4) > I не конч := истина) быв;
если не конч
то ред строку (f, s, подрамки)
все
конец,
(травыб выбор):
начало
[1 : вегр (в из выбор)] подвставка пв; подготовить вставку (в из выбор, пв); вывести вставку (f, пв);
цел 1 =
выб тип из выбор в
логическое ft
(у В] I
(лог b): (b 111 2)
I не конч ;= истина; пропуск), целое
(У BJ I
(цел і): і
I не конч := истина; пропуск) быв;
если не конч
то
если 1 > вегр (стр из выбор) V К О
то не конч := истина
иначе
[1 : вегр ((стр из выбор) [1])] подвставка пвс; подготовить вставку ((стр из выбор) [1], пвс); вывести вставку (f, пвс)
все все; подготовить вставку (в из шаблон, подвст) конец, (трафор трафор):
начало
выполнить трафор (f „трафор, ложь);
для і до вегр подвст цк подвст [і] := (0, ” ”) кц;
j-.= l конец, (трабесф трабесф): начало ■
[1 : вегр (в из трабесф) ] подвставка пв;
[ ] проц цел спец = спец из трабесф;
пел п = вегр спец; [1 : п] цел s;
(подготовить вставку (в из трабесф, пв), (подготовить вставку (в из шаблон, подвст), s := (n I спец [1], (спец [1], спец [2]),
(спец [1],спец [2], спец [3]) I () ));
вывести вставку (f, пв);
если п - 0 то вывод (f, у [і]) иначе
число yj =
(у [j] I < (Д цел і): і >, < (Д вещ в): в >
I не конч := истина; пропуск);
если "’не конч то выб п в
вывод (f, целое (yj, S [1])),
вывод (f, фикс (yj, s [l],s[2])),
вывод (f, плав (yj, s [1], s [2J, s [3])) быв
все
все
конец, (пуст):
подготовить вставку (в из шаблон, подвст)) быв;
если не конч
то настроить на запись (f);
("і (испр ошибка значения из f) (f) I вывод (f, у [j]); не определено)все:
вывести вставку (f, прдвст)
кц
конец
быв кц
иначе не определено
все:
проц (имя файл,
[ ] об (выводимое, формат)) пуст put f = ф вывод: Ь) проц *-ред fi актировать fi строку =
(имя файл f, строк s, [ ] подрамка.пр) пуст: начало лог подав, п ft одавл fi н fi ули ji ':= истина, выв fi еден fl зн
fi ак fi := ложь, еще раз, цел j := 0, знак:
проц копия = (лит с) пўст:
(■_| подав I проверить позицию (f) : вывести литеру (f, с)) ; для к до вегр пр)
цк подрамка прк = пр [к]: подай :=* подав из прк: вывести вставку (f, пв из прк);
до повт из прк
цк еще раз := истина;
пока еще раз ‘х ‘
цк) +:=1; еще раз := ложь:
лит sj = s [j], маркер = марк из прк:
если маркер =”d”
то копия ( sj); пн := истина
инее маркер = ”z” то
(sj = ”0” I копия ((пн I ”1’’ I sj))
I : sj = ”+” I еще раз :=истина
I пн :=ложь; копия (sj))
инее маркер =”u” V маркер =”v” то
(sj =”+” I знак := 1; еще раз := Истина
I : sj = ” I знак := 2; ещё раз := истина
I :sj =”0” I копия ((пн Г I sj))
І (“і выв зн
копия ((знак I (маркер =”u” l”+”l ”х_”),”-”)); выв зн := истина) ;
копия (sj) : пн := ложь)
инее маркер =”+” то
(sj = ”+” V sj = I копия (sj)
I (~> выв зн I копия ((знак I ”+”,”-”)));
j-:=l)
инее маркер = ” то
(sj = ”+” I копия (”<’)
I : sj ” I копия (sj)I ("Э выв зн I копия ((знак I ”+” ”-”)));
< j-;=1)
инее маркер = ”. ” то копия( " . ”) инее маркер = ”е” V маркер = ”i” V маркер = ”а” V маркер = ”Ь” то копия (sj) ; пн := истина; выв зн := ложь инее маркер = ” г” Toj—:=1 все кц кц кц конец;
10.3.5.2. Форматный ввод а) проц ф ввод = (имя файл, f, [ ] об (вводимое, формат) х) пуст: если открыт из f то для к до вегр х цк выб настроить на чтение (f);
настроить на литерное (f); х [к] в
(формат формат) : присоединить формат (f, формат), (вводимое вв):
начало цел j := 0;
шаблон шаблон, [ ] проввод у = стройввод вв;
пока (j +:= 1) <вегр у цк лог не конч := ложь; взять след шаблон (f, истина, шаблон); настроить на чтение (f);
[1 : вегр (в из шаблон)] подвставка подвст; выб траф из шаблон в (трафарет трафарет): начало
[1 : вегр (рамки из трафарет) ] подрамка подрамки; (подготовить рамки (рамки из трафарет, подрамки), подготовить вставку (в из шаблон, подвставка)) ;
строк s;
цел основание =
(тип из трафарет > 6 I тип из трафарет — 4 I 10); сост строку (f, s, подрамки, основание);
выб тип из трафарет в
Й целое й
(у 0] I
< (имя Д цел идц) :
не конч := строку в Д цел (s, 10, идц) >
I не конч := истина), 0 вещественное
(у DI I
(имя Д вещ идв) :
не конч := -t строку в Д вещ (s, идв) >
I не конч := истина), (і логическое
(у [j] I (имя лог ил): ил := s = да
I не конч := истина), 0 комплексное
(у DJI
(имя Д компл идк):
(цел і, лог Ы,Ь2; литера в строке (’’!”, i, s);
bl := строку в Д вещ (s [:-1], ивч из идк);
Ь2 := строку в Д вещ (В [1+ 1:], имч из идк);
не конч := (Ы АЬ2)) > I не конч := истина), 0 строковое
(у UI I
(имя лит сс):
(вегр s = 1 I сс := s [1] I не конч := истина),
(имя [ ] лит имл):
(вегр имл — нигр имл + 1 = вегр s I имл [с 1 ] := s
I не конч := истина), (имя строк ис) : ис:= s I не конч := истина), либо jt битовые
(у 0] I
(имя Д бит идб) :
если Д цел і: строку в Д цел (s, основание, і) то идб := бин і
иначе не конч := истина все >
I не конч := истина) быв конец, (травыб выбор): начало
[1 : вегр (в из выбор)] подвставкапв; подготовить вставку (в из выбор, пв); ввести вставку (f, пв);
цел с = с из тпоз f, лит kk;
цел к := 0, лог есть := ложь;
пока к < вегр (стр из выбор) есть
цкк+:=1;
[1 : вегр ((стр из выбор) [к]) подвставкапв; лог лог := истина;
подготовить вставку ( (стр из выбор) [к], пв);
строк s;
для і до вегр пв
цк s плюспр
(стр из пв [і] I (строк ss) : ss) X повт из пв [і] цк;
для jj до вегр s
пока лог := лог А ’’’ строчка окончена (f)
Л лог файл окончен (f) цк ввести литеру (f, kk); лог :=kk = s [jj] кц; (“’(есть :=лог) I уст номер литеры (f, с)) кц;
если есть то не конч := истина
иначе
выб тип из выбор в
^логическое jk
( у 01 I
(имя лог b) : b := k = 1
I не конч := истина),
целое
(у ВЛ ‘
(имя цел і) : і := к
I не конч := истина)
быв
все;
подготовить вставку (в из шаблон, подаст)
конец,
(трафор трафор):
начало выполнить трафор (f, трафор, истина);
для і до вегр подаст цк подаст [і] := (0, ” ”) кц;
j:=l
конец,
(трабесф траберф):
([1 : вегр (в из трабесф) ] подаставка пв; (подготовить вставку (в из трабесф, пв), подготовить вставку (в из шаблон, подаст)); ввести вставку (f, да);
ввод (f,y [j])),
(пуст):
(j-i;=l;
подготовить вставку (в из шаблон, подаст)) быв;
если не конч
то настроить на чтение (f);
(-, (испр ошибка значения из f) (f) I не определено) все:
ввести вставку (f, подвст)
кц
конец
быв кц
иначе не определено
все;
проц (имя файл, ’
[ ] об (вводимое, формат)) пуст get f = ф ввод;
Ь) проц ^сост Д авить (і строку = (имя файл f,
имя строк s, [ ] подрамка пр, цел основание) пуст:
начало
лог подав, н |і одавляемые Ji н ji ули Ji := истина,
есть знак := ложь,
есть пробел := ложь, нет знака := ложь,
цел ук jf азатель ji зн ji ака ji := 1, повт;
прио ! = 8;
оп ! = (строк s, лит с) лит:
ji запрашивает некоторую литеру, содержащуюся в 's';
если читаемая литера не входит в 's', то вызывается процедура обработки события, соответствующая 'при ошибке литеры', с предлагаемым 'с' ji .
если лит к; проверить позицию (f);
ввести литеру (f, к);
литера в строке (к, лок цел, s)
то к •
иначе лит предл := с; -
если (испр ошибка литеры из f) (f, предл) то
(литера в строке (предл, лок цел, s) I предл
I не определено; с)
иначе не определено; с
все;
настроить на чтение (f)
все;
оп ! = (лит s. с) лит: строк (s) ! с;
[ ] лит хор цифры ="012345678935046?’ [/основание];
s :=’’+”;
для к до вегр пр
цк подрамка прк = пр [к]; подав := подав из прк; ввести вставку (f, пв из прк);
до повт из прк
цк лит маркер = марк из прк;если маркер = ”d” то s плюспр
(подав 1”0”1 хор цифры ! ”0”); Пн := истина инее маркер =’’ z” то s плюспр
(подав I ”0”
I лит с = ((пн I I ” ”) + хор цифры) !”0”;
(с=#=”—” (пн :=ложь); с)
инее маркер =”u” V маркер =" +” то
если есть знак
то пн :=ложь; s плюспр (”0123456789” !”0”) иначе
лит с =(”+-” + (маркер =”и” ” ”))!”+”;
(c=”+”Vc=”-”
I есть знак := истина; s [укзн] := с) все
инее маркер = ”v”v маркер = ” то
если есть знак
то пн :=ложь; s плюспр (”0123456789” ! ”0”)
инее лит с; есть пробел
то с - ”.0123456789” 1
(c=”+”VC”-”
I есть знак := истина;
s [укзн] :=с
I : с¥=”л.”1 пн :=ложь; есть знак := истина;
s плюспр с)
иначе с:=”
• (с = ”+”/с = ”-”
I есть знак := истина; s [укзн] := с
I есть пробел := истина) все
инее маркер = ” . ” то
s плюспр (подав I ” . ” I ”. ” ! ” . ”) инее маркер — „е” то s плюспр
(подав I ”ю” I ”10е” ! ”10”; ”ю”);
есть знак :=ложь; пн := истина;