Rippler — Compilador de C¶
O Rippler é um compilador de C desenvolvido como projeto acadêmico na disciplina de Compiladores 1. Seu objetivo é transformar código-fonte C em código executável passando por todas as fases clássicas de um compilador moderno.
Pipeline de Compilação¶
| # | Fase | Status |
|---|---|---|
| 01 | Análise Léxica | Concluída |
| 02 | Análise Sintática | Em desenvolvimento |
| 03 | Análise Semântica | Planejada |
| 04 | Representação Intermediária | Planejada |
| 05 | Geração de Código | Planejada |
Estrutura do Projeto¶
src/
├── lexer/ # Análise Léxica (scanner, tokens, regras)
│ ├── scanner.rs
│ ├── tokens/
│ └── rules/
├── parser/ # Análise Sintática
├── analyser/ # Análise Semântica
├── codegen/ # Geração de Código
└── common/ # Utilitários compartilhados
├── errors/
├── input/
└── utils/
Tecnologias¶
| Componente | Tecnologia | Justificativa |
|---|---|---|
| Linguagem | Rust | Segurança de memória e sistema de tipos expressivo |
| Leitura de arquivo | memmap2 | Memory-mapped I/O para arquivos grandes |
| Testes | Rust built-in | Testes unitários com #[test] |
Recuperação de Erros¶
O Rippler adota a estratégia de error recovery em cada fase: ao encontrar um erro, o compilador registra o diagnóstico e continua processando o restante do código. Isso permite que múltiplos erros sejam reportados em uma única execução.