Систематизация ситуаций в которых генерация след. символа с места прерывания совпадения невозможна

Issue #70 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 70 ``` Существуют ситуации, когда генерация след. символа с места прерывания невозможна: ассерты, которые плохо взаимодействуют с окружением; обратные ссылки на подмаски которые не имели совпадений (из-за альтернатив например) и т.д.

Прежде всего необходимо составить список таких ситуаций и решить, что с ними делать... ```

Reported by `oasychev` on 2011-11-28 21:18:00

Comments (5)

  1. Oleg Sychev reporter

    ``` Я так понимаю, что возможно всего два варианта: 1) продолжение надо генерировать не с точки конца совпадения, а ранее по тексту, т.к. по текущей ветке закончить совпадение невозможно (ассерты, обратные ссылки и т.д.) 2) следующего символа нет, отсутствие совпадения вызвано нарушением ассерта $ в КОНЦЕ выражения, так что символы надо не добавлять, а удалять..

    Кто-нибудь может предложить еще? ```

    Reported by `oasychev` on 2012-01-18 10:32:47

  2. Oleg Sychev reporter

    ``` Первая часть реализована.

    Вместо поля next (помечено устаревшим) в результаты матчинга внесены поля (см. последние коммиты): correctending - содержит корректное завершение строки (не обязательно полное, можно и один символ) correctendingstart - индекс начала корректного завершения - если не установлен, выставляется равным концу совпадения correctendingcomplete - true если добавление correctending завершает матчинг.

    Это не значит, что вы обязаны сразу все генерировать. Начать можно с того, что помещать следующий символ в correctending вместо next. Потом совершенствовать генерацию полного совпадения....

    Решение ситуации 2 будет скоро - добавится еще одно поле для сигнализации о такой ситуации... ```

    Reported by `oasychev` on 2012-01-18 10:44:35

  3. Oleg Sychev reporter

    ``` Кстати, проверку next в кросс-тестере также стоит заменить на correctending[0] Сами тесты можно не трогать, только ассерт... ```

    Reported by `oasychev` on 2012-01-18 13:29:05

  4. Oleg Sychev reporter

    ``` Теперь продолжение может генерироваться с любого символа, т.к. оно возвращается как объект результатов матчинга. ```

    Reported by `oasychev` on 2012-03-09 19:40:39 - Status changed: `Fixed`

  5. Log in to comment