@designliquido/delegua 1.15.4 → 1.15.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/analisador-semantico/analisador-semantico.d.ts +2 -1
  2. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico.js +32 -4
  4. package/analisador-semantico/analisador-semantico.js.map +1 -1
  5. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  6. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +1 -0
  7. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  8. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  9. package/avaliador-sintatico/avaliador-sintatico.js +4 -1
  10. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  11. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js +1 -1
  12. package/bibliotecas/dialetos/prisma/biblioteca-global.d.ts +1 -1
  13. package/bibliotecas/dialetos/prisma/biblioteca-global.js +1 -1
  14. package/bin/package.json +1 -1
  15. package/construtos/literal.d.ts +2 -1
  16. package/construtos/literal.d.ts.map +1 -1
  17. package/construtos/literal.js +2 -1
  18. package/construtos/literal.js.map +1 -1
  19. package/estilizador/estilizador-delegua.d.ts +7 -6
  20. package/estilizador/estilizador-delegua.d.ts.map +1 -1
  21. package/estilizador/estilizador-delegua.js +9 -0
  22. package/estilizador/estilizador-delegua.js.map +1 -1
  23. package/estilizador/regras/convencao-nomenclatura.d.ts +2 -2
  24. package/estilizador/regras/convencao-nomenclatura.d.ts.map +1 -1
  25. package/estilizador/regras/fortalecer-tipos.d.ts +2 -2
  26. package/estilizador/regras/fortalecer-tipos.d.ts.map +1 -1
  27. package/estilizador/regras/fortalecer-tipos.js.map +1 -1
  28. package/estilizador/regras/paradigma-consistente.d.ts +3 -16
  29. package/estilizador/regras/paradigma-consistente.d.ts.map +1 -1
  30. package/estilizador/regras/paradigma-consistente.js.map +1 -1
  31. package/formatadores/formatador-delegua.d.ts +7 -1
  32. package/formatadores/formatador-delegua.d.ts.map +1 -1
  33. package/formatadores/formatador-delegua.js +25 -6
  34. package/formatadores/formatador-delegua.js.map +1 -1
  35. package/interfaces/estilizador/estilizador-interface.d.ts +49 -0
  36. package/interfaces/estilizador/estilizador-interface.d.ts.map +1 -0
  37. package/interfaces/{estilizador-comum-interface.js → estilizador/estilizador-interface.js} +1 -1
  38. package/interfaces/estilizador/estilizador-interface.js.map +1 -0
  39. package/interfaces/estilizador/index.d.ts +5 -0
  40. package/interfaces/estilizador/index.d.ts.map +1 -0
  41. package/interfaces/estilizador/index.js +21 -0
  42. package/interfaces/estilizador/index.js.map +1 -0
  43. package/interfaces/estilizador/opcoes-paradigma-consistente-interface.d.ts +14 -0
  44. package/interfaces/estilizador/opcoes-paradigma-consistente-interface.d.ts.map +1 -0
  45. package/interfaces/estilizador/opcoes-paradigma-consistente-interface.js +3 -0
  46. package/interfaces/estilizador/opcoes-paradigma-consistente-interface.js.map +1 -0
  47. package/interfaces/estilizador/regra-estilizacao-interface.d.ts +28 -0
  48. package/interfaces/estilizador/regra-estilizacao-interface.d.ts.map +1 -0
  49. package/interfaces/estilizador/regra-estilizacao-interface.js +3 -0
  50. package/interfaces/estilizador/regra-estilizacao-interface.js.map +1 -0
  51. package/interfaces/estilizador/violacao-estilo-interface.d.ts +26 -0
  52. package/interfaces/estilizador/violacao-estilo-interface.d.ts.map +1 -0
  53. package/interfaces/estilizador/violacao-estilo-interface.js +3 -0
  54. package/interfaces/estilizador/violacao-estilo-interface.js.map +1 -0
  55. package/interfaces/index.d.ts +1 -1
  56. package/interfaces/index.d.ts.map +1 -1
  57. package/interfaces/index.js +1 -1
  58. package/interfaces/index.js.map +1 -1
  59. package/interfaces/simbolo-interface.d.ts +2 -1
  60. package/interfaces/simbolo-interface.d.ts.map +1 -1
  61. package/interpretador/dialetos/prisma/interpretador-prisma.d.ts +1 -1
  62. package/interpretador/dialetos/prisma/interpretador-prisma.js +1 -1
  63. package/lexador/filtro-paradigma.d.ts +1 -1
  64. package/lexador/filtro-paradigma.d.ts.map +1 -1
  65. package/lexador/filtro-paradigma.js.map +1 -1
  66. package/lexador/lexador.d.ts.map +1 -1
  67. package/lexador/lexador.js +2 -0
  68. package/lexador/lexador.js.map +1 -1
  69. package/lexador/mapeamento-paradigmas.d.ts +1 -7
  70. package/lexador/mapeamento-paradigmas.d.ts.map +1 -1
  71. package/lexador/mapeamento-paradigmas.js +3 -3
  72. package/lexador/mapeamento-paradigmas.js.map +1 -1
  73. package/lexador/simbolo.d.ts +2 -1
  74. package/lexador/simbolo.d.ts.map +1 -1
  75. package/lexador/simbolo.js +2 -1
  76. package/lexador/simbolo.js.map +1 -1
  77. package/package.json +1 -1
  78. package/tipos.d.ts +8 -0
  79. package/tipos.d.ts.map +1 -0
  80. package/tipos.js +3 -0
  81. package/tipos.js.map +1 -0
  82. package/tradutores/tradutor-assemblyscript.js +1 -1
  83. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  84. package/tradutores/tradutor-elixir.d.ts +1 -1
  85. package/tradutores/tradutor-elixir.js +3 -3
  86. package/tradutores/tradutor-elixir.js.map +1 -1
  87. package/umd/delegua.js +87 -24
  88. package/interfaces/estilizador-comum-interface.d.ts +0 -85
  89. package/interfaces/estilizador-comum-interface.d.ts.map +0 -1
  90. package/interfaces/estilizador-comum-interface.js.map +0 -1
