📦 Sprint 8 — Recursos Avançados do Portugol (18/05 - 24/05)
| Matrícula | Nome | Nick no GitHub | 📸 |
|---|---|---|---|
| x | x | x |
Objetivo:
- Implementar recursos
senaose,escolha,caso,fimcaso, gerando código C válido com blocosswitch/case.
🧪 Funcionalidades Concluídas
🧩 Palavras-chave adicionadas
senaoseescolhacasofimcaso
🚀 Como testar as novas funcionalidades ?
4. 🧪 Executar os testes automatizados
Para executar os testes automatizados, siga os passos abaixo:
-
Execute o comando:
make test -
O sistema irá:
- Compilar o compilador se necessário
- Executar cada arquivo
.pgda pastatestes/inputs - Gerar o código C correspondente em
build/test_outputs - Comparar o resultado com o arquivo esperado em
testes/expected - Exibir o resultado:
- ✅ Indica que o teste passou
- ❌ Indica que o teste falhou, mostrando as diferenças
4.1 🧩 Adicionar novos casos de teste
Para adicionar um novo caso de teste:
- Crie um arquivo de entrada na pasta
testes/inputscom extensão.pg -
Exemplo:
testes/inputs/meu_teste.pg -
Crie o arquivo com a saída esperada na pasta
testes/expectedcom o mesmo nome base e extensão.expected -
Exemplo:
testes/expected/meu_teste.expected -
Execute
make testpara verificar se o compilador gera o resultado esperado
Nota: O compilador gera os arquivos de saída na pasta build/saida.c durante o teste, e esses são copiados para build/test_outputs/nome_do_teste.c para verificação.
🧹 Limpando arquivos gerados
Caso necessário, você pode executar o comando abaixo para remover todos os arquivos gerados automaticamente (como lex.yy.c, y.tab.c, y.tab.h, saida.c, etc.):
make clean
make clean
✅ Critérios de aceitação
| Critério | Descrição | Status |
|---|---|---|
| 🔤 Testes | Implementar casos de testes para cada um dos recursos | ✅ |
| 🔤 Testes2 | Todos testes devem estar funcionando | ✅ |
📁 Arquivos modificados
lex.l: ..
🔚 Conclusão
A Sprint 8 foi concluída com sucesso, consolidando a implementação dos recursos senaose, escolha, caso e fimcaso, com a geração de código C equivalente utilizando estruturas switch/case, ampliando significativamente o suporte a comandos condicionais no compilador Portugol-C.