Open Robby-the-paladin opened 1 year ago
Все еще не могу дождаться результата https://github.com/StarikTenger/Chipollino/issues/169#issuecomment-1325129054
При накачке (((a)|a)*)*
выдает Regex::from_string() ERROR
почему-то
(a)*(|)(a|a)*((a|a)*)*
эту регулярку не принял
Для a*a
цикл поиска заходит слишком далеко и не останавливается
a*a
работает. (a)*(|)(a|a)*((a|a)*)*
эту регулярку не принимает парсер, потому что парсер в принципе не принимает конструкции (|).
Теперь префиксы накачиваются по alphabet_symbol, а не по char.
Но почему-то всё ещё рефал-стиль падает.
https://github.com/StarikTenger/Chipollino/pull/243#pullrequestreview-1271979255
На этих 3 тестах выдаёт 3, 4, 4 соответственно. (((a)|a)*)*
на этом тесте (|) конструкция возникает на этапе производной, после выделения a, поэтому падает
Теперь работает на тесте (((a)|a)*)*
.
#243 (review) На этих 3 тестах выдаёт 3, 4, 4 соответственно.
(((a)|a)*)*
на этом тесте (|) конструкция возникает на этапе производной, после выделения a, поэтому падает
Почему же у меня было так, если у вас всё ок? rendered_report.pdf
И вот так:
Chipollino :-)
opening file test.txt
file opened
| running "X = PumpLength {a*} !!"
| | scanning
| | | building function sequence
| | | | PumpLength (type: {Regex} -> Int)
| |
| | Running declaration...
| | | Evaluating expression "(PumpLength {a*})"
| | | | evaluating function sequence
| | | | | Evaluating expression "{a*}"
| | | | | running function "PumpLength"
| | | | function sequence evaluated
| | assigned to X
|
| running "X = PumpLength {aaa} !!"
| | scanning
| | | building function sequence
| | | | PumpLength (type: {Regex} -> Int)
| |
| | Running declaration...
| | | Evaluating expression "(PumpLength {aaa})"
| | | | evaluating function sequence
| | | | | Evaluating expression "{aaa}"
| | | | | running function "PumpLength"
Regex::from_string() ERROR
Regex.cpp за 26.01.23 , 22:09
https://github.com/StarikTenger/Chipollino/pull/243#issuecomment-1406003072 До merge с semdet log, была обработка по string префиксам и в конце мог добавляться eps символ в скобках, после merge обработка через alphabet symbol prefix и сейчас не падает.
Регулярка:
(aa | bb)(ba)∗ | a∗b
Куда-то делся накачиваемый префикс bba
, хотя он не содержит других накачиваемых префиксов.
Регулярка
a(b |)(aa∗ |)∗(b | a)
Нашлись префиксы aaa
и aba
, но почему-то префикс abb
проигнорирован в логах (длина накачки причём 4, т.е. вычислена с его учётом)
Рефал-стиль передаёт привет:
Регулярное выражение:
eps,2a|eps,1a%template_oldregex
Длина накачки:
5%template_pumplength1 % founded pump len
Я даже не знаю, чисто ли это ваша проблема, или всех, у кого есть какие-то элементы рефал-стиля в коде. Сейчас пойду проверять 1-неоднозначность.
Пока не обнаружено багов, кроме как в логах и с тем, что у всех лагает (у меня оно в рендеринге тоже лагало). Принимаю как исправление, но нужно поправить логи (накачиваемые префиксы) и ещё потестировать когда-нибудь.
https://github.com/StarikTenger/Chipollino/pull/243#issuecomment-1407180890
Префикс abb
, как и префикс aab
не накачиваются, но любое слово длины 4 или больше на такие префиксы не начинаются, поэтому того что накачиваются префиксы aaa
и aba
достаточно.
https://github.com/StarikTenger/Chipollino/pull/243#issuecomment-1407167410
Регулярка (aa | bb)(ba)∗ | a∗b
распознаётся интерпретатором как альтернатива (aa | bb)(ba)∗
и a∗b
в таком случае префикса bba нет в языке. Для регулярки (aa|bb)((ba)*|a*b)
накачиваемые префиксы aaa
, aaba
, bba
, bbba
Исправлены баги: