Skip to content

Pump length #169 #220#243

Open
Robby-the-paladin wants to merge 30 commits into
mainfrom
PumpLength
Open

Pump length #169 #220#243
Robby-the-paladin wants to merge 30 commits into
mainfrom
PumpLength

Conversation

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator

Исправлены баги:

  • баг с неправильным определением префиксов для конечных регулярных выражений
  • баг с определением длины накачки по первому префиксу
  • баг с отсечением по первому не накачиваемому инфиксу
    Добавлен шаблон по накачке.

@xendalm
Copy link
Copy Markdown
Collaborator

xendalm commented Jan 25, 2023

Все еще не могу дождаться результата
#169 (comment)

@xendalm
Copy link
Copy Markdown
Collaborator

xendalm commented Jan 25, 2023

При накачке (((a)|a)*)* выдает Regex::from_string() ERROR почему-то
(a)*(|)(a|a)*((a|a)*)* эту регулярку не принял

@xendalm
Copy link
Copy Markdown
Collaborator

xendalm commented Jan 25, 2023

Для a*a цикл поиска заходит слишком далеко и не останавливается

@xendalm xendalm marked this pull request as draft January 25, 2023 20:40
@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

a*a работает. (a)*(|)(a|a)*((a|a)*)* эту регулярку не принимает парсер, потому что парсер в принципе не принимает конструкции (|).

@Robby-the-paladin Robby-the-paladin marked this pull request as ready for review January 26, 2023 03:00
@Robby-the-paladin Robby-the-paladin changed the title Pump length (#169, #220) Pump length #169 #220 Jan 26, 2023
@mathhyyn mathhyyn changed the base branch from logger-pain to logger-tables January 26, 2023 19:10
Copy link
Copy Markdown
Collaborator

@TonitaN TonitaN left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ошибка на regex.from_string наводит на мысль, что надо бы поискать рефал-стиль (его и искать не надо, он на поверхности)

X = PumpLength {(ab|bb)*(aa|ab)} !!

Или даже так:

X = PumpLength {aaa} !!

А так длина накачки равна 1 (???):

X = PumpLength.Linearize {aaa} !!

После рефакторинга алфавита брать префиксы строк - не лучшая идея.

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

Robby-the-paladin commented Jan 27, 2023

Теперь префиксы накачиваются по alphabet_symbol, а не по char.

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 27, 2023

Но почему-то всё ещё рефал-стиль падает.

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

#243 (review)
На этих 3 тестах выдаёт 3, 4, 4 соответственно. (((a)|a)*)* на этом тесте (|) конструкция возникает на этапе производной, после выделения a, поэтому падает

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

Теперь работает на тесте (((a)|a)*)*.

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 27, 2023

#243 (review) На этих 3 тестах выдаёт 3, 4, 4 соответственно. (((a)|a)*)* на этом тесте (|) конструкция возникает на этапе производной, после выделения a, поэтому падает

Почему же у меня было так, если у вас всё ок?
rendered_report.pdf

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 27, 2023

И вот так:

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

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

#243 (comment)
До merge с semdet log, была обработка по string префиксам и в конце мог добавляться eps символ в скобках, после merge обработка через alphabet symbol prefix и сейчас не падает.

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 27, 2023

Регулярка:
(aa | bb)(ba)∗ | a∗b
Куда-то делся накачиваемый префикс bba, хотя он не содержит других накачиваемых префиксов.

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 27, 2023

Регулярка

a(b |)(aa∗ |)∗(b | a)

Нашлись префиксы aaa и aba, но почему-то префикс abb проигнорирован в логах (длина накачки причём 4, т.е. вычислена с его учётом)

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 28, 2023

Рефал-стиль передаёт привет:

    Регулярное выражение:
	eps,2a|eps,1a%template_oldregex

	Длина накачки:
    5%template_pumplength1 % founded pump len

Я даже не знаю, чисто ли это ваша проблема, или всех, у кого есть какие-то элементы рефал-стиля в коде. Сейчас пойду проверять 1-неоднозначность.

@TonitaN
Copy link
Copy Markdown
Collaborator

TonitaN commented Jan 28, 2023

Пока не обнаружено багов, кроме как в логах и с тем, что у всех лагает (у меня оно в рендеринге тоже лагало). Принимаю как исправление, но нужно поправить логи (накачиваемые префиксы) и ещё потестировать когда-нибудь.

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

Robby-the-paladin commented Jan 28, 2023

#243 (comment)
Префикс abb, как и префикс aab не накачиваются, но любое слово длины 4 или больше на такие префиксы не начинаются, поэтому того что накачиваются префиксы aaa и aba достаточно.

@Robby-the-paladin
Copy link
Copy Markdown
Collaborator Author

#243 (comment)
Регулярка (aa | bb)(ba)∗ | a∗b распознаётся интерпретатором как альтернатива (aa | bb)(ba)∗ и a∗b в таком случае префикса bba нет в языке. Для регулярки (aa|bb)((ba)*|a*b) накачиваемые префиксы aaa, aaba, bba, bbba

Base automatically changed from logger-tables to main April 19, 2023 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

4 participants