Ввести "несъедающие" переходы в начале и конце автомата (новый формат)
Originally reported on Google Code with ID 114
Необходимо добавить поле, которое будет выставлять в true если это пересечение ассерта
вне зоны действия основного регекса (до или после). Иного способа обойти ассерты в
этом месте нет. По первому впечатлению такие переходы в начале и конце автомата проблем
доставлять не должны - но предложение подумать о разных алгоритмах (пересечение, эквивалентность
и т.д.) и высказать сомнения/возражения если есть. При генерации совпадения (подсказки)
проблем точно составлять не должен.
Распределение работ:
Сычев - добавляет поле;
Стрельцов - добавляет его обработку в вывод в dot - изменить стиль линии на пунктир;
Колесов - добавляет его во входной язык
Вроде в других местах оно не используется (Валерий, можете задуматься о доработке своего
пересечения - оно явно нуждается в этом поле...).
Reported by oasychev
on 2012-04-05 15:29:08
Comments (13)
-
reporter -
``` Свою часть сделал. ```
Reported by `vostreltsov` on 2012-06-08 08:33:53
-
reporter ``` А что за проблемы она вызывает? Зачем код закомментирован? Ведь в обычных автоматах таких переходов быть просто не должно. Они образуются в специфических случаях (например начало/конец выражения с \b) ```
Reported by `oasychev` on 2012-06-09 12:49:25
-
reporter ``` Валерий, ответьте пожалуйста на предыдущий комментарий ```
Reported by `oasychev` on 2012-09-25 08:37:51
-
``` Проблемы он не вызывает, просто они пока не очень нужны. Как понадобятся - раскомментирую. ```
Reported by `vostreltsov` on 2012-09-25 16:27:38
-
reporter ``` Я не понял, зачем его комментировать - он и так сейчас выполняться не должен. Зато при появлении таких переходов выполняться автоматически начнет, не надо будет вспоминать что его надо раскомментировать... ```
Reported by `oasychev` on 2012-09-29 17:51:52
-
reporter Сейчас у Лепилкиной переходы то появятся...
Reported by
oasychev
on 2013-07-25 22:40:56 -
reporter Добавляю сюда Лепилкину
Reported by
oasychev
on 2013-09-06 13:04:07 - Labels removed: Milestone-Release2.2 -
reporter Вот это issue по идее используется для работы над несъедающими (пока \w \W - но потенциально любыми) переходами в начале и конце автомата.... Прошу отписывать здесь о прогрессе...
Reported by
oasychev
on 2014-07-10 18:02:38 -
Reported by
vostreltsov
on 2014-09-24 13:06:17 - Status changed:Fixed
-
Вообще я так понимаю, что несъедающие переходы для матчинга не очень-то и нужны. Если они как-то помогают структурно, при модификациях автомата - пускай будут. Для матчинга ведь достаточно теги помещать в нужное место, как в том примере \Wa\W, где первый переход несъедающий, и строка " a ". Открывающий тег для всего регекса должен быть либо в mergedafter opentags первого перехода, либо в opentags перехода a. Вообще говоря, если Лена правильно расставляет теги, должны работать все подвыражения кроме 0, для которого вычисляется частичное совпадение на основании startpos и length, но это можно исправить.
Reported by
vostreltsov
on 2014-12-06 10:24:08 - Status changed:InProgress
-
reporter Вы предлагате, я так понимаю, решать мысль о границах совпадения (и генерации) чисто по нулевым тегам (открывающему и закрывающему), а данные о том, съедающие ли теги использовать только при построении автомата. Мысль, безусловно, интересная и перспективная. Тогда предлагаю написать простейший код, выставляющий нулевые теги в итоговом автомате по данным границам между "съедающими" и "несъедающими" переходами перед началом матчинга/генерации. Разумеется, только если код Лены подключен по конфигу, в противном случае такие переходы могут болтаться посреди автомата...
Reported by
oasychev
on 2014-12-07 23:01:32 -
reporter Проблема решена 0-тегами.
Reported by
oasychev
on 2015-03-01 22:31:02 - Status changed:WontFix
- Log in to comment
``` Поле добавил, Валерий и Дмитрий - дело за вами... ```
Reported by `oasychev` on 2012-05-13 20:28:52