Skip to content

pollykon/FLT_lab5

Repository files navigation

FLT_lab5

Задание

Cоставить атрибутную грамматику для описания контекстно-свободных грамматик (с атрибутами isReachable, isGenerating, isNonEmpty) и реализовать генератор случайных грамматик в пользовательском синтаксисе.

Дополнительное задание

Анализ грамматики:

  • Построить описание параметризированной грамматики
  • Определить, к какому классу (LL(k), LR(k)) относится грамматика
  • Проанализировать, при каком выборе значений токенов грамматика теряет свои свойства

Дополнительное задание лежит в файле additional/lab_5_dop.pdf

Атрибутная грамматика: additional/attribute_grammar.pdf

Документация в Latex: documentation.pdf

Установка

git clone https://github.com/pollykon/FLT_lab5
cd FLT_lab5
pip install -r requirements.txt

Запуск

Чтобы сгенерировать грамматику создайте конфиг-файл с параметрами конфигурации, либо используйте готовый, и запустите файл generator.py, направив поток входных данных из конфига.

python generator.py < configs/default.yaml

Можно запустить генератор с проверкой пользовательского синтаксиса на LL(1). Для этого используйте ключ --check-ll1

python generator.py --check-ll1 < configs/default.yaml

Более подробная документация в latex

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published