Замена "{,}" на соответствующий

Issue #379 new
Григорий Терехов created an issue

Реализовать правило: "Эквивалентная замена квантификатора "{,}" на соответствующий"

Comments (19)

  1. Oleg Sychev repo owner

    Не всегда работает. Причем зависит не от квантификатора, а от выражения почему-то. Я ввел a{0,1}{1,}{0,} Она предложила мне два квантификатора преобразовать и остановилась на a{0,1}+* почему-то последний в ? не предлагает преобразовать. Хотя сам по себе работает.

    А не работает она потому, что + в этом случае определяется как признак possessive quantifier, а не дополнительный квантификатор.

  2. Oleg Sychev repo owner

    Еще аналогичная ситуация с знаком вопроса, который, упрощенный таким образом, может стать признаком ленивости квантификатора. a{1,}{0,1} у вас преобразуется к ленивому квантификатору вместо двух квантификаторов.

    Самое удивительное, что при этом для a{0,1}+ не показывается никаких совпадений, но при нажатии кнопки "Apply and next" правило упрощения двух квантификаторов срабатывает....

  3. Oleg Sychev repo owner

    Кстати суть бага я понял, глянув на текстовое описание...

  4. Oleg Sychev repo owner

    Я думаю в ситуации когда при переводе в ? или + дочерним узлом является тоже квантификатор, надо добавлять группировку.

    P.S. Возможно нам надо иметь настройку, в какую сторону действует это правило. Потому что с точки зрения некоторых людей {0,1} может быть читабельнее, чем ?

  5. Oleg Sychev repo owner

    Еще не преобразуется a{,1} хотя это тоже самое что a{0,1} - правило вообще не замечает такого варианта.

  6. Григорий Терехов reporter

    Что касается a{,1}, то у меня в дереве это 5 чарсетов...

  7. Oleg Sychev repo owner

    Насчет a{,1} согласен, перепутал диалекты. В PCRE правда нет варианта без цифры перед запятой...

  8. Oleg Sychev repo owner

    Ввел a{0,}{1,}{0,1} - выдало правило, но при попытке его применить не происходит ничего...

  9. Григорий Терехов reporter

    Это тоже готово, утром залью изменение на сервер

  10. Oleg Sychev repo owner

    Ну вы откровенно перебрали. Звездочка например ничего не означает после квантификатора и не требует введения группировки даже если внутри другой квантификатор.

  11. Григорий Терехов reporter

    Добавлен учет ленивых и ревнивых квантификаторов

  12. Oleg Sychev repo owner

    Про звездочку нереализовано. Если звездочка находится справа от квантификатора это нормально трактуется, она не признак ленивости или ревнивости; а скобки у вас таки добавляются...

  13. Григорий Терехов reporter

    Вроде реализовано. Может я чего не понял...

  14. Oleg Sychev repo owner

    Звездочка может и работает, зато надпись у меня выглядит так: "Квантификатор %квантификатор% эквивалентен %квантификатор%"

  15. Oleg Sychev repo owner

    А на edu.vstu.org обновили? Кеши чистили? У меня не поправилась, по крайней мере по-русски...

  16. Log in to comment