Visão Geral da Arquitetura
O compilador Soyuz é escrito em Go e segue uma arquitetura modular clássica, mas otimizada para integração direta com o LSP.
Pipeline do Compilador
Section titled “Pipeline do Compilador”O fluxo de compilação segue estas etapas:
- Lexer & Parser: Transforma o código fonte em uma AST (Abstract Syntax Tree).
- Checker (Type System): Valida tipos, resolve símbolos e realiza inferência.
- Module Resolver: Gerencia dependências entre arquivos e a biblioteca padrão.
- Codegen (LLVM): Transforma a AST validada em LLVM IR.
- Runtime: Biblioteca em C que fornece suporte a paralelismo e memória.
Compartilhamento com LSP
Section titled “Compartilhamento com LSP”Diferente de compiladores tradicionais, o checker e o parser são projetados para serem resilientes a erros, permitindo que o LSP forneça diagnósticos e sugestões mesmo em código incompleto.