Указанные особенности языка разбираются на этапе семантического анализа. Удобно процедуры семантического анализа совместить с процедурами синтаксического анализа. На практике это означает, что в рекурсивные функции встраиваются дополнительные контекстно-зависимые проверки. Например, на этапе лексического анализа в таблицу TID заносятся данные обо всех лексемах- идентификаторах, которые встречаются в тексте программы. На этапе синтаксического анализа в ту же таблицу заносятся данные о типе идентификатора (поле type) и о наличии для него описания (поле declared).
Для контроля повторных объявлений, создаётся вектор пар значений idents. Перед тем, как записать новую переменную в этот вектор, проверяется наличие идентификатора в этом списке.
Оглавление
Введение 4
Постановка задачи 5
Порядок выполнения 6
Грамматика языка 7
Разработка лексического анализатора 9
Разработка синтаксического анализатора 11
Семантический анализ 12
Тестирование программы 13
Заключение 16
Список использованной литературы 17
Приложение 1 18
Приложение 2 22
Приложение 3 25
Недавно просмотренные материалы