Integrar
Conectar o scanner Flex ao parser Bison por meio de parser.tab.h.
FGA0003 — Compiladores 1 · Semana 4 · Aula prática
Conectar o scanner Flex ao parser Bison por meio de parser.tab.h.
Aceitar expressões aritméticas com precedência e parênteses.
Executar entradas válidas, inválidas e casos de divisão por zero.
Atualizar README, testes e repositório da equipe.
Recupere o scanner da fase léxica e organize os arquivos antes de iniciar o parser.
src/scanner.lREADME.mdExecute git pull antes de editar e preserve o cabeçalho institucional nos arquivos.
scanner.l reconhece lexemas e atribui valores a yylval.
O scanner devolve tokens declarados pelo parser.
parser.y verifica a sequência conforme a gramática.
A regra aceita calcula ou registra a estrutura reconhecida.
Implemente primeiro uma gramática pequena, gere o parser e só depois amplie.
Prólogo C, %union, %token, %type e precedência.
Produções e ações semânticas entre os dois separadores %%.
main, yyerror e funções adicionais após o segundo %%.
Mantenha as mensagens curtas, objetivas e úteis para diagnosticar a entrada.
Adapte o scanner para incluir o cabeçalho gerado e retornar os tokens declarados no parser.
Altere uma pequena parte de parser.y ou scanner.l.
Execute Bison e Flex novamente.
Use GCC com -Wall e -Wextra.
Execute um caso que valide a alteração.
Valide a precedência, os parênteses e a distinção entre erros léxicos e sintáticos.
3 + 4 → Resultado: 7
3 + 4 * 2 → Resultado: 11
(3 + 4) * 2 → Resultado: 14
20 / 5 - 1 → Resultado: 3
Registre dependências, comandos, gramática, testes e limitações.
Execute git status e remova artefatos gerados que não devam ser versionados.
git add . · git commit -m "Implementa parser inicial com Bison" · git push
Mostre uma entrada válida, uma inválida e a precedência funcionando.
Conclua com Flex e Bison integrados, expressões válidas reconhecidas, erros diagnosticados, testes reproduzíveis e README atualizado. Códigos da disciplina: https://github.com/sergioaafreitas/COMP1