Здравствуйте, WolfHound, Вы писали:
Потратил время на просмотр GLR-темы.
Accent
http://accent.compilertools.net/Accent.html
Описание алгоритма парсинга:
http://accent.compilertools.net/Entire.html
Они там распараллеливают не LR(0), а LR(k).
Elkhound
http://scottmcpeak.com/elkhound/
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.
На однозначных цепочках они получили скорость LALR(1), который, в свою очередь, работает со скоростью LL(1)/LR(0). А более быстрых алгоритмов парсинга не существует. Не реализаций (руки могут быть и кривыми), а именно алгоритмов.
ЧТД. Собсно, у меня были именно такие же наблюдения и я тебе об этом же и говорил — сначала я оптимизировал свою кухню для максимума быстродействия при единственном варианте (на однозначных цепочках). Потом погонял на конкретных своих данных и соптимизировал структуры данных для случая 2-х одновременно прогоняемых вариантов. В твоей предметной области можно остановиться на "вылизывании" случая одной цепочки.
В общем, я ХЗ что ты там читал про GLR и когда.
Не вижу я никакого "ужаса", который ты приписываешь GLR.
==========
Поискал еще упоминания — многие конторы уже успешно сдохли, например много упоминаний VisualParse++, но скачать неоткуда.
Т.е. такое ощущение, что парсерописательское направление не особо востребовано.
Из живых и активно поддерживаемых на сегодня остались только бесплатные, типа ANTRL, GoldParsingSystem, Coco/R и т.д.
Все платные давно умерли.