Este projeto consiste na implementação de um Analisador Léxico baseado em Autômatos Finitos Determinísticos (AFD). O software foi desenvolvido como parte da avaliação da disciplina de Linguagens Formais do curso de Ciência da Computação, simulando a identificação de tokens através de uma matriz de transição de estados.
Você pode utilizar o analisador diretamente pelo navegador, sem necessidade de instalação:
https://emilybalestrin.github.io/AnalisadorLexico
(Caso prefira rodar localmente, siga as instruções na seção "Como Executar" abaixo).
O analisador funciona como uma máquina de estados que processa a entrada do usuário caractere por caractere.
-
Definição de Tokens: O usuário cadastra palavras válidas (ex:
casa,abacaxi,livro). O algoritmo converte essa lista dinamicamente em uma Matriz de Transição ($M[estado, simbolo]$ ). -
Reconhecimento: Ao digitar na área de teste, o autômato transita entre os estados (
$q0, q1...$ ) conforme os símbolos inseridos. -
Validação: O caractere Espaço atua como separador. Ao digitá-lo, o sistema verifica se o estado atual é um Estado Final.
- ✅ Aceito: Token reconhecido (adicionado ao histórico como válido).
- ❌ Rejeitado: Token inválido ou não finalizado.
-
Alfabeto: Suporte exclusivo para letras minúsculas (
$a-z$ ). - Interface Visual: Exibição da matriz de estados e destaque da transição ativa em tempo real.
- Separador: Uso de espaço em branco para delimitar e validar tokens.
- SvelteKit (Vite): Framework para interface reativa e performance.
- HTML5 / CSS3: Estrutura e estilização (Dark Mode).
- JavaScript: Lógica de construção do AFD e gerenciamento de estado.
Caso queira baixar o código e rodar na sua máquina (necessário Node.js):
-
Clone o projeto:
git clone git@github.com:EmilyBalestrin/AnalisadorLexico.git cd analisador-lexico -
Instale as dependências:
npm install
-
Inicie o servidor:
npm run dev
-
Acesse: Abra
http://localhost:5173/no seu navegador.
- Emily L. Balestrin
- Júlia F. Levandoski