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