Скачиваний:
7
Добавлен:
01.05.2014
Размер:
165.89 Кб
Скачать

Министерство образования РФ

Санкт-Петербургский государственный электротехнический университет

Кафедра ВТ

Отчет по

Лабораторной работе № 2

Построение магазинного распознавателя ”

Выполнил:

Фадеев С. А.

гр. 4371

Проверил:

Холод И.И.

Санкт – Петербург

2007 год.

  1. Цель: Получение практических навыков по составлению функций переходов магазинного преобразователя и анализ его работы в процессе трансляции входной цепочки.

  2. Задание

34. П(F) оследовательность описания переменных (int, float ), условных операторов

(if, then) и операторов присваивания с арифметическими выражениями (+, -).

  1. Функции ПЕРЕХОДА

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

  1. Примеры последовательности конфигураций для заданных цепочек.

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,$,$)

Входная цепочка полностью прочитана и в магазине остался только маркер дна. Это означает, что данная цепочка принадлежит языку.