Здравствуйте, Аноним, Вы писали:
А>Начну с того, что чаще всего парсеры не пишутся руками, а судя по приведенному коду, это именно тот случай- парсер написан с помощью генератора парсеров. Т.е. создается формальная грамматика языка, по которой затем спец. программа генерит исходник анализатора. Делается так по нескольким причинам: А>1. Генератор осуществляет проверку грамматики на возможность построения парсера, т.к. не для каждой грамматики можно создать парсер. Если ты будешь все делать руками, то можно допустить ошибку и твой парсер будет анализировать неправильно. А>2. Парсер работающий на автоматах быстрее. А>3. Удобство- как ты сам заметил анализировать код парсера- занятие не доля слабонервных, зато если посмотреть на формальную грамматику- все намного понятнее.
А как же заполняется код внутри состояний. Он не похож на машинно генерированный.
И что делают, если надо расширить синтаксис, код-то внутри уже написан?