Refactor module registration methods and move interface to separate files - #21
Conversation
Refatora os métodos registrarModulo* de compilador-llvm.ts para fontes/registro-modulos/ usando mixins, reduzindo o tamanho do arquivo principal. Move a interface EntradaFuncaoModulo para seu próprio arquivo e altera propriedades de private para protected.
There was a problem hiding this comment.
Pull request overview
Refatora o registro de módulos nativos do CompiladorLLVM, extraindo os antigos métodos registrarModulo* para fontes/registro-modulos/ e movendo a interface EntradaFuncaoModulo para um arquivo dedicado, reduzindo o tamanho e acoplamento de compilador-llvm.ts.
Changes:
- Extraiu os registros de módulos (matemática, física, etc.) para arquivos em
fontes/registro-modulos/e criou um barrel export (index.ts). - Moveu
EntradaFuncaoModuloparafontes/interfaces/entrada-funcao-modulo.tse atualizou imports. - Passou diversos membros/métodos de
privateparaprotectede conectou os registradores via atribuição emCompiladorLLVM.prototype.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| fontes/registro-modulos/matematica.ts | Novo registrador do módulo matematica extraído do compilador. |
| fontes/registro-modulos/fisica.ts | Novo registrador do módulo fisica. |
| fontes/registro-modulos/estatistica.ts | Novo registrador do módulo estatistica. |
| fontes/registro-modulos/arquivos.ts | Novo registrador do módulo arquivos. |
| fontes/registro-modulos/csv.ts | Novo registrador do módulo csv. |
| fontes/registro-modulos/json.ts | Novo registrador do módulo json. |
| fontes/registro-modulos/http.ts | Novo registrador do módulo http. |
| fontes/registro-modulos/criptografia.ts | Novo registrador do módulo criptografia. |
| fontes/registro-modulos/dados.ts | Novo registrador do módulo dados. |
| fontes/registro-modulos/index.ts | Barrel export dos registradores extraídos. |
| fontes/interfaces/entrada-funcao-modulo.ts | Nova localização da interface EntradaFuncaoModulo. |
| fontes/compilador-llvm.ts | Removeu métodos antigos, adicionou imports, declarou “mixins” e atribuiu funções ao prototype; ajustou visibilidades. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| private tipoEstruturaVetor: llvm.StructType = null; | ||
| private pilhaBlocosLoop: Array<{ blocoSaida: llvm.BasicBlock; blocoRetorno: llvm.BasicBlock }> = []; | ||
| private contemExcecoes: boolean = false; | ||
| protected mapaModulos: Map<string, Map<string, EntradaFuncaoModulo>> = new Map(); |
There was a problem hiding this comment.
mapaModulos foi alterado para protected, mas os registradores extraídos em fontes/registro-modulos/* acessam this.mapaModulos fora da classe. Em TypeScript, membros protected só são acessíveis dentro da classe ou subclasses, então isso tende a quebrar a compilação. Solução: tornar mapaModulos public (ou expor um método público para registrar módulos e manter o mapa encapsulado).
| protected mapaModulos: Map<string, Map<string, EntradaFuncaoModulo>> = new Map(); | |
| public mapaModulos: Map<string, Map<string, EntradaFuncaoModulo>> = new Map(); |
Refatora os métodos registrarModulo* de compilador-llvm.ts para fontes/registro-modulos/ usando mixins, reduzindo o tamanho do arquivo principal. Move a interface EntradaFuncaoModulo para seu próprio arquivo e altera propriedades de private para protected.