Tutorial: Implemente o Compilador Lexical
Bem-vindo! Este é um tutorial prático e progressivo onde você aprende implementando.
Novo aqui? Comece em COMECE_AQUI.md — guia de orientação completo (15 min).
🎯 O que você vai construir
Um compilador lexical funcional para Minerês em 4 fases:
- Automato.py (60-90 min) - Reconhecer tokens individuais
- Lexer.py (60-90 min) - Tokenizar fluxos de entrada
- Main.py (30 min) - Interface de linha de comando
- Testes (30 min) - Validação completa
📈 Progresso
0% ════════════════════════════════════ 100%
│
├─ Fase 1: Automato ✅ → test_automato.py passa
├─ Fase 2: Lexer ✅ → test_lexer.py passa
├─ Fase 3: Main.py ⏳ → CLI pendente
└─ Fase 4: Testes ⏳ → expandir integracao/qualidade
📚 Fases do tutorial
Fase 1: Automato.py →
- Entender AFD (Autômato Finito Determinístico)
- Carregar arquivo
automatos/automato.txt - Implementar reconhecimento de tokens
- Resultado: Reconhecer entrada individual ✅
Fase 2: Lexer.py →
- Usar Automato para tokenizar fluxos
- Rastreamento linha/coluna
- Palavras-chave vs identificadores
- Resultado: Analisador léxico funcional ✅
Fase 3: Main.py →
- CLI para testar seu compilador
- Aceitar arquivo ou string
- Exibição formatada de tokens
- Resultado esperado:
python main.py programa.txt
Fase 4: Testes →
- Testes unitários
- Testes de integração
- Validação completa
- Resultado atual: validação parcial concluída (automato + lexer)
⏱️ Tempo total
- Leitura + Planejamento: 15 min
- Implementação: 3-4 horas
- Debugging + Testes: 45 min
- Total: 4-6 horas dedicadas
🚀 Comece agora
Opção 1 - Guiado completo (recomendado para primeiro estudo): → COMECE_AQUI.md
Opção 2 - Direto ao código: → Fase 1: Automato.py
📖 Recursos
- Arquitetura — Visão técnica do projeto
- Elementos — Vocabulário Minerês completo
- README — Overview do projeto