Entender o processo de análise léxica a partir da utilização de autômatos finitos para o reconhecimento de linguagens regulares e a aplicação prática dos conceitos teóricos vistos em aula.
git
python
behave
tox
(opcional)automata_2024_t2
automata
com as seguintes funções:
load_automata(filename: str): -> tuple(Q, Sigma, delta, q0, F)
process(automata, word: List[String]): -> Dict[String:String]
ACEITA
, caso a palavra seja aceita pelo autômato; REJEITA
, caso a palavra seja rejeitada pelo autômato; e INVÀLIDA
, caso a palavra seja inválida, ou seja, contenha um símbolo que não está no alfabeto.convert_to_dfa(automata) -> tuple(Q, Sigma, delta, q0, F)
<lista de símbolos do alfabeto, separados por espaço (' ')>
<lista de nomes de estados>
<lista de nomes de estados finais>
<nome do estado inicial>
<lista de regras de transição, com "origem símbolo destino">
a b
q0 q1 q2 q3 q4
q4
q0
q0 a q0
q0 b q0
q0 & q1
q1 a q2
q2 a q3
q2 b q3
q3 a q4
q3 b q4
Exception
).behave
ou o utilitário tox
, que podem ser instalados em um ambiente virtual do Python.&
é utilizado para representar a palavra vazia, logo, ele deve ser sempre aceito como válido na descrição do autômato, mesmo que não esteja especificado como um símbolo do alfabeto ($\Sigma$).O aluno deverá criar um pull request contra o repositório original do trabalho. O título do pull request deve conter o nome do aluno e o corpo do pull request pode conter um comentário sobre o trabalho.
Uma vez criado o pull request ele pode ser atualizado a qualquer momento, até a data limite de entrega.
Na data limite, o pull request receberá um label de AVALIADO
, um comentário com o resultado da avaliação, será fechado, e não poderá mais ser alterado.
No LEX
, todos os alunos do grupo devem inserir, até a data limite, o link para o pull request de entrega do trabalho.
A data máxima de entrega é dia 4 de maio de 2024.
src
pode ser modificado.