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

Простенький редактор грамматик #21

Open
nefanov opened this issue Apr 28, 2022 · 3 comments
Open

Простенький редактор грамматик #21

nefanov opened this issue Apr 28, 2022 · 3 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@nefanov
Copy link
Owner

nefanov commented Apr 28, 2022

Is your feature request related to a problem? Please describe.
Писать грамматику под каждый паттерн полностью накладно.

Describe the solution you'd like
Я сейчас пишу простенький редактор грамматик -- https://github.com/nefanov/sandbox/blob/main/pathfinder/grammar_editor.py
С синтаксическим сахаром вроде 'repeatable' и 'optional' в правых частях правил. Идея следующая -- вы описываете структуру патерна как лес правил (из поддеревьев возможных деревьев вывода пути с паттерном). Потом вызывается "finalize" и грамматика "достраивается" до НФХ в ослабленной форме.

Describe alternatives you've considered
Я неоднократно говорил о возможных альтернативах

Additional context
Add any other context or screenshots about the feature request here.

@nefanov nefanov pinned this issue Apr 28, 2022
@nefanov nefanov added enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers labels Apr 28, 2022
@nefanov
Copy link
Owner Author

nefanov commented May 11, 2022

Добавил 1-ю версию во front, вместе с CLI-инструментом.

@nefanov
Copy link
Owner Author

nefanov commented May 11, 2022

TO DO:

Добавить команды в commander для нерегулярных правил.

Улучшить документацию

@nefanov
Copy link
Owner Author

nefanov commented May 11, 2022

finalize сейчас достраивает дерево грамматики вверх от некоторой сентенциальной формы. Это ограничение, не страшно, с одной стороны, с другой -- ограничивает класс обрабатываемых КС-языков, которыми осмысленно задавать паттерны. Тем не менее, теперь можно утверждать, что паттерн -- это сентенциальная форма (ну хотя бы не просто строка терминалов). Получили какое-никакое обобщение.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant