Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otchet.docx
Скачиваний:
56
Добавлен:
23.03.2015
Размер:
55 Кб
Скачать
☆

Редукция конечного распознавателя лексического блока:

Шаг

Результат( блоки состояний)

Действия

0

Р0={НАЧ, КЛСЛОВО, ПРОБЕЛ 1, ИМЯ, ПРОБЕЛ 2, КЛСЛОВО, ПРОБЕЛ 3, ИМЯ, ПРОБЕЛ 4, КЛСЛОВО, ПРОБЕЛ 5, ИМЯ ,ТЧКЗПТ}

Разбиваем P0 на два блока: допустимые и отвергающие состояния

1

{ НАЧ, КЛСЛОВО, ПРОБЕЛ 1, ИМЯ, ПРОБЕЛ 2, КЛСЛОВО, ПРОБЕЛ 3, ИМЯ, ПРОБЕЛ 4, КЛСЛОВО, ПРОБЕЛ 5, ИМЯ }

{ТЧКЗПТ}

Разбиваем по входу буква

2

{НАЧ, КЛСЛОВО}

{ПРОБЕЛ 1, ИМЯ}

{ ПРОБЕЛ 2, КЛСЛОВО }

{ ПРОБЕЛ 3, ИМЯ }

{ ПРОБЕЛ 4, КЛСЛОВО }

{ ПРОБЕЛ 5, ИМЯ }

{ТЧКЗПТ}

1. Разбиваем по входу цифра

2. Разбиваем по входу цифра

3. Разбиваем по входу двоеточие

4. Разбиваем по входу тчкзпт

3

{НАЧ }

{ КЛСЛОВО }

{ ПРОБЕЛ 1 }

{ ИМЯ }

{ ПРОБЕЛ 2 }

{ КЛСЛОВО }

{ ПРОБЕЛ 3}

{ ИМЯ }

{ ПРОБЕЛ 4 }

{ КЛСЛОВО }

{ ПРОБЕЛ 5 }

{ ИМЯ }

{ТЧКЗПТ}

Разбиваем по входу тчкзпт

Примитивные процедуры обрабатывающего автомата

№ п

Процедура

Семантика

0

Да

Остановить обработку и допустить цепочку

1

Нет

Остановить обработку и отвергнуть цепочку

2

Обработать

Добавить входной символ к значению текущей лексемы

3

Лексема (класс)

Увеличить счетчик лексем на 1, установить заданный класс текущей лексемы

Процедуры переходов обрабатывающего автомата лексического блока

Действие

Семантика

1

Лексема(if); Обработать;

2

Обработать;

3

Лексема(имя); Обработать;

4

Обработать;

5

Лексема(then); Обработать;

6

Обработать;

7

Лексема(имя); Обработать;

8

Лексема(идентифик); Обработать;

9

Обработать;

10

Лексема(else); Обработать;

11

Обработать;

12

Лексема(имя); Обработать;

13

Лексема(идентифик); Обработать;

14

Лексема(ТЧКЗПТ); Обработать;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]