Синтаксический анализатор - отвечает за выявление и проверку синтаксических конструкций входного языка. Задачи: 1. Найти и выделить основные синтаксические конструкции и проверить правильность каждой синтаксической конструкции. 2. Представить синтаксические конструкции в виде удобном для дальнейшей обработки. Синтаксический анализатор воспринимает выход лексического анализатора и разбирает его в соответствии с грамматикой входного языка. В основе СА лежит распознаватель на основе грамматики входного языка. Как правило синтаксические конструкции языков программирования описываются с помощью КС-грамматики. Распознаватель дает ответ на вопрос - принадлежит или нет цепочка входных символов заданному языку. Это основная задача СА. Кроме того, СА должен иметь некий выходной язык с помощью которого информация о разобранной конструкции передается на следующие базы компиляции. Одним из таких представлений является дерево разбора. Распознаватель для СА строится на основе какого либо класса КС-грамматик. LL-грамматика (левостороннее порождение) LR-грамматика (правостороннее порождение). Схема: ![Схема синтаксического анализатора](09_01.%20Схема%20синтаксического%20анализатора.png) Синтаксический анализатор управляется программой. Действия определяются символом начальным символом стека. В любом типе анализаторов существует условия таблицы разбора при котором исходная строка принимается.