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

3.1 Структура текста программы

BEKUS.PAS

BL_LEKS.PAS

Рис 2. Структура текста в программе

3.2 Алгоритмы реализации модулей 3.2.1 Блок транслитерации

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

Обработка входной цепочки заключается в выполнении транслитерации - формировании цепочки лексем вида ("символ цепочки", "класс символа цепочки"). Во время распознавания, данный автомат отвергает все символьные цепочки, содержащие символы, которые заведомо не удовлетворяют формам Бэкуса-Наура из условия задачи (например, буквы кириллицы, символы @,#, и др.).

В таблице 1 приведена спецификация транслитератора для распознавания символьной цепочки.

Символы

Класс

a..z, A..Z

Буква

0..9

Цифра

=

Равно

тчкзпт

+, -

знак

Двоеточие

пробел

Пробел

другие

Ошибка

Табл. 1 Транслитерация символьной цепочки

3.2.2 Лексический блок

Выполняя работу этого блока программа сначала проверяет на наличие ошибок в Если ошибки будут найдены то она выводит сообщение о найденной ошибки и завершает работу блока и переходит к следующему.

Если ошибки не будут найдены то начинается выполнение блока.

Запускается цикл по длине строки (длина строки определяется в главной программе и записывается в переменную к), и определяется что за символ находится в этой цепочке.

Например, если символ - это буква, то понятно, что это будет либо идентификатор, либо ключевое слово, либо подпрограмма. Если цифра - то либо идентификатор, либо целое, либо вещественное число. Так и с остальными символами. Пробелы в этом блоке игнорируются, переходя на очередной виток цикла

Соседние файлы в папке Полина отчет