Здравствуйте, Kswapd, Вы писали:
P>>spirit — это либа, предоставляющая такие возможности (embedded EBNF), которые просто невозможно достичь иными способами.
K>Да вот только не EBNF она предоставляет, а нечитаемую пародию на него.
Дело скорее вкуса. Достаточно быстро адаптируешься, а для задач, под которые, как я считаю он более всего подходит (см. ниже) — большего и не надо.
K>На практике от использования спирита возникает больше проблем, чем решается.
Ниша спирита — небольшие встроенные парсеры, в местах где не хватает регекспов.
Если пытаться написать на нем парсер плюсов — проблемы несомненно будут =)
K>Самое оптимальное почти во всех случаях — сделать прототип на ANTLR и написать рабочий парсер вручную по мотивам сгенерированного кода.
Это ваш опыт. Возможно вам так удобнее. Мой опыт — либо полностью автогенереный код, куда смотреть вообще не нужно, либо достаточно спирита.
То что я видел "по мотивам сгенерированного кода" — нечитаемое говно, единственное "достоинство" которого — нет шаблонов =)