Генерация LR(k)-автомата и таблиц ACTION/GOTO с проверкой конфликтов. Если грамматика не относится к классу LR(k), бросается ParsingError. Значение k задаётся в конструкторе (по умолчанию k=1).
parser_lr0.py— классLRkParserc методамиfitиpredict.cli.py— чтение ввода в формате задания и вывод результатов, первый аргумент командной строки — значениеk.tests/— unit-тесты: положительный сценарий и случай с конфликтом.
python -m LR.cli < input.txt # k=1
python -m LR.cli 2 < input.txt # k=2python -m unittest discover -s LR/tests