package/umd/delegua.js CHANGED
@@ -503,6 +503,10 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
503
503
  }
504
504
  }
505
505
  }
506
+ else if (declaracao.inicializador instanceof construtos_1.Chamada) {
507
+ // Chamadas de método/função podem retornar vetores.
508
+ // A validação detalhada é feita em tempo de execução.
509
+ }
506
510
  else {
507
511
  this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um vetor de elementos.`);
508
512
  }
@@ -796,6 +800,29 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
796
800
  // Verifica a condição
797
801
  return this.verificarCondicao(declaracao.condicaoEnquanto);
798
802
  }
803
+ async visitarDeclaracaoPara(declaracao) {
804
+ if (Array.isArray(declaracao.inicializador)) {
805
+ for (const inicializador of declaracao.inicializador) {
806
+ await inicializador.aceitar(this);
807
+ }
808
+ }
809
+ else if (declaracao.inicializador) {
810
+ await declaracao.inicializador.aceitar(this);
811
+ }
812
+ // O laço precisa visitar condição/incremento/corpo para registrar usos de variáveis.
813
+ if (declaracao.condicao) {
814
+ this.marcarVariaveisUsadasEmExpressao(declaracao.condicao);
815
+ await this.verificarCondicao(declaracao.condicao);
816
+ }
817
+ if (declaracao.incrementar) {
818
+ this.marcarVariaveisUsadasEmExpressao(declaracao.incrementar);
819
+ this.verificarExpressao(declaracao.incrementar);
820
+ }
821
+ for (const declaracaoCorpo of declaracao.corpo.declaracoes) {
822
+ await declaracaoCorpo.aceitar(this);
823
+ }
824
+ return Promise.resolve();
825
+ }
799
826
  visitarDeclaracaoParaCada(declaracao) {
800
827
  // Marca o vetor/dicionário como usado
801
828
  this.marcarVariaveisUsadasEmExpressao(declaracao.vetorOuDicionario);
@@ -1058,10 +1085,11 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
1058
1085
  case construtos_1.Variavel:
1059
1086
  let entidadeChamadaVariavel = chamada.entidadeChamada;
1060
1087
  const nomeFuncao = entidadeChamadaVariavel.simbolo.lexema;
1061
- // Lista de funções built-in que não precisam ser declaradas
1062
- const funcoesBuiltIn = [
1088
+ // Lista de funções embutidas que não precisam ser declaradas
1089
+ const funcoesEmbutidas = [
1063
1090
  'inteiro',
1064
1091
  'real',
1092
+ 'numero',
1065
1093
  'número',
1066
1094
  'texto',
1067
1095
  'leia',
@@ -1070,8 +1098,8 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
1070
1098
  ];
1071
1099
  // Classes/construtores geralmente começam com letra maiúscula
1072
1100
  const pareceSerClasse = nomeFuncao[0] === nomeFuncao[0].toUpperCase();
1073
- // Só verifica se a função existe se não for built-in e não parecer ser classe
1074
- if (!funcoesBuiltIn.includes(nomeFuncao) &&
1101
+ // Só verifica se a função existe se não for embutidas e não parecer ser classe
1102
+ if (!funcoesEmbutidas.includes(nomeFuncao) &&
1075
1103
  !pareceSerClasse &&
1076
1104
  !this.funcoes[nomeFuncao] &&
1077
1105
  !this.gerenciadorEscopos.buscar(nomeFuncao)) {
@@ -2318,7 +2346,10 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2318
2346
  case delegua_2.default.TEXTO:
2319
2347
  const simboloNumeroTexto = this.avancarEDevolverAnterior();
2320
2348
  const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(simboloNumeroTexto.literal);
2321
- return new construtos_1.Literal(this.hashArquivo, Number(simboloNumeroTexto.linha), simboloNumeroTexto.literal, tipoInferido);
2349
+ const delimitadorTexto = simboloNumeroTexto.tipo === delegua_2.default.TEXTO
2350
+ ? simboloNumeroTexto.delimitadorTexto
2351
+ : undefined;
2352
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloNumeroTexto.linha), simboloNumeroTexto.literal, tipoInferido, delimitadorTexto);
2322
2353
  case delegua_2.default.PARA:
2323
2354
  const simboloPara = this.avancarEDevolverAnterior();
2324
2355
  return await this.paraComoConstruto(simboloPara);
@@ -8316,7 +8347,7 @@ class AvaliadorSintaticoPrisma extends avaliador_sintatico_base_1.AvaliadorSinta
8316
8347
  inicializarPilhaEscopos() {
8317
8348
  this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
8318
8349
  this.pilhaEscopos.empilhar(new informacao_escopo_1.InformacaoEscopo());
8319
- // Registrar funções nativas (built-ins) do Prisma no escopo do parser
8350
+ // Registrar funções nativas (embutidos) do Prisma no escopo do parser
8320
8351
  // para evitar erros de variável não definida durante análise semântica
8321
8352
  this.pilhaEscopos.definirInformacoesVariavel('tipo', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('tipo', 'função', true, [
8322
8353
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('valor', 'qualquer'),
@@ -13369,11 +13400,12 @@ exports.ListaCompreensao = ListaCompreensao;
13369
13400
  Object.defineProperty(exports, "__esModule", { value: true });
13370
13401
  exports.Literal = void 0;
13371
13402
  class Literal {
13372
- constructor(hashArquivo, linha, valor, tipo = 'qualquer') {
13403
+ constructor(hashArquivo, linha, valor, tipo = 'qualquer', delimitadorTexto) {
13373
13404
  this.linha = linha;
13374
13405
  this.hashArquivo = hashArquivo;
13375
13406
  this.valor = valor;
13376
13407
  this.tipo = tipo;
13408
+ this.delimitadorTexto = delimitadorTexto;
13377
13409
  }
13378
13410
  async aceitar(visitante) {
13379
13411
  return await visitante.visitarExpressaoLiteral(this);
@@ -14999,6 +15031,7 @@ exports.Var = Var;
14999
15031
  "use strict";
15000
15032
  Object.defineProperty(exports, "__esModule", { value: true });
15001
15033
  exports.EstilizadorDelegua = void 0;
15034
+ const formatadores_1 = require("../formatadores");
15002
15035
  /**
15003
15036
  * Estilizador de código para Delégua.
15004
15037
  * Aplica transformações no AST para enforcar convenções e melhorar qualidade do código.
@@ -15225,10 +15258,18 @@ class EstilizadorDelegua {
15225
15258
  this.modoValidacao = false;
15226
15259
  return violacoesEncontradas;
15227
15260
  }
15261
+ estilizarEFormatar(declaracoes, opcoesFormatacao = {}) {
15262
+ var _a;
15263
+ const declaracoesEstilizadas = this.estilizar(declaracoes);
15264
+ const formatador = new formatadores_1.FormatadorDelegua(opcoesFormatacao.quebraLinha || '\n', (_a = opcoesFormatacao.tamanhoIndentacao) !== null && _a !== void 0 ? _a : 4, {
15265
+ delimitadorTexto: opcoesFormatacao.delimitadorTexto,
15266
+ });
15267
+ return formatador.formatar(declaracoesEstilizadas);
15268
+ }
15228
15269
  }
15229
15270
  exports.EstilizadorDelegua = EstilizadorDelegua;
15230
15271
 
15231
- },{}],125:[function(require,module,exports){
15272
+ },{"../formatadores":134}],125:[function(require,module,exports){
15232
15273
  "use strict";
15233
15274
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15234
15275
  if (k2 === undefined) k2 = k;
@@ -15642,13 +15683,23 @@ const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
15642
15683
  * Normalmente usado por IDEs, mas pode ser usado por linha de comando ou programaticamente.
15643
15684
  */
15644
15685
  class FormatadorDelegua {
15645
- constructor(quebraLinha, tamanhoIndentacao = 4) {
15686
+ constructor(quebraLinha, tamanhoIndentacao = 4, opcoes = {}) {
15646
15687
  this.quebraLinha = quebraLinha;
15647
15688
  this.tamanhoIndentacao = tamanhoIndentacao;
15648
15689
  this.indentacaoAtual = 0;
15649
15690
  this.codigoFormatado = '';
15650
15691
  this.devePularLinha = true;
15651
15692
  this.deveIndentar = true;
15693
+ this.delimitadorTexto = opcoes.delimitadorTexto || 'aspas-simples';
15694
+ }
15695
+ obterDelimitadorTexto(expressao) {
15696
+ if (this.delimitadorTexto === 'aspas-duplas') {
15697
+ return '"';
15698
+ }
15699
+ if (this.delimitadorTexto === 'preservar' && expressao.delimitadorTexto) {
15700
+ return expressao.delimitadorTexto;
15701
+ }
15702
+ return "'";
15652
15703
  }
15653
15704
  /* istanbul ignore next */
15654
15705
  visitarExpressaoTuplaN(expressao) {
@@ -15688,7 +15739,7 @@ class FormatadorDelegua {
15688
15739
  }
15689
15740
  visitarDeclaracaoComentario(declaracao) {
15690
15741
  if (declaracao.multilinha) {
15691
- this.codigoFormatado += `${' '.repeat(this.indentacaoAtual)}/* `;
15742
+ this.codigoFormatado += `${' '.repeat(this.indentacaoAtual)}/*${this.quebraLinha}`;
15692
15743
  for (let linhaConteudo of declaracao.conteudo) {
15693
15744
  this.codigoFormatado += `${' '.repeat(this.indentacaoAtual)} ${linhaConteudo.replace(/\s+/g, ' ')}${this.quebraLinha}`;
15694
15745
  }
@@ -16147,13 +16198,19 @@ class FormatadorDelegua {
16147
16198
  }
16148
16199
  visitarExpressaoLiteral(expressao) {
16149
16200
  if (typeof expressao.valor === 'string') {
16150
- const valorStr = expressao.valor
16201
+ const delimitador = this.obterDelimitadorTexto(expressao);
16202
+ let valorTexto = expressao.valor
16151
16203
  .replace(/\\/g, '\\\\')
16152
16204
  .replace(/\r/g, '\\r')
16153
16205
  .replace(/\n/g, '\\n')
16154
- .replace(/\t/g, '\\t')
16155
- .replace(/'/g, "\\'");
16156
- this.codigoFormatado += `'${valorStr}'`;
16206
+ .replace(/\t/g, '\\t');
16207
+ if (delimitador === "'") {
16208
+ valorTexto = valorTexto.replace(/'/g, "\\'");
16209
+ }
16210
+ else {
16211
+ valorTexto = valorTexto.replace(/"/g, '\\"');
16212
+ }
16213
+ this.codigoFormatado += `${delimitador}${valorTexto}${delimitador}`;
16157
16214
  return;
16158
16215
  }
16159
16216
  if (['logico', 'lógico'].includes(expressao.tipo)) {
@@ -16271,6 +16328,9 @@ class FormatadorDelegua {
16271
16328
  case declaracoes_1.Classe:
16272
16329
  this.visitarDeclaracaoClasse(declaracaoOuConstruto);
16273
16330
  break;
16331
+ case declaracoes_1.Comentario:
16332
+ this.visitarDeclaracaoComentario(declaracaoOuConstruto);
16333
+ break;
16274
16334
  case declaracoes_1.Continua:
16275
16335
  this.visitarExpressaoContinua(declaracaoOuConstruto);
16276
16336
  break;
@@ -17173,7 +17233,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17173
17233
  __exportStar(require("./avaliador-sintatico-interface"), exports);
17174
17234
  __exportStar(require("./componente-modulo-classe-interface"), exports);
17175
17235
  __exportStar(require("./componente-modulo-funcao-interface"), exports);
17176
- __exportStar(require("./estilizador-comum-interface"), exports);
17236
+ __exportStar(require("./estilizador/estilizador-interface"), exports);
17177
17237
  __exportStar(require("./formatador-comum-interface"), exports);
17178
17238
  __exportStar(require("./interpretador-com-depuracao-interface"), exports);
17179
17239
  __exportStar(require("./interpretador-interface"), exports);
@@ -17194,7 +17254,7 @@ __exportStar(require("./construtos"), exports);
17194
17254
  __exportStar(require("./erros"), exports);
17195
17255
  __exportStar(require("./retornos"), exports);
17196
17256
 
17197
- },{"./avaliador-sintatico-interface":139,"./componente-modulo-classe-interface":140,"./componente-modulo-funcao-interface":141,"./construtos":142,"./erros":146,"./estilizador-comum-interface":147,"./formatador-comum-interface":148,"./interpretador-com-depuracao-interface":150,"./interpretador-interface":151,"./lexador-interface":152,"./modulo-interface":153,"./parametro-interface":154,"./pilha-interface":155,"./primitiva-interface":156,"./resolvedor-interface":157,"./resultado-parcial-interpretador-interface":158,"./retornos":159,"./retornos/retorno-execucao-interface":162,"./simbolo-interface":165,"./tradutor-interface":166,"./variavel-interface":167,"./visitante-comum-interface":168,"./visitante-delegua-interface":169}],150:[function(require,module,exports){
17257
+ },{"./avaliador-sintatico-interface":139,"./componente-modulo-classe-interface":140,"./componente-modulo-funcao-interface":141,"./construtos":142,"./erros":146,"./estilizador/estilizador-interface":147,"./formatador-comum-interface":148,"./interpretador-com-depuracao-interface":150,"./interpretador-interface":151,"./lexador-interface":152,"./modulo-interface":153,"./parametro-interface":154,"./pilha-interface":155,"./primitiva-interface":156,"./resolvedor-interface":157,"./resultado-parcial-interpretador-interface":158,"./retornos":159,"./retornos/retorno-execucao-interface":162,"./simbolo-interface":165,"./tradutor-interface":166,"./variavel-interface":167,"./visitante-comum-interface":168,"./visitante-delegua-interface":169}],150:[function(require,module,exports){
17198
17258
  "use strict";
17199
17259
  Object.defineProperty(exports, "__esModule", { value: true });
17200
17260
 
@@ -26131,6 +26191,8 @@ class Lexador {
26131
26191
  if (caractere === delimitador) {
26132
26192
  this.avancar();
26133
26193
  this.adicionarSimbolo(delegua_1.default.TEXTO, valor);
26194
+ const ultimoSimbolo = this.simbolos[this.simbolos.length - 1];
26195
+ ultimoSimbolo.delimitadorTexto = delimitador;
26134
26196
  return;
26135
26197
  }
26136
26198
  if (caractere === '\0' && this.eUltimaLinha()) {
@@ -26739,11 +26801,11 @@ function obterMapaLexemaParaParadigma() {
26739
26801
  */
26740
26802
  function obterFormaAlternativa(lexema, paradigmaAlvo) {
26741
26803
  var _a, _b;
26742
- const lexemaLower = lexema.toLowerCase();
26804
+ const lexemaMinusculo = lexema.toLowerCase();
26743
26805
  // Encontra o grupo que contém este lexema
26744
26806
  for (const grupo of exports.gruposPalavrasParadigma) {
26745
- const temImperativo = (_a = grupo.imperativo) === null || _a === void 0 ? void 0 : _a.some((p) => p === lexemaLower);
26746
- const temInfinitivo = (_b = grupo.infinitivo) === null || _b === void 0 ? void 0 : _b.some((p) => p === lexemaLower);
26807
+ const temImperativo = (_a = grupo.imperativo) === null || _a === void 0 ? void 0 : _a.some((p) => p === lexemaMinusculo);
26808
+ const temInfinitivo = (_b = grupo.infinitivo) === null || _b === void 0 ? void 0 : _b.some((p) => p === lexemaMinusculo);
26747
26809
  if (temImperativo || temInfinitivo) {
26748
26810
  // Retorna a primeira forma do paradigma alvo
26749
26811
  if (paradigmaAlvo === 'imperativo' && grupo.imperativo && grupo.imperativo.length > 0) {
@@ -27337,7 +27399,7 @@ exports.palavrasReservadasMicroGramatica = {
27337
27399
  Object.defineProperty(exports, "__esModule", { value: true });
27338
27400
  exports.Simbolo = void 0;
27339
27401
  class Simbolo {
27340
- constructor(tipo, lexema, literal, linha, hashArquivo, colunaInicio = 0, colunaFim = 0) {
27402
+ constructor(tipo, lexema, literal, linha, hashArquivo, colunaInicio = 0, colunaFim = 0, delimitadorTexto) {
27341
27403
  this.tipo = tipo;
27342
27404
  this.lexema = lexema;
27343
27405
  this.literal = literal;
@@ -27345,6 +27407,7 @@ class Simbolo {
27345
27407
  this.hashArquivo = hashArquivo;
27346
27408
  this.colunaInicio = colunaInicio;
27347
27409
  this.colunaFim = colunaFim;
27410
+ this.delimitadorTexto = delimitadorTexto;
27348
27411
  }
27349
27412
  paraTexto() {
27350
27413
  return this.tipo + ' ' + this.lexema + ' ' + this.literal;
@@ -43475,7 +43538,7 @@ class TradutorAssemblyScript {
43475
43538
  }
43476
43539
  traduzirDeclaracaoTendoComo(declaracaoTendoComo) {
43477
43540
  // TendoComo is a resource management pattern (like try-with-resources in Java)
43478
- // AssemblyScript doesn't have built-in support, so we'll just treat it as a scope
43541
+ // AssemblyScript doesn't have embutidos support, so we'll just treat it as a scope
43479
43542
  let resultado = `// tendo ${declaracaoTendoComo.simboloVariavel.lexema} como recurso\n`;
43480
43543
  resultado += ' '.repeat(this.indentacao);
43481
43544
  resultado += `let ${declaracaoTendoComo.simboloVariavel.lexema} = `;
@@ -44824,7 +44887,7 @@ class TradutorElixir {
44824
44887
  return Promise.resolve(`${objeto}.${metodo}`);
44825
44888
  }
44826
44889
  /**
44827
- * Mapeia métodos built-in de Delégua para Elixir
44890
+ * Mapeia métodos embutidos de Delégua para Elixir
44828
44891
  */
44829
44892
  mapearMetodoBuiltIn(metodo, objeto, argumentos) {
44830
44893
  switch (metodo) {
@@ -44956,7 +45019,7 @@ class TradutorElixir {
44956
45019
  const acessoMetodo = expressao.entidadeChamada;
44957
45020
  const objeto = await acessoMetodo.objeto.aceitar(this);
44958
45021
  const metodo = this.converterIdentificador(acessoMetodo.nomeMetodo);
44959
- // Mapear métodos built-in
45022
+ // Mapear métodos embutidos
44960
45023
  const metodoMapeado = this.mapearMetodoBuiltIn(metodo, objeto, argumentos);
44961
45024
  if (metodoMapeado) {
44962
45025
  return Promise.resolve(metodoMapeado);
@@ -44968,7 +45031,7 @@ class TradutorElixir {
44968
45031
  const acesso = expressao.entidadeChamada;
44969
45032
  const objeto = await acesso.objeto.aceitar(this);
44970
45033
  const simbolo = this.converterIdentificador(acesso.simbolo.lexema);
44971
- // Mapear métodos built-in
45034
+ // Mapear métodos embutidos
44972
45035
  const metodoMapeado = this.mapearMetodoBuiltIn(simbolo, objeto, argumentos);
44973
45036
  if (metodoMapeado) {
44974
45037
  return Promise.resolve(metodoMapeado);
@@ -1,85 +0,0 @@
1
- import { Declaracao } from '../declaracoes/declaracao';
2
- import { Construto } from '../construtos';
3
- /**
4
- * Define uma regra de transformação/estilização de código.
5
- */
6
- export interface RegraEstilizacao {
7
- /**
8
- * Nome da regra para identificação e logs.
9
- */
10
- nome: string;
11
- /**
12
- * Descrição do que a regra faz.
13
- */
14
- descricao: string;
15
- /**
16
- * Aplica a regra em uma declaração.
17
- * @param declaracao A declaração a ser verificada/transformada.
18
- * @returns A declaração (modificada ou não).
19
- */
20
- aplicarEmDeclaracao?(declaracao: Declaracao): Declaracao;
21
- /**
22
- * Aplica a regra em um construto.
23
- * @param construto O construto a ser verificado/transformado.
24
- * @returns O construto (modificado ou não).
25
- */
26
- aplicarEmConstruto?(construto: Construto): Construto;
27
- }
28
- /**
29
- * Interface base para estilizadores de código.
30
- * Um estilizador aplica transformações no AST para enforcar convenções e melhorar a qualidade do código.
31
- */
32
- export interface EstilizadorComumInterface {
33
- /**
34
- * Regras de estilização ativas.
35
- */
36
- regras: RegraEstilizacao[];
37
- /**
38
- * Adiciona uma regra de estilização.
39
- * @param regra A regra a ser adicionada.
40
- */
41
- adicionarRegra(regra: RegraEstilizacao): void;
42
- /**
43
- * Remove uma regra de estilização pelo nome.
44
- * @param nomeRegra O nome da regra a ser removida.
45
- */
46
- removerRegra(nomeRegra: string): void;
47
- /**
48
- * Aplica as regras de estilização em um conjunto de declarações.
49
- * @param declaracoes As declarações a serem estilizadas.
50
- * @returns As declarações estilizadas (modificadas ou não).
51
- */
52
- estilizar(declaracoes: Declaracao[]): Declaracao[];
53
- /**
54
- * Valida se o código atende todas as regras sem aplicar transformações.
55
- * @param declaracoes As declarações a serem validadas.
56
- * @returns Array de violações encontradas.
57
- */
58
- validar(declaracoes: Declaracao[]): ViolacaoEstilo[];
59
- }
60
- /**
61
- * Representa uma violação de estilo encontrada.
62
- */
63
- export interface ViolacaoEstilo {
64
- /**
65
- * Nome da regra violada.
66
- */
67
- regra: string;
68
- /**
69
- * Mensagem descritiva da violação.
70
- */
71
- mensagem: string;
72
- /**
73
- * Linha onde a violação ocorreu.
74
- */
75
- linha: number;
76
- /**
77
- * Hash do arquivo onde a violação ocorreu.
78
- */
79
- hashArquivo: number;
80
- /**
81
- * Severidade da violação.
82
- */
83
- severidade: 'erro' | 'aviso' | 'informacao';
84
- }
85
- //# sourceMappingURL=estilizador-comum-interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"estilizador-comum-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/estilizador-comum-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;IAEzD;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;CACxD;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE9C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAEnD;;;;OAIG;IACH,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;CAC/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"estilizador-comum-interface.js","sourceRoot":"","sources":["../../fontes/interfaces/estilizador-comum-interface.ts"],"names":[],"mappings":""}