diff --git a/fontes/formatadores/delegua.ts b/fontes/formatadores/delegua.ts index 0bd5a5c0..85a53d79 100644 --- a/fontes/formatadores/delegua.ts +++ b/fontes/formatadores/delegua.ts @@ -208,7 +208,9 @@ export class FormatadorDelegua implements VisitanteComumInterface { } visitarDeclaracaoImportar(declaracao: Importar) { - throw new Error('Método não implementado.'); + this.codigoFormatado += `${' '.repeat(this.indentacaoAtual)}importar(`; + this.formatarDeclaracaoOuConstruto(declaracao.caminho); + this.codigoFormatado += `)`; } visitarDeclaracaoPara(declaracao: Para): any { @@ -665,6 +667,9 @@ export class FormatadorDelegua implements VisitanteComumInterface { case 'FuncaoDeclaracao': this.visitarDeclaracaoDefinicaoFuncao(declaracaoOuConstruto as FuncaoDeclaracao); break; + case 'Importar': + this.visitarDeclaracaoImportar(declaracaoOuConstruto as Importar); + break; case 'Isto': this.visitarExpressaoIsto(declaracaoOuConstruto as Isto); break; diff --git a/testes/formatadores/formatador-delegua.test.ts b/testes/formatadores/formatador-delegua.test.ts index 223785b9..5a46357c 100644 --- a/testes/formatadores/formatador-delegua.test.ts +++ b/testes/formatadores/formatador-delegua.test.ts @@ -254,4 +254,20 @@ describe('Formatadores > Delégua', () => { // console.log(resultado); expect(linhasResultado).toHaveLength(10); }); + + it('Importar', () => { + const resultadoLexador = lexador.mapear( + [ + "var dm = importar('@designliquido/delegua-matematica')var m = importar('matematica') dm.raizQuadrada(9) // Imprime 3", + ], + -1 + ); + + const resultadoAvaliacaoSintatica = avaliadorSintatico.analisar(resultadoLexador, -1); + const resultado = formatador.formatar(resultadoAvaliacaoSintatica.declaracoes); + const linhasResultado = resultado.split(sistemaOperacional.EOL); + + console.log(resultado); + expect(linhasResultado).toHaveLength(3); + }); });