Здравствуйте, WolfHound, Вы писали:
EP>>Или ты имеешь в виду что у парсера больше информации чем у итератора, и из-за этого ему требуется меньше проверок? WH>Если между парсером и текстом будет стоять итератор то обращение к таблице будет на каждый символ. WH>Ибо парсер работает с символами. WH>А если записать данные непосредственно в таблицу мемоизации парсера, то обращения к ней будут только в тех местах, где есть вызов этих правил.
Понятно, то есть у парсера больше необходимой информации.
А нельзя ли использовать нужный тип итератора в зависимости от того какие правила заданны? Или там всё равно будет недостаточно информации?
WH>Как фильтр точно не вариант. Ибо тормоза. WH>Отдельным проходом можно. Но тут тоже не всё хорошо.
Без существенной модификации парсера — тут либо то, либо то.
Причём отдельный проход — это ведь тоже тормоза. Правда если весь файл помещается в кэш (и не вымывается из него) — то от второго прохода не так много тормозов.
Кстати, если проход отдельный, и не хочется залезать в charset, то можно просто расширить кодировку — это избавит от необходимости смотреть в таблицу при парсинге.