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