Господа, я опять с извечными проблемами: parser generator vs. handwritten???
Я почитал плюсы и минусы, проблемы, всё вот это. Но пока всё равно на распутье.
С одной стороны, вроде как индустриальный стандарт это генераторы. Многие умеют в error recovery итд. Но они идут тяжело и надо инвестировать в умение писать граматики.
С другой стороны, как парсер вручную написать я знаю и можно начать хоть сейчас + его тоже многие используют.
Вопрос: стоит ли инвестировать в изучение какого-либо генератора и его использование? Или стоит начать с простого ручного парсера и постепенно его улучшать?
С ручным у меня есть опасения что его сложность можеть сильно возрасти по сравнению с использованием генератора.
С генератором есть опасения, что я уткнусь в какое-то ограничение, которое не позволит мне двигаться дальше))
> И могут ли на выбор повлиять свойста языка, который я хочу сделать?
Безусловно. В основном, "выбор" рукописных парсеров для C/C++ определяется тем, что грамматика у них "вычурная" и ни в какие ворота LL/LR не влазит. Лучшие так не делать.
Отсюда и обратная закономерность: выбор подхода повлияет на грамматику языка. Известный пример – Python, грамматика которого в существенной степени определялась ограничениями LL(1) парсера.