Построение грамматики и вывод цепочек / Лаб3 / lab_3
.docМинистерство образования РФ
Санкт-Петербургский государственный электротехнический университет
Кафедра ВТ
Отчет по
Лабораторной работе № 2
“ Построение магазинного распознавателя ”
Выполнил:
Фадеев С. А.
гр. 4371
Проверил:
Холод И.И.
Санкт – Петербург
2007 год.
-
Цель: Получение практических навыков по составлению функций переходов магазинного преобразователя и анализ его работы в процессе трансляции входной цепочки.
-
Задание
34. П(F) оследовательность описания переменных (int, float ), условных операторов
(if, then) и операторов присваивания с арифметическими выражениями (+, -).
-
Функции ПЕРЕХОДА
New Functions
-- Оптимизированные функции для правил, правая часть которых начинается с терминала
-- сдвиг, вытолкнуть, заменить
(S,b,<begin>)=(S,<begin1>,$) -- для правила 3
(S,e,<begin1>)=(S,<begin2>,$) -- для правила 4
(S,g,<begin2>)=(S,<begin3>,$) -- для правила 5
(S,i,<begin3>)=(S,<begin4>,$) -- для правила 6
(S,n,<begin4>)=(S,<begin5>,$) -- для правила 7
(S,{,<begin5>)=(S,<end>}<Описание>,$) -- для правила 8
(S,e,<end>)=(S,<end1>,$) -- для правила 9
(S,n,<end1>)=(S,<end2>,$) -- для правила 10
(S,d,<end2>)=(S,<end0>,$) -- для правила 11
(S,r,<var>)=(S,<var>;<value>=<char>_lae,$) -- для правила 13
(S,i,<var>)=(S,<var>;<value1>=<char>_tn,$) -- для правила 14
(S,.,<frac>)=(S,<int>,$) -- для правила 18
(S,1,<int>)=(S,$,$) -- для правила 19
(S,2,<int>)=(S,$,$) -- для правила 20
(S,3,<int>)=(S,$,$) -- для правила 21
(S,4,<int>)=(S,$,$) -- для правила 22
(S,5,<int>)=(S,$,$) -- для правила 23
(S,6,<int>)=(S,$,$) -- для правила 24
(S,7,<int>)=(S,$,$) -- для правила 25
(S,8,<int>)=(S,$,$) -- для правила 26
(S,9,<int>)=(S,$,$) -- для правила 27
(S,_,<if1>)=(S,<char2>")"<char1>"("_fi,$) -- для правила 30
(S,_,<char2>)=(S,")"<S>"("neht,$) -- для правила 31
(S,_,<char3>)=(S,")"<S>"("_esle,$) -- для правила 32
(S,"<",<Znak>)=(S,<char>,$) -- для правила 34
(S,"=",<Znak>)=(S,<char>,$) -- для правила 35
(S,a,<char>)=(S,$,$) -- для правила 36
(S,b,<char>)=(S,$,$) -- для правила 37
(S,c,<char>)=(S,$,$) -- для правила 38
(S,d,<char>)=(S,$,$) -- для правила 39
(S,e,<char>)=(S,$,$) -- для правила 40
(S,f,<char>)=(S,$,$) -- для правила 41
(S,g,<char>)=(S,$,$) -- для правила 42
(S,h,<char>)=(S,$,$) -- для правила 43
(S,i,<char>)=(S,$,$) -- для правила 44
(S,j,<char>)=(S,$,$) -- для правила 45
(S,k,<char>)=(S,$,$) -- для правила 46
(S,l,<char>)=(S,$,$) -- для правила 47
(S,m,<char>)=(S,$,$) -- для правила 48
(S,n,<char>)=(S,$,$) -- для правила 49
(S,o,<char>)=(S,$,$) -- для правила 50
(S,p,<char>)=(S,$,$) -- для правила 51
(S,q,<char>)=(S,$,$) -- для правила 52
(S,r,<char>)=(S,$,$) -- для правила 53
(S,s,<char>)=(S,$,$) -- для правила 54
(S,t,<char>)=(S,$,$) -- для правила 55
(S,u,<char>)=(S,$,$) -- для правила 56
(S,v,<char>)=(S,$,$) -- для правила 57
(S,w,<char>)=(S,$,$) -- для правила 58
(S,x,<char>)=(S,$,$) -- для правила 59
(S,y,<char>)=(S,$,$) -- для правила 60
(S,z,<char>)=(S,$,$) -- для правила 61
(S,",",<S2>)=(S,<B2><char>,$) -- для правила 63
(S,":=",<B2>)=(S,<H>,$) -- для правила 66
(S,+,<znak>)=(S,$,$) -- для правила 68
(S,-,<znak>)=(S,$,$) -- для правила 69
-- Функции общего вида
-- нет сдвига, заменить
*(S,b,<I>)=(S,<I><begin>,$) -- для правила 1
*(S,i,<Описание>)=(S,<end0><if><var>,$) -- для правила 12
*(S,},<Описание>)=(S,<end0><if><var>,$) -- для правила 12
*(S,r,<Описание>)=(S,<end0><if><var>,$) -- для правила 12
*(S,_,<Описание>)=(S,<end0><if><var>,$) -- для правила 12
*(S,1,<value1>)=(S,<int>,$) -- для правила 16
*(S,2,<value1>)=(S,<int>,$) -- для правила 16
*(S,3,<value1>)=(S,<int>,$) -- для правила 16
*(S,4,<value1>)=(S,<int>,$) -- для правила 16
*(S,5,<value1>)=(S,<int>,$) -- для правила 16
*(S,6,<value1>)=(S,<int>,$) -- для правила 16
*(S,7,<value1>)=(S,<int>,$) -- для правила 16
*(S,8,<value1>)=(S,<int>,$) -- для правила 16
*(S,9,<value1>)=(S,<int>,$) -- для правила 16
*(S,1,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,2,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,3,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,4,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,5,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,6,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,7,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,8,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,9,<value>)=(S,<frac><int>,$) -- для правила 17
*(S,_,<if>)=(S,<char3><if1>,$) -- для правила 28
*(S,b,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,e,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,g,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,i,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,n,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,d,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,r,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,a,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,l,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,t,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,f,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,h,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,s,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,c,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,j,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,k,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,m,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,o,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,p,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,q,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,u,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,v,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,w,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,x,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,y,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,z,<char1>)=(S,<Znak><char>,$) -- для правила 33
*(S,b,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,e,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,g,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,i,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,n,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,d,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,r,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,a,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,l,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,t,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,f,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,h,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,s,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,c,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,j,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,k,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,m,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,o,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,p,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,q,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,u,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,v,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,w,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,x,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,y,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,z,<S1>)=(S,<B2><char>,$) -- для правила 62
*(S,_,<S2>)=(S,<if>,$) -- для правила 64
*(S,")",<S2>)=(S,<if>,$) -- для правила 64
*(S,b,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,e,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,g,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,i,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,n,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,d,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,r,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,a,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,l,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,t,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,f,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,h,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,s,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,c,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,j,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,k,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,m,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,o,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,p,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,q,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,u,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,v,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,w,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,x,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,y,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,z,<S>)=(S,<S2><S1>,$) -- для правила 65
*(S,b,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,e,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,g,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,i,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,n,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,d,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,r,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,a,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,l,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,t,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,f,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,h,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,s,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,c,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,j,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,k,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,m,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,o,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,p,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,q,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,u,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,v,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,w,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,x,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,y,<H>)=(S,<char><znak><char>,$) -- для правила 67
*(S,z,<H>)=(S,<char><znak><char>,$) -- для правила 67
-- Функции для аннулирующих правил
-- нет сдвига, вытолкнуть
*(S,"-|",<I>)=(S,$,$) -- для правила 2
*(S,},<var>)=(S,$,$) -- для правила 15
*(S,_,<var>)=(S,$,$) -- для правила 15
*(S,},<if>)=(S,$,$) -- для правила 29
*(S,")",<if>)=(S,$,$) -- для правила 29
*(S,b,<end0>)=(S,$,$) -- для правила 70
*(S,},<end0>)=(S,$,$) -- для правила 70
*(S,"-|",<end0>)=(S,$,$) -- для правила 70
-- Функции выталкивания терминалов
-- сдвиг, вытолкнуть
(S,e,e)=(S,$,$)
(S,i,i)=(S,$,$)
(S,n,n)=(S,$,$)
(S,},})=(S,$,$)
(S,a,a)=(S,$,$)
(S,l,l)=(S,$,$)
(S,_,_)=(S,$,$)
(S,=,=)=(S,$,$)
(S,;,;)=(S,$,$)
(S,t,t)=(S,$,$)
(S,f,f)=(S,$,$)
(S,"(","(")=(S,$,$)
(S,")",")")=(S,$,$)
(S,h,h)=(S,$,$)
(S,s,s)=(S,$,$)
-- Функция перехода в заключительное состояние
(S,"-|","[]")=(S,$,$)
-- Фактор определённости: 80%
-- Всего функций для данной грамматики: 210
-- Выдано функций: 168
-
Примеры последовательности конфигураций для заданных цепочек.
4.1 begin{int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end
Шаг: 0
Магазин: [<I>, "[]"]
Входная цепочка: =-> b <-= egin{int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,b,<I>)=(S,<I><begin>,$)
Шаг: 1
Магазин: [<begin>, <I>, "[]"]
Входная цепочка: =-> b <-= egin{int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,b,<begin>)=(S,<begin1>,$)
Шаг: 2
Магазин: [<begin1>, <I>, "[]"]
Входная цепочка: =-> e <-= gin{int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,e,<begin1>)=(S,<begin2>,$)
Шаг: 3
Магазин: [<begin2>, <I>, "[]"]
Входная цепочка: =-> g <-= in{int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,g,<begin2>)=(S,<begin3>,$)
Шаг: 4
Магазин: [<begin3>, <I>, "[]"]
Входная цепочка: =-> i <-= n{int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,i,<begin3>)=(S,<begin4>,$)
Шаг: 5
Магазин: [<begin4>, <I>, "[]"]
Входная цепочка: =-> n <-= {int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,n,<begin4>)=(S,<begin5>,$)
Шаг: 6
Магазин: [<begin5>, <I>, "[]"]
Входная цепочка: =-> { <-= int_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,{,<begin5>)=(S,<end>}<Описание>,$)
Шаг: 7
Магазин: [<Описание>, }, <end>, <I>, "[]"]
Входная цепочка: =-> i <-= nt_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,i,<Описание>)=(S,<end0><if><var>,$)
Шаг: 8
Магазин: [<var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> i <-= nt_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,i,<var>)=(S,<var>;<value1>=<char>_tn,$)
Шаг: 9
Магазин: [n, t, _, <char>, =, <value1>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> n <-= t_m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,n,n)=(S,$,$)
Шаг: 10
Магазин: [t, _, <char>, =, <value1>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> t <-= _m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,t,t)=(S,$,$)
Шаг: 11
Магазин: [_, <char>, =, <value1>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= m=9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,_,_)=(S,$,$)
Шаг: 12
Магазин: [<char>, =, <value1>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> m <-= =9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,m,<char>)=(S,$,$)
Шаг: 13
Магазин: [=, <value1>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> = <-= 9;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,=,=)=(S,$,$)
Шаг: 14
Магазин: [<value1>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> 9 <-= ;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,9,<value1>)=(S,<int>,$)
Шаг: 15
Магазин: [<int>, ;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> 9 <-= ;_if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,9,<int>)=(S,$,$)
Шаг: 16
Магазин: [;, <var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ; <-= _if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,;,;)=(S,$,$)
Шаг: 17
Магазин: [<var>, <if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,_,<var>)=(S,$,$)
Шаг: 18
Магазин: [<if>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,_,<if>)=(S,<char3><if1>,$)
Шаг: 19
Магазин: [<if1>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= if_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,_,<if1>)=(S,<char2>")"<char1>"("_fi,$)
Шаг: 20
Магазин: [i, f, _, "(", <char1>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> i <-= f_"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,i,i)=(S,$,$)
Шаг: 21
Магазин: [f, _, "(", <char1>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> f <-= _"("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,f,f)=(S,$,$)
Шаг: 22
Магазин: [_, "(", <char1>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= "("s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,_,_)=(S,$,$)
Шаг: 23
Магазин: ["(", <char1>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> "(" <-= s"<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,"(","(")=(S,$,$)
Шаг: 24
Магазин: [<char1>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> s <-= "<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,s,<char1>)=(S,<Znak><char>,$)
Шаг: 25
Магазин: [<char>, <Znak>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> s <-= "<"v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,s,<char>)=(S,$,$)
Шаг: 26
Магазин: [<Znak>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> "<" <-= v")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,"<",<Znak>)=(S,<char>,$)
Шаг: 27
Магазин: [<char>, ")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> v <-= ")"_then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,v,<char>)=(S,$,$)
Шаг: 28
Магазин: [")", <char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ")" <-= _then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,")",")")=(S,$,$)
Шаг: 29
Магазин: [<char2>, <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= then"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,_,<char2>)=(S,")"<S>"("neht,$)
Шаг: 30
Магазин: [t, h, e, n, "(", <S>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> t <-= hen"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,t,t)=(S,$,$)
Шаг: 31
Магазин: [h, e, n, "(", <S>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> h <-= en"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,h,h)=(S,$,$)
Шаг: 32
Магазин: [e, n, "(", <S>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> e <-= n"("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,e,e)=(S,$,$)
Шаг: 33
Магазин: [n, "(", <S>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> n <-= "("c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,n,n)=(S,$,$)
Шаг: 34
Магазин: ["(", <S>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> "(" <-= c":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,"(","(")=(S,$,$)
Шаг: 35
Магазин: [<S>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> c <-= ":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,c,<S>)=(S,<S2><S1>,$)
Шаг: 36
Магазин: [<S1>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> c <-= ":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,c,<S1>)=(S,<B2><char>,$)
Шаг: 37
Магазин: [<char>, <B2>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> c <-= ":="e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,c,<char>)=(S,$,$)
Шаг: 38
Магазин: [<B2>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ":=" <-= e-u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,":=",<B2>)=(S,<H>,$)
Шаг: 39
Магазин: [<H>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> e <-= -u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,e,<H>)=(S,<char><znak><char>,$)
Шаг: 40
Магазин: [<char>, <znak>, <char>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> e <-= -u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,e,<char>)=(S,$,$)
Шаг: 41
Магазин: [<znak>, <char>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> - <-= u","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,-,<znak>)=(S,$,$)
Шаг: 42
Магазин: [<char>, <S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> u <-= ","d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,u,<char>)=(S,$,$)
Шаг: 43
Магазин: [<S2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> "," <-= d":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,",",<S2>)=(S,<B2><char>,$)
Шаг: 44
Магазин: [<char>, <B2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> d <-= ":="y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,d,<char>)=(S,$,$)
Шаг: 45
Магазин: [<B2>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ":=" <-= y-w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,":=",<B2>)=(S,<H>,$)
Шаг: 46
Магазин: [<H>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> y <-= -w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: *(S,y,<H>)=(S,<char><znak><char>,$)
Шаг: 47
Магазин: [<char>, <znak>, <char>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> y <-= -w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,y,<char>)=(S,$,$)
Шаг: 48
Магазин: [<znak>, <char>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> - <-= w")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,-,<znak>)=(S,$,$)
Шаг: 49
Магазин: [<char>, ")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> w <-= ")"_else_"("d":="z+k")"}end"-|"
Функция перехода: (S,w,<char>)=(S,$,$)
Шаг: 50
Магазин: [")", <char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ")" <-= _else_"("d":="z+k")"}end"-|"
Функция перехода: (S,")",")")=(S,$,$)
Шаг: 51
Магазин: [<char3>, <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= else_"("d":="z+k")"}end"-|"
Функция перехода: (S,_,<char3>)=(S,")"<S>"("_esle,$)
Шаг: 52
Магазин: [e, l, s, e, _, "(", <S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> e <-= lse_"("d":="z+k")"}end"-|"
Функция перехода: (S,e,e)=(S,$,$)
Шаг: 53
Магазин: [l, s, e, _, "(", <S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> l <-= se_"("d":="z+k")"}end"-|"
Функция перехода: (S,l,l)=(S,$,$)
Шаг: 54
Магазин: [s, e, _, "(", <S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> s <-= e_"("d":="z+k")"}end"-|"
Функция перехода: (S,s,s)=(S,$,$)
Шаг: 55
Магазин: [e, _, "(", <S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> e <-= _"("d":="z+k")"}end"-|"
Функция перехода: (S,e,e)=(S,$,$)
Шаг: 56
Магазин: [_, "(", <S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> _ <-= "("d":="z+k")"}end"-|"
Функция перехода: (S,_,_)=(S,$,$)
Шаг: 57
Магазин: ["(", <S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> "(" <-= d":="z+k")"}end"-|"
Функция перехода: (S,"(","(")=(S,$,$)
Шаг: 58
Магазин: [<S>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> d <-= ":="z+k")"}end"-|"
Функция перехода: *(S,d,<S>)=(S,<S2><S1>,$)
Шаг: 59
Магазин: [<S1>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> d <-= ":="z+k")"}end"-|"
Функция перехода: *(S,d,<S1>)=(S,<B2><char>,$)
Шаг: 60
Магазин: [<char>, <B2>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> d <-= ":="z+k")"}end"-|"
Функция перехода: (S,d,<char>)=(S,$,$)
Шаг: 61
Магазин: [<B2>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ":=" <-= z+k")"}end"-|"
Функция перехода: (S,":=",<B2>)=(S,<H>,$)
Шаг: 62
Магазин: [<H>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> z <-= +k")"}end"-|"
Функция перехода: *(S,z,<H>)=(S,<char><znak><char>,$)
Шаг: 63
Магазин: [<char>, <znak>, <char>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> z <-= +k")"}end"-|"
Функция перехода: (S,z,<char>)=(S,$,$)
Шаг: 64
Магазин: [<znak>, <char>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> + <-= k")"}end"-|"
Функция перехода: (S,+,<znak>)=(S,$,$)
Шаг: 65
Магазин: [<char>, <S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> k <-= ")"}end"-|"
Функция перехода: (S,k,<char>)=(S,$,$)
Шаг: 66
Магазин: [<S2>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ")" <-= }end"-|"
Функция перехода: *(S,")",<S2>)=(S,<if>,$)
Шаг: 67
Магазин: [<if>, ")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ")" <-= }end"-|"
Функция перехода: *(S,")",<if>)=(S,$,$)
Шаг: 68
Магазин: [")", <end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> ")" <-= }end"-|"
Функция перехода: (S,")",")")=(S,$,$)
Шаг: 69
Магазин: [<end0>, }, <end>, <I>, "[]"]
Входная цепочка: =-> } <-= end"-|"
Функция перехода: *(S,},<end0>)=(S,$,$)
Шаг: 70
Магазин: [}, <end>, <I>, "[]"]
Входная цепочка: =-> } <-= end"-|"
Функция перехода: (S,},})=(S,$,$)
Шаг: 71
Магазин: [<end>, <I>, "[]"]
Входная цепочка: =-> e <-= nd"-|"
Функция перехода: (S,e,<end>)=(S,<end1>,$)
Шаг: 72
Магазин: [<end1>, <I>, "[]"]
Входная цепочка: =-> n <-= d"-|"
Функция перехода: (S,n,<end1>)=(S,<end2>,$)
Шаг: 73
Магазин: [<end2>, <I>, "[]"]
Входная цепочка: =-> d <-= "-|"
Функция перехода: (S,d,<end2>)=(S,<end0>,$)
Шаг: 74
Магазин: [<end0>, <I>, "[]"]
Входная цепочка: =-> "-|" <-=
Функция перехода: *(S,"-|",<end0>)=(S,$,$)
Шаг: 75
Магазин: [<I>, "[]"]
Входная цепочка: =-> "-|" <-=
Функция перехода: *(S,"-|",<I>)=(S,$,$)
Шаг: 76
Магазин: ["[]"]
Входная цепочка: =-> "-|" <-=
Функция перехода: (S,"-|","[]")=(S,$,$)
Входная цепочка полностью прочитана и в магазине остался только маркер дна. Это означает, что данная цепочка принадлежит языку.