gudleifr писал(а):
(Очевидно, поиск сообщения ложится под Ваш вариант поиска, за исключением наличия не одного поля связи, а двух, но вот парсирование из цикла полностью выпадает)
и опять я вас не понимаю 8(
какая разница, сколько полей связи? Все устройство поиска должно быть скрыто в конкретном словаре.
Разбор вполне себе производится в цикле.
gudleifr писал(а):
А при распознавании C-подобного текста, поиск годится обычный, а вот парсирование должно производится явно не по пробелам.
выше была ссылка на пример разбора текста без пробелов,
повторюсь.
gudleifr писал(а):
У Мура еще страшнее: он допускал возвращение на парсирование остатка лексемы.
это не страшее, это логичнее, и я так делал, когда пробелов нет, а есть необходимость разбирать разные там скобки, точки с запятой и прочее подобое. Собственно для этого ваш WORD должен возвращать не только выделенную строку но и код разделителя (либо строку с ним, если разделитель многосимвольный).
gudleifr писал(а):
Так, что надо сильно думать над границами применения всей этой лабуды... или писать под каждую новую задачу новый вариант INTERPRET : на этом этапе ищем в словаре, на этом - по регулярному выражению, здесь - на диске, здесь - грамматический разбор...
смысл как раз в том, чтобы не писать каждый раз свой INTERPRET, а пользоваться стандартным.
Тогда, один словарь распознает числа, другой регулярные выражения, третий отображает содержимое каталога - при наличии в контексте необходимых словарей все превращается в привычные слова и остается управляемым за счет управления контекстом.
gudleifr писал(а):
И не будет ли написание отдельных процедур off_quest приводить к куче малопонятного кода (как в случае углов) и конфликтам контекстов?
не понял, причем тут понятность кода? есть единый интерфейс, его можно использовать для распознавания чисел в различных форматах, в том числе и углов. За контекстом приходится следить в любом случае, однако это достаточно просто и удобно.