Pular para conteúdo

Estrutura

A documentação do compilador foi organizada de forma modular para facilitar a navegação, manutenção e evolução do projeto ao longo do desenvolvimento da disciplina.

A estrutura do projeto está dividida em componentes responsáveis pelas diferentes etapas do compilador, incluindo análise léxica, análise sintática, testes automatizados e documentação.

Organização de Diretórios

.
├── docs/                 # Documentação do projeto (GitPages)
├── src/                  # Código-fonte principal do compilador
│   ├── lexer/            # Arquivos do analisador léxico (Flex)
│   ├── parser/           # Arquivos do analisador sintático (Bison)
│   ├── include/          # Bibliotecas e headers auxiliares
│   └── main.c            # Arquivo principal do compilador
├── tests/                # Casos de teste automatizados
├── scripts/              # Scripts auxiliares de execução e testes
├── Makefile              # Automação de compilação do projeto
├── README.md             # Documentação principal
└── .gitignore            # Arquivos ignorados pelo Git

Componentes Principais

docs/

Responsável pela documentação do projeto hospedada no GitHub Pages.
Contém páginas de arquitetura, planejamento, evolução, testes e instruções de execução.


src/

Diretório principal do compilador.

lexer/

Contém os arquivos do analisador léxico desenvolvidos com Flex, responsáveis pela identificação e tokenização dos elementos da linguagem.

parser/

Contém os arquivos do analisador sintático desenvolvidos com Bison, responsáveis pela validação gramatical da linguagem.

include/

Armazena bibliotecas auxiliares, definições compartilhadas e estruturas utilizadas pelo compilador.

main.c

Arquivo responsável pela inicialização e execução do compilador.


tests/

Contém os arquivos de entrada utilizados para validar o comportamento do compilador durante o desenvolvimento.

Os testes são organizados para garantir:

  • Verificação léxica
  • Verificação sintática
  • Casos válidos
  • Casos inválidos
  • Regressão de funcionalidades

scripts/

Diretório destinado a scripts auxiliares para:

  • Execução automática de testes
  • Compilação
  • Limpeza de arquivos temporários
  • Automação do fluxo de desenvolvimento

Makefile

Responsável pela automação da compilação do projeto, permitindo gerar o compilador e executar comandos auxiliares de forma padronizada.

Exemplo:

make
make test
make clean

Estrutura Evolutiva

A organização do projeto foi planejada para permitir crescimento gradual conforme novas etapas do compilador forem implementadas, incluindo:

  • Árvore sintática abstrata (AST)
  • Análise semântica
  • Tabela de símbolos
  • Geração de código intermediário
  • Otimizações
  • Geração de código final

Histórico de Versões

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