Книга: Системное программное обеспечение. Лабораторный практикум
Реализация синтаксического распознавателя
Реализация синтаксического распознавателя
Для реализации синтаксического распознавателя воспользуемся программными модулями, созданными при выполнении лабораторной работы № 3.
Модуль SyntSymb (листинг П3.7, приложение 3), который реализует функционирование алгоритма «сдвиг-свертка» для грамматик операторного предшествования, можно использовать, не внося в него никаких изменений, так как он не зависит от входного языка. Требуется перестроить только модуль SyntRulе, внеся в него новые правила грамматики и новую матрицу операторного предшествования. Полученный в результате программный модуль представлен в листинге П3.6 в приложении 3 (обратите внимание на функцию MakeSymbolStr, которая возвращает имена нетерминальных символов для правил остовной грамматики!).
На этом построение синтаксического распознавателя закончено. Структуры данных, используемые этим распознавателем и порождаемые в результате его работы, были рассмотрены при выполнении лабораторной работы № 3.
- Построение распознавателя
- Таблица 5.3. Множества крайних левых и крайних правых символов. Шаг 1
- Таблица 5.4. Множества крайних левых и крайних правых символов. Результат
- Таблица 5.5. Множества крайних левых и крайних правых терминальных символов. Шаг 1
- Таблица 5.6. Множества крайних левых и крайних правых терминальных символов. Результат
- Преобразование грамматики, модификация языка и другие способы разрешения конфликтов
- Таблица 5.7. Матрица операторного предшествования
- Построение остовной грамматики
- Реализация синтаксического распознавателя
- Построение распознавателя
- 9.4.1. Реализация графа в виде матрицы смежности
- 9.1. Проблема синтаксического анализа
- Реализация языка SQL
- 9.2.1. Более строгая реализация стека
- 9.2 Реализация массива ftAID на платформе Windows NT
- Реализация семафоров в Linux
- 16.8. Реализация отношений в Core Data
- 10.16. Реализация с использованием семафоров System V
- Реализация очередей отложенных действий
- Реализация класса бинарных деревьев
- Реализация меню