Здравствуйте, vdimas, Вы писали:
V>Elkhound
V>http://scottmcpeak.com/elkhound/
V>V>We present a hybrid algorithm that chooses between GLR and ordinary LR on a token-by-token basis, thus achieving competitive performance for determinstic input fragments.
V>На однозначных цепочках они получили скорость LALR(1), который, в свою очередь, работает со скоростью LL(1)/LR(0). А более быстрых алгоритмов парсинга не существует. Не реализаций (руки могут быть и кривыми), а именно алгоритмов.
О, а вот это довольно интересно. Генератор произвольных парсеров на C++, способный сгенерировать парсер C++ кода. И кстати вся грамматика C++ у них там задаётся одним простеньким файлом:
http://scottmcpeak.com/elkhound/sources/elsa/cc.gr — не похоже на десятки человеко-лет, которыми меня тут пугали, говоря о записи грамматики C++ для Нитры. Правда из описания невозможно понять быстродействие данного продукта... Но в любом случае очень интересное решение.
Кстати, проект не остановился в своём развитие, как может показаться по датам на той страничке, а превратился в это
https://github.com/dsw/oink-stack/ — обрёл реально полезное применение. )