Re[12]: PEG парсеры
От: Тот кто сидит в пруду Россия  
Дата: 29.07.10 17:05
Оценка:
Здравствуйте, pzhy, Вы писали:

P>Дефайн, этот конечно. Но если код не ваш, то да, менять опасно.


Да падало оно без этого дефайна пару раз просто, ЕМНИП.

P>Но в вашем коде парсера, большая часть кода не представлена, если она писалась, не только для этого, то конечно игра стоит свечь.


Да там всего что-то в районе 1100 строк получилось, из них наверное треть — комменты в виде старого спирит-парсера.

P>Если нет и неудовлетворяет спирит, то есть много других библиотек для ХМЛ. Но для более сложных, в плане грамматики, или контестного вызова функторов, мне кажется писать свой велосипед себе дороже. ИМХО.


Не-не-не. Требовалась полная совместимость с парсером из boost.serialization — чтобы после его замены все, что пользователи успели насохранять нашей программой, прочиталось. Поэтому сторонние библиотеки сразу отпали. Свое писалось пару дней и дня три — неделю отлаживалось — на поиск подходящей библиотеки я бы наверняка больше потратил, без каких-либо гарантий достижения нужного результата.
А контекстный вызов функторов делается при таком подходе на раз, я же как раз пример привел. Что касается сложных грамматик или быстрого разбора, то не о них речь — спирит же заявляется как recursive descent parser generator. Ну а рекурсивный спуск и без него тривиально пишется.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.