Este projeto converte expressões regulares em Autômatos Finitos Determinísticos (DFA) e permite testar sentenças com o DFA gerado.
FA.java
: Implementa a classe Finite Automaton (FA) que manipula a conversão de expressões regulares para autômatos finitos e outras operações relacionadas.RegexToDFA.java
: Contém a lógica principal para ler a expressão regular e as sentenças a partir de arquivos, converter a expressão para DFA, testar as sentenças e salvar o DFA em formato JFLAP.run_tests.sh
: Script de shell para criar arquivos de teste e executar testes automaticamente.
- JDK 11 ou superior.
Para compilar o projeto, use o comando javac
:
javac FA.java RegexToDFA.java
Este comando irá gerar os arquivos .class
necessários para executar o programa.
Para ver a ajuda e os detalhes do uso:
java RegexToDFA --help
Para executar o programa, forneça o caminho para o arquivo de sentenças e o arquivo de regex:
java RegexToDFA <arquivo-de-sentencas> <arquivo-de-regex>
java RegexToDFA sentences.txt regex.txt
Um script run_tests.sh
está incluído para criar arquivos de teste e executar testes automaticamente. Para usá-lo:
- Navegue até a pasta do script.
- Execute o script:
./run_tests.sh
O arquivo de regex deve conter uma única linha com a expressão regular a ser convertida.
Exemplo (regex.txt
):
(a+b)c
O arquivo de sentenças deve conter uma sentença por linha.
Exemplo (sentences.txt
):
ac
bc
abac
O programa exibirá no console se cada sentença foi aceita ou rejeitada pelo DFA gerado a partir da expressão regular. Além disso, um arquivo .jff
(JFLAP) será gerado contendo a definição do DFA.
Você pode baixar o arquivo JAR na seção de releases do repositório no GitHub. Seção de Releases