исходной программы от начала до конца и преобразует его в
структурированный набор данных (таблицу лексем), в которой ключевые слова языка, идентификаторы и константы, как правило, заменяются на специально оговоренные коды, им соответствующие. Для идентификаторов и констант, кроме того, устанавливается связь между таблицей лексем и таблицей идентификаторов, которая заполняется параллельно.
Организация взаимосвязи лексического и синтаксического анализа
параллельная – лексический анализ исходного текста выполняется поэтапно так, что синтаксический анализатор, выполнив разбор очередной конструкции языка, обращается к ЛА за следующей лексемой. При этом он может сообщить информацию о том, какую лексему следует ожидать.
В этом варианте реализации ЛА
Просматривает весь текст исходной программы
один раз от начала до конца.
Таблица лексем строится полностью вся сразу,
и больше к ней компилятор не возвращается.
Всю дальнейшую обработку выполняют
следующие фазы компиляции.
В этом варианте реализации
при возникновении ошибки может
происходить «откат назад»
(для попытки выполнения анализа
текста на другой основе).
В случае успешного выполнения разбора
очередной конструкции языка
синтаксическим анализатором,
лексический анализатор
помещает найденные лексемы
в таблицу лексем
и таблицу идентификаторов и анализ
продолжается дальше в том же порядке.