A biblioteca não possui nenhuma dependência externa; para utilizar sua gramática livre de contexto basta importar o módulo context_free.grammar.
As funcionalidades implementadas foram as seguintes:
- Conversão para forma normal de chomsky
- Detecção de epsilon produções, produções cíclicas e recursão à esquerda
- Importação e Exportação de arquivos .cfg
- Remoção de recursão à esquerda
- Fatoração à esquerda
- Geração de analisador sintático LL(1) a partir de gramática fatorada e livre de recursão à esquerda
- Análise sintática de palavras à partir de um analisador sintático
O construtor da classe ContextFreeGrammar espera o nome de um arquivo presente no diretório cfgs. Este arquivo deve seguir o padrão .cfg, que é descrito por uma gramática livre de contexto - spec.cfg - dentro do mesmo diretório.
Para executar os testes de unidade, digite:
$ python3 test.py