Ввести "несъедающие" переходы в начале и конце автомата (новый формат)

Issue #114 wontfix
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 114

Необходимо добавить поле, которое будет выставлять в true если это пересечение ассерта
вне зоны действия основного регекса (до или после). Иного способа обойти ассерты в
этом месте нет. По первому впечатлению такие переходы в начале и конце автомата проблем
доставлять не должны - но предложение подумать о разных алгоритмах (пересечение, эквивалентность
и т.д.) и высказать сомнения/возражения если есть. При генерации совпадения (подсказки)
проблем точно составлять не должен.

Распределение работ:
Сычев - добавляет поле;
Стрельцов - добавляет его обработку в вывод в dot - изменить стиль линии на пунктир;
Колесов - добавляет его во входной язык

Вроде в других местах оно не используется (Валерий, можете задуматься о доработке своего
пересечения - оно явно нуждается в этом поле...).

Reported by oasychev on 2012-04-05 15:29:08

Comments (13)

  1. Oleg Sychev reporter

    ``` Поле добавил, Валерий и Дмитрий - дело за вами... ```

    Reported by `oasychev` on 2012-05-13 20:28:52

  2. Valeriy Streltsov

    ``` Свою часть сделал. ```

    Reported by `vostreltsov` on 2012-06-08 08:33:53

  3. Oleg Sychev reporter

    ``` А что за проблемы она вызывает? Зачем код закомментирован? Ведь в обычных автоматах таких переходов быть просто не должно. Они образуются в специфических случаях (например начало/конец выражения с \b) ```

    Reported by `oasychev` on 2012-06-09 12:49:25

  4. Oleg Sychev reporter

    ``` Валерий, ответьте пожалуйста на предыдущий комментарий ```

    Reported by `oasychev` on 2012-09-25 08:37:51

  5. Valeriy Streltsov

    ``` Проблемы он не вызывает, просто они пока не очень нужны. Как понадобятся - раскомментирую. ```

    Reported by `vostreltsov` on 2012-09-25 16:27:38

  6. Oleg Sychev reporter

    ``` Я не понял, зачем его комментировать - он и так сейчас выполняться не должен. Зато при появлении таких переходов выполняться автоматически начнет, не надо будет вспоминать что его надо раскомментировать... ```

    Reported by `oasychev` on 2012-09-29 17:51:52

  7. Oleg Sychev reporter
    Сейчас у Лепилкиной переходы то появятся...
    

    Reported by oasychev on 2013-07-25 22:40:56

  8. Oleg Sychev reporter
    Добавляю сюда Лепилкину
    

    Reported by oasychev on 2013-09-06 13:04:07 - Labels removed: Milestone-Release2.2

  9. Oleg Sychev reporter
    Вот это issue по идее используется для работы над несъедающими (пока \w \W - но потенциально
    любыми) переходами в начале и конце автомата....
    Прошу отписывать здесь о прогрессе...
    

    Reported by oasychev on 2014-07-10 18:02:38

  10. Valeriy Streltsov
    Вообще я так понимаю, что несъедающие переходы для матчинга не очень-то и нужны. Если
    они как-то помогают структурно, при модификациях автомата - пускай будут.
    Для матчинга ведь достаточно теги помещать в нужное место, как в том примере \Wa\W,
    где первый переход несъедающий, и строка " a ". Открывающий тег для всего регекса должен
    быть либо в mergedafter opentags первого перехода, либо в opentags перехода a.
    
    Вообще говоря, если Лена правильно расставляет теги, должны работать все подвыражения
    кроме 0, для которого вычисляется частичное совпадение на основании startpos и length,
    но это можно исправить.
    

    Reported by vostreltsov on 2014-12-06 10:24:08 - Status changed: InProgress

  11. Oleg Sychev reporter
    Вы предлагате, я так понимаю, решать мысль о границах совпадения (и генерации) чисто
    по нулевым тегам (открывающему и закрывающему), а данные о том, съедающие ли теги использовать
    только при построении автомата. Мысль, безусловно, интересная и перспективная. 
    
    Тогда предлагаю написать простейший код, выставляющий нулевые теги в итоговом автомате
    по данным границам между "съедающими" и "несъедающими" переходами перед началом матчинга/генерации.
    Разумеется, только если код Лены подключен по конфигу, в противном случае такие переходы
    могут болтаться посреди автомата...
    

    Reported by oasychev on 2014-12-07 23:01:32

  12. Oleg Sychev reporter
    Проблема решена 0-тегами.
    

    Reported by oasychev on 2015-03-01 22:31:02 - Status changed: WontFix

  13. Log in to comment