Pular para conteúdo

Execução

Esta seção descreve o processo de compilação e execução do compilador desenvolvido utilizando Flex e Bison.

Pré-requisitos

Antes de executar o projeto, é necessário possuir as seguintes ferramentas instaladas no sistema:

  • GCC
  • Make
  • Flex
  • Bison

Instalação das Dependências

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install gcc make flex bison

Windows

No Windows, recomenda-se utilizar o ambiente MSYS2 ou MinGW.

Instalação utilizando MSYS2

  1. Instale o MSYS2:
  2. https://www.msys2.org/

  3. Abra o terminal MSYS2 UCRT64.

  4. Instale as ferramentas necessárias:

pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S make
pacman -S flex
pacman -S bison
  1. Verifique se as ferramentas foram instaladas corretamente:
gcc --version
make --version
flex --version
bison --version

Compilação do Projeto

A compilação do compilador é realizada através do Makefile.

Execute o comando:

make

Durante o processo de compilação:

  • O Flex gera o analisador léxico
  • O Bison gera o analisador sintático
  • O GCC realiza a compilação final do projeto

Estrutura Gerada

Após a compilação, alguns arquivos são gerados automaticamente:

lex.yy.c        # Código gerado pelo Flex
parser.tab.c    # Código gerado pelo Bison
parser.tab.h    # Definições de tokens
compiler        # Executável final do compilador

No Windows, o executável pode ser gerado como:

compiler.exe

Execução do Compilador

Linux

./compiler

Ou utilizando um arquivo de entrada:

./compiler < arquivo.c

Windows

compiler.exe

Ou utilizando um arquivo de entrada:

compiler.exe < arquivo.c

Execução dos Testes

Os testes automatizados podem ser executados através do comando:

make test

Os testes presentes na pasta tests/ serão executados automaticamente para validar:

  • Reconhecimento léxico
  • Estrutura sintática
  • Tratamento de erros
  • Casos válidos e inválidos

Limpeza dos Arquivos Gerados

Para remover os arquivos gerados durante a compilação, utilize:

make clean

Esse comando remove:

lex.yy.c
parser.tab.c
parser.tab.h
compiler
compiler.exe

Fluxo Geral de Execução

Código Fonte (.c)
        ↓
Analisador Léxico (Flex)
        ↓
Geração de Tokens
        ↓
Analisador Sintático (Bison)
        ↓
Validação Gramatical
        ↓
Saída do Compilador

Observações

  • O projeto possui suporte para Linux e Windows.
  • Recomenda-se utilizar Ubuntu no Linux e MSYS2 no Windows.
  • Todas as dependências devem estar corretamente instaladas antes da compilação.
  • Os testes automatizados auxiliam na validação contínua do compilador durante o desenvolvimento.

Histórico de Versões

Versão Data Descrição Autor(es)
1.0 30/04/2026 Criação e texto desenvolvido. Arthur Fernandes