Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Задачи лексического анализа.pdf
Скачиваний:
18
Добавлен:
12.01.2020
Размер:
470.53 Кб
Скачать

Задачи лексического анализа

Теперь каждая дуга в ДС может выглядеть так:

Рис. 1. Вид дуги в ДС

Смысл ti прежний – если в состоянии A очередной анализируемый символ совпадает с ti для какого-либо i = 1, 2 ,... n, то осуществляется переход в состояние B; при этом необходимо выполнить действия D1, D2, ... ,Dm.

Лексический анализатор для М-языка

Вход лексического анализатора – символы исходной программы на М-языке; результат работы – исходная программа в виде последовательности лексем (их внутреннегопредставления).

Лексический анализатор для модельного языка будем писать в два этапа: сначала построим диаграмму состояний с действиями для распознавания и формирования внутреннего представления лексем, а затем по ней напишем программу анализатора.

Первый этап: разработка ДС

Представление лексем: все лексемы М-языка разделим на несколько классов; классы пронумеруем:

служебные слова – 1,

ограничители – 2,

константы (целые числа) – 3,

идентификаторы – 4.

Внутреннее представление лексем – это пара (номер_класса, номер_в_классе).

Номер_в_классе – это номер строки в таблице лексем соответствующего класса.

Соглашение об используемых переменных, типах и функциях

1. Вводим переменные:

buf – буфер для накопления символов лексемы;

c – очередной входной символ;

d – переменная для формирования числового значения константы;

TW – таблица служебных слов М-языка;

TD – таблица ограничителей М-языка;

TID – таблица идентификаторов анализируемой программы;

TNUM – таблица чисел-констант, используемых в программе.