Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

лаба2 с единым запуском #4

Open
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

nybc4ik
Copy link
Owner

@nybc4ik nybc4ik commented Jan 12, 2024

Лабораторная для более удобной проверки.
Необходимо скачать и запустить всего один файл без ввода чего-либо, это значительно упростит проверку.

@nybc4ik nybc4ik requested a review from TonitaN January 12, 2024 09:25
@TonitaN
Copy link
Collaborator

TonitaN commented Jan 18, 2024

Скинула Марии сообщение о проблеме с выносом дистрибутивности.
В модуле рандомизации сразу несколько проблем:

  • звёздочка всегда применяется только к букве, и параметр звёздная высота отсутствует
  • альтернативы всегда левоассоциативны (не может быть альтернативы в правом аргументе альтернативы)
  • вообще в целом получается не древесная, а списочная структура, перечисляющая сконкатенированные буквы под итерацией, которые последовательно связаны альтернативой. Из-за этого не удалось нормально протестировать модификатор Марии.

@TonitaN
Copy link
Collaborator

TonitaN commented Feb 4, 2024

Оптимизатор не оптимизирует к SSNF...

((a*b*)*c*)*

@TonitaN
Copy link
Collaborator

TonitaN commented Feb 4, 2024

Сначала не заметила, что смотрела старую версию. Но и в новой списочная структура осталась, нет возможности соединить два или больше скобочных выражения. Генератор нужен всё-таки нормальный.
И да, звёздная высота - это не то, сколько звёздочек может идти подряд в регулярке. Мария, объясните вашему коллеге, прошу вас...

Теперь генератор может генерировать подобные регулярки: a(a(a|a)**c**b)**a  или b**a(b|a**a**a)
@nybc4ik
Copy link
Owner Author

nybc4ik commented Feb 7, 2024

Постарался переписать генератор, а так же исправил звёздную высоту

@TonitaN
Copy link
Collaborator

TonitaN commented Feb 10, 2024

  1. Генерируются регулярки с дисбалансом типа такой a|ca**b**c**a(bb
  2. Какова звёздная высота здесь? b(((c(c**c)**)**)**(c**(b**|a((a(a**a)))))) Генерировалась с параметром stars = 2

Начал писать новый генератор,  на данном этапе не хватает нормальной генерации звёздной высоты, надо доделать. В целом работает исправно. Пример работы:
регулярка номер:  0   bbcccbcbba
регулярка номер:  1   (cc|c)cc(aab|ac)
регулярка номер:  2   cabaaba(c|ba)
регулярка номер:  3   bacbac(cb|a)a**
регулярка номер:  4   acccaaccac
регулярка номер:  5   (bbc|caa)(cb|ca)
регулярка номер:  6   ((bcc|ca)|((b|c)|(a|b)))b
регулярка номер:  7   (c|c)((ab|cb)|(b|ba))a
регулярка номер:  8   cbcab(c|a)(ca|a)
регулярка номер:  9   acabbaabcc
Необходимо дальнейшее тестирование работоспособности лабы, надеюсь к вечеру понедельника закончу
Примерные регулярные выражения (параметры: звёздная высота = 2, max len regex = 15 )
регулярка номер:  0   (aba|ca)**((ca|acb)|(ac|ac))**b
регулярка номер:  1   (cacacccc|bcbbabb)**
регулярка номер:  2   aa**abbcccbc**acb(b|b**)
регулярка номер:  3   acccbbca**b**cb(a|a)(c|b)
регулярка номер:  4   (aaa|bcc)bbba**a**cbac
регулярка номер:  5   ((((b|c)|(c|b))*|(c*|cc**))|((b|aa)|(bb|a)))b**a**
регулярка номер:  6   c**ccaabbb**bbcbcab
регулярка номер:  7   (bccbbb|ccaaac)**(aa*|b**)
регулярка номер:  8   ((bb*|ab*)|((b|a)|(a|c))**)cacbbaa
регулярка номер:  9   ((ca|bb)*|(cb|cbc)**)bcbbbc
@TonitaN TonitaN mentioned this pull request Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants