@designliquido/delegua 0.57.2 → 0.58.0

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 (113) hide show
  1. package/avaliador-sintatico/avaliador-sintatico.d.ts +7 -1
  2. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  3. package/avaliador-sintatico/avaliador-sintatico.js +69 -14
  4. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  5. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +3 -3
  6. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  7. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +26 -10
  8. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  9. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.d.ts +23 -0
  10. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.d.ts.map +1 -0
  11. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js +199 -0
  12. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js.map +1 -0
  13. package/avaliador-sintatico/elemento-montao-tipos.d.ts.map +1 -1
  14. package/avaliador-sintatico/elemento-montao-tipos.js.map +1 -1
  15. package/avaliador-sintatico/micro-avaliador-sintatico.d.ts.map +1 -1
  16. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  17. package/avaliador-sintatico/montao-tipos.d.ts +1 -1
  18. package/avaliador-sintatico/montao-tipos.d.ts.map +1 -1
  19. package/avaliador-sintatico/montao-tipos.js.map +1 -1
  20. package/avaliador-sintatico/pilha-escopos.d.ts.map +1 -1
  21. package/avaliador-sintatico/pilha-escopos.js.map +1 -1
  22. package/bibliotecas/biblioteca-global.d.ts +7 -0
  23. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  24. package/bibliotecas/biblioteca-global.js +206 -0
  25. package/bibliotecas/biblioteca-global.js.map +1 -1
  26. package/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts.map +1 -1
  27. package/bibliotecas/dialetos/egua-classico/biblioteca-global.js +8 -2
  28. package/bibliotecas/dialetos/egua-classico/biblioteca-global.js.map +1 -1
  29. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts +169 -0
  30. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts.map +1 -0
  31. package/bibliotecas/dialetos/pitugues/biblioteca-global.js +686 -0
  32. package/bibliotecas/dialetos/pitugues/biblioteca-global.js.map +1 -0
  33. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.d.ts +6 -0
  34. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.d.ts.map +1 -0
  35. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.js +56 -0
  36. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.js.map +1 -0
  37. package/bibliotecas/dialetos/pitugues/primitivas-numero.d.ts +6 -0
  38. package/bibliotecas/dialetos/pitugues/primitivas-numero.d.ts.map +1 -0
  39. package/bibliotecas/dialetos/pitugues/primitivas-numero.js +84 -0
  40. package/bibliotecas/dialetos/pitugues/primitivas-numero.js.map +1 -0
  41. package/bibliotecas/dialetos/pitugues/primitivas-texto.d.ts +6 -0
  42. package/bibliotecas/dialetos/pitugues/primitivas-texto.d.ts.map +1 -0
  43. package/bibliotecas/dialetos/pitugues/primitivas-texto.js +254 -0
  44. package/bibliotecas/dialetos/pitugues/primitivas-texto.js.map +1 -0
  45. package/bibliotecas/dialetos/pitugues/primitivas-vetor.d.ts +6 -0
  46. package/bibliotecas/dialetos/pitugues/primitivas-vetor.d.ts.map +1 -0
  47. package/bibliotecas/dialetos/pitugues/primitivas-vetor.js +373 -0
  48. package/bibliotecas/dialetos/pitugues/primitivas-vetor.js.map +1 -0
  49. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  50. package/bibliotecas/primitivas-vetor.js +6 -5
  51. package/bibliotecas/primitivas-vetor.js.map +1 -1
  52. package/bin/package.json +1 -1
  53. package/construtos/elvis.d.ts +2 -2
  54. package/construtos/elvis.d.ts.map +1 -1
  55. package/construtos/elvis.js.map +1 -1
  56. package/construtos/enquanto-como-construto.d.ts +4 -4
  57. package/construtos/fazer-como-construto.d.ts +4 -4
  58. package/construtos/importar-como-construto.d.ts +3 -3
  59. package/construtos/importar-como-construto.d.ts.map +1 -1
  60. package/construtos/importar-como-construto.js.map +1 -1
  61. package/construtos/para-cada-como-construto.d.ts +6 -6
  62. package/construtos/para-como-construto.d.ts +4 -4
  63. package/construtos/se-ternario.d.ts +2 -2
  64. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  65. package/formatadores/formatador-pitugues.js.map +1 -1
  66. package/geracao-identificadores/index.d.ts.map +1 -1
  67. package/geracao-identificadores/index.js.map +1 -1
  68. package/informacao-elemento-sintatico.d.ts +1 -1
  69. package/interfaces/delegua/enquanto-interface.d.ts +2 -2
  70. package/interfaces/delegua/fazer-interface.d.ts +2 -2
  71. package/interfaces/delegua/para-cada-interface.d.ts +2 -2
  72. package/interfaces/delegua/para-interface.d.ts +2 -2
  73. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  74. package/interfaces/visitante-delegua-interface.d.ts +3 -3
  75. package/interfaces/visitante-delegua-interface.d.ts.map +1 -1
  76. package/interpretador/comum.d.ts.map +1 -1
  77. package/interpretador/comum.js +1 -0
  78. package/interpretador/comum.js.map +1 -1
  79. package/interpretador/depuracao/comum.d.ts.map +1 -1
  80. package/interpretador/depuracao/comum.js +6 -3
  81. package/interpretador/depuracao/comum.js.map +1 -1
  82. package/interpretador/dialetos/pitugues/index.d.ts +2 -0
  83. package/interpretador/dialetos/pitugues/index.d.ts.map +1 -0
  84. package/interpretador/dialetos/pitugues/index.js +18 -0
  85. package/interpretador/dialetos/pitugues/index.js.map +1 -0
  86. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +17 -0
  87. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -0
  88. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +248 -0
  89. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -0
  90. package/interpretador/estruturas/classe-de-modulo.d.ts +1 -1
  91. package/interpretador/estruturas/classe-de-modulo.d.ts.map +1 -1
  92. package/interpretador/estruturas/classe-de-modulo.js.map +1 -1
  93. package/interpretador/interpretador-base.d.ts.map +1 -1
  94. package/interpretador/interpretador-base.js +2 -5
  95. package/interpretador/interpretador-base.js.map +1 -1
  96. package/interpretador/interpretador.d.ts +5 -0
  97. package/interpretador/interpretador.d.ts.map +1 -1
  98. package/interpretador/interpretador.js +39 -22
  99. package/interpretador/interpretador.js.map +1 -1
  100. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  101. package/lexador/dialetos/palavras-reservadas/pitugues.d.ts +1 -0
  102. package/lexador/dialetos/palavras-reservadas/pitugues.d.ts.map +1 -1
  103. package/lexador/dialetos/palavras-reservadas/pitugues.js +2 -1
  104. package/lexador/dialetos/palavras-reservadas/pitugues.js.map +1 -1
  105. package/package.json +1 -1
  106. package/quebras/index.d.ts.map +1 -1
  107. package/quebras/index.js.map +1 -1
  108. package/tipos-de-simbolos/pitugues.d.ts.map +1 -1
  109. package/tipos-de-simbolos/pitugues.js.map +1 -1
  110. package/tradutores/tradutor-javascript.js.map +1 -1
  111. package/tradutores/tradutor-python.d.ts.map +1 -1
  112. package/tradutores/tradutor-python.js.map +1 -1
  113. package/umd/delegua.js +354 -60
@@ -1,4 +1,4 @@
1
- import { AcessoMetodoOuPropriedade, Chamada, Construto, Decorador, Dicionario, EnquantoComoConstruto, FuncaoConstruto, ImportarComoConstruto, Leia, ParaCadaComoConstruto, ParaComoConstruto, Tupla, Variavel } from '../construtos';
1
+ import { AcessoMetodoOuPropriedade, Chamada, Construto, Decorador, Dicionario, EnquantoComoConstruto, FuncaoConstruto, ImportarComoConstruto, Leia, ListaCompreensao, ParaCadaComoConstruto, ParaComoConstruto, Tupla, Variavel } from '../construtos';
2
2
  import { AvaliadorSintaticoInterface, ParametroInterface, SimboloInterface } from '../interfaces';
3
3
  import { ErroAvaliadorSintatico } from './erro-avaliador-sintatico';
4
4
  import { Bloco, Classe, Comentario, Const, Continua, Declaracao, Enquanto, Escolha, Escreva, Expressao, Falhar, Fazer, FuncaoDeclaracao, Importar, Para, ParaCada, Retorna, Se, Sustar, TendoComo, Tente, Var } from '../declaracoes';
@@ -56,6 +56,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
56
56
  blocos: number;
57
57
  performance: boolean;
58
58
  superclasseAtual: string | undefined;
59
+ intuirTipoQualquerParaIdentificadores: boolean;
59
60
  constructor(performance?: boolean);
60
61
  protected verificarDefinicaoTipoAtual(): string;
61
62
  protected obterChaveDicionario(): Construto;
@@ -72,6 +73,11 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
72
73
  * Método que resolve `para` ou `para cada` como construto.
73
74
  */
74
75
  protected paraComoConstruto(simboloPara: SimboloInterface): ParaCadaComoConstruto | ParaComoConstruto;
76
+ /**
77
+ * Resolve uma lista de compreensão.
78
+ * @returns {ListaCompreensao} A lista de compreensão resolvida.
79
+ */
80
+ protected resolverCompreensaoDeLista(retornoExpressao: Construto): ListaCompreensao;
75
81
  primario(): Construto;
76
82
  protected resolverCadeiaChamadas(expressaoAnterior: Construto, tipoAnterior?: string): any;
77
83
  chamar(): Construto;
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
55
55
  this.primitivasConhecidas = {};
56
56
  this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
57
57
  this.montaoTipos = new montao_tipos_1.MontaoTipos();
58
+ this.intuirTipoQualquerParaIdentificadores = false;
58
59
  (0, comum_1.registrarPrimitiva)(this.primitivasConhecidas, 'dicionário', primitivas_dicionario_1.default);
59
60
  (0, comum_1.registrarPrimitiva)(this.primitivasConhecidas, 'número', primitivas_numero_1.default);
60
61
  (0, comum_1.registrarPrimitiva)(this.primitivasConhecidas, 'texto', primitivas_texto_1.default);
@@ -205,6 +206,34 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
205
206
  this.blocos -= 1;
206
207
  }
207
208
  }
209
+ /**
210
+ * Resolve uma lista de compreensão.
211
+ * @returns {ListaCompreensao} A lista de compreensão resolvida.
212
+ */
213
+ resolverCompreensaoDeLista(retornoExpressao) {
214
+ this.consumir(delegua_2.default.PARA, "Esperado instrução 'para' após identificado.");
215
+ this.consumir(delegua_2.default.CADA, "Esperado instrução 'cada' após 'para'.");
216
+ const simboloVariavelIteracao = this.consumir(delegua_2.default.IDENTIFICADOR, "Esperado identificador de variável após 'para cada'.");
217
+ if (!this.verificarSeSimboloAtualEIgualA(delegua_2.default.DE, delegua_2.default.EM)) {
218
+ throw this.erro(this.simbolos[this.atual], "Esperado palavras reservadas 'em' ou 'de' após variável de iteração em instrução em lista de compreensão.");
219
+ }
220
+ const localizacaoVetor = this.simboloAnterior();
221
+ const vetor = this.ou();
222
+ this.consumir(delegua_2.default.SE, "Esperado condição 'se' após vetor.");
223
+ const condicao = this.expressao();
224
+ this.consumir(delegua_2.default.COLCHETE_DIREITO, 'Espero fechamento de colchetes após condição.');
225
+ const tipoVetor = vetor.tipo;
226
+ if (!tipoVetor.endsWith('[]') && !['qualquer', 'vetor'].includes(tipoVetor)) {
227
+ throw this.erro(localizacaoVetor, `Variável ou constante em 'para cada' não é iterável. Tipo resolvido: ${tipoVetor}.`);
228
+ }
229
+ const variavelIteracao = new construtos_1.Variavel(this.hashArquivo, simboloVariavelIteracao);
230
+ return new construtos_1.ListaCompreensao(Number(this.simbolos[this.atual]), this.hashArquivo, retornoExpressao, vetor, new construtos_1.ParaCadaComoConstruto(retornoExpressao.hashArquivo, retornoExpressao.linha, variavelIteracao, vetor, new declaracoes_1.Bloco(retornoExpressao.hashArquivo, retornoExpressao.linha, [
231
+ new declaracoes_1.Se(condicao, new declaracoes_1.Bloco(retornoExpressao.hashArquivo, retornoExpressao.linha, [
232
+ new declaracoes_1.Retorna(simboloVariavelIteracao, retornoExpressao),
233
+ ]), [], null),
234
+ ])), 'qualquer[]' // TODO: Talvez um dia inferir o tipo aqui.
235
+ );
236
+ }
208
237
  primario() {
209
238
  const simboloAtual = this.simbolos[this.atual];
210
239
  let valores = [];
@@ -220,6 +249,16 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
220
249
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.PARENTESE_ESQUERDO)) {
221
250
  return this.construtoTupla();
222
251
  }
252
+ // Ao resolver a expressão aqui, identificadores dentro da expressão de compreensão
253
+ // de lista serão tratados como 'qualquer', para evitar erros de tipo.
254
+ this.intuirTipoQualquerParaIdentificadores = true;
255
+ const retornoExpressaoOuPrimeiroValor = this.seTernario();
256
+ this.intuirTipoQualquerParaIdentificadores = false;
257
+ if (this.simbolos[this.atual].tipo === delegua_2.default.PARA) {
258
+ return this.resolverCompreensaoDeLista(retornoExpressaoOuPrimeiroValor);
259
+ }
260
+ // Aqui já sabemos que não é uma compreensão de lista.
261
+ valores.push(retornoExpressaoOuPrimeiroValor);
223
262
  while (!this.verificarSeSimboloAtualEIgualA(delegua_2.default.COLCHETE_DIREITO)) {
224
263
  switch (this.simbolos[this.atual].tipo) {
225
264
  case delegua_2.default.VIRGULA:
@@ -231,7 +270,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
231
270
  valores.push(new construtos_1.ComentarioComoConstruto(simboloComentario));
232
271
  break;
233
272
  default:
234
- const valor = this.atribuir();
273
+ const valor = this.seTernario();
235
274
  valores.push(valor);
236
275
  break;
237
276
  }
@@ -289,7 +328,14 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
289
328
  case delegua_2.default.IDENTIFICADOR:
290
329
  const simboloIdentificador = this.avancarEDevolverAnterior();
291
330
  let tipoOperando;
292
- if (simboloIdentificador.lexema in this.tiposDefinidosEmCodigo) {
331
+ if (this.intuirTipoQualquerParaIdentificadores) {
332
+ // Esta indicação é utilizada para compreensões de lista, onde o
333
+ // tipo do identificador de iteração é 'qualquer' por definição.
334
+ tipoOperando = 'qualquer';
335
+ this.pilhaEscopos.definirInformacoesVariavel(simboloIdentificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(simboloIdentificador.lexema, 'qualquer') // TODO: Talvez um dia inferir o tipo aqui.
336
+ );
337
+ }
338
+ else if (simboloIdentificador.lexema in this.tiposDefinidosEmCodigo) {
293
339
  tipoOperando = simboloIdentificador.lexema;
294
340
  }
295
341
  else {
@@ -425,7 +471,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
425
471
  const nome = this.consumir(delegua_2.default.IDENTIFICADOR, "Esperado nome de método ou propriedade após '.'.");
426
472
  let tipoInferido = expressaoAnterior.tipo;
427
473
  // Se não for um dicionário anônimo (ou seja, ser variável ou constante com nome)
428
- if (expressaoAnterior.tipo === 'dicionário' && expressaoAnterior.constructor !== construtos_1.Dicionario) {
474
+ if (expressaoAnterior.tipo === 'dicionário' &&
475
+ expressaoAnterior.constructor !== construtos_1.Dicionario) {
429
476
  // TODO: Achar algum caso em que aqui não seja variável.
430
477
  const nomeDicionario = expressaoAnterior.simbolo.lexema;
431
478
  const elementoDicionarioPilha = this.pilhaEscopos.obterElementoMontaoTipos(nomeDicionario);
@@ -844,7 +891,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
844
891
  const corpo = this.resolverDeclaracao();
845
892
  return {
846
893
  condicao,
847
- corpo
894
+ corpo,
848
895
  };
849
896
  }
850
897
  declaracaoEnquanto() {
@@ -949,7 +996,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
949
996
  const condicaoEnquanto = this.expressao();
950
997
  return {
951
998
  caminhoFazer,
952
- condicaoEnquanto
999
+ condicaoEnquanto,
953
1000
  };
954
1001
  }
955
1002
  declaracaoFazer(simboloFazer) {
@@ -980,7 +1027,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
980
1027
  case delegua_2.default.CHAVE_ESQUERDA:
981
1028
  this.avancarEDevolverAnterior();
982
1029
  do {
983
- const identificadorImportacao = this.consumir(delegua_2.default.IDENTIFICADOR, "Esperado identificador de elemento a ser importado.");
1030
+ const identificadorImportacao = this.consumir(delegua_2.default.IDENTIFICADOR, 'Esperado identificador de elemento a ser importado.');
984
1031
  elementosImportacao.push(identificadorImportacao);
985
1032
  } while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.VIRGULA));
986
1033
  this.consumir(delegua_2.default.CHAVE_DIREITA, "Esperado '}' após lista de elementos a serem importados.");
@@ -1047,7 +1094,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1047
1094
  nomeVariavelChave,
1048
1095
  nomeVariavelValor,
1049
1096
  dicionario,
1050
- corpo
1097
+ corpo,
1051
1098
  };
1052
1099
  }
1053
1100
  declaracaoParaCadaDicionario(simboloPara) {
@@ -1071,7 +1118,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1071
1118
  }
1072
1119
  }
1073
1120
  const tipoVetor = vetor.tipo;
1074
- if (!tipoVetor.endsWith('[]') && !['dicionário', 'qualquer', 'texto', 'vetor'].includes(tipoVetor)) {
1121
+ if (!tipoVetor.endsWith('[]') &&
1122
+ !['dicionário', 'qualquer', 'texto', 'vetor'].includes(tipoVetor)) {
1075
1123
  throw this.erro(simboloPara, `Variável ou constante em 'para cada' não é iterável. Tipo resolvido: ${tipoVetor}.`);
1076
1124
  }
1077
1125
  let tipoVariavelIteracao = 'qualquer';
@@ -1084,7 +1132,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1084
1132
  return {
1085
1133
  variavelIteracao,
1086
1134
  vetor,
1087
- corpo
1135
+ corpo,
1088
1136
  };
1089
1137
  }
1090
1138
  declaracaoParaCadaVetor(simboloPara) {
@@ -1135,7 +1183,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1135
1183
  inicializador,
1136
1184
  condicao,
1137
1185
  incrementar,
1138
- corpo
1186
+ corpo,
1139
1187
  };
1140
1188
  }
1141
1189
  declaracaoParaTradicional(simboloPara) {
@@ -1404,11 +1452,14 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1404
1452
  if (!tipoCorrespondente) {
1405
1453
  throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(entidadeChamadaAcessoMetodoOuPropriedade.simbolo, `Tipo '${entidadeChamadaAcessoMetodoOuPropriedade.objeto.tipo}' não foi encontrado entre os tipos definidos por bibliotecas.`);
1406
1454
  }
1407
- if (!(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in tipoCorrespondente.metodos) &&
1408
- !(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in tipoCorrespondente.propriedades)) {
1455
+ if (!(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in
1456
+ tipoCorrespondente.metodos) &&
1457
+ !(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in
1458
+ tipoCorrespondente.propriedades)) {
1409
1459
  throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(entidadeChamadaAcessoMetodoOuPropriedade.simbolo, `Membro '${entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema}' não existe no tipo '${entidadeChamadaAcessoMetodoOuPropriedade.objeto.tipo}'.`);
1410
1460
  }
1411
- if (entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in tipoCorrespondente.metodos) {
1461
+ if (entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in
1462
+ tipoCorrespondente.metodos) {
1412
1463
  return tipoCorrespondente.metodos[entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema].tipo;
1413
1464
  }
1414
1465
  return tipoCorrespondente.propriedades[entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema].tipo;
@@ -1475,7 +1526,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1475
1526
  for (var i = 0; i < construto.valores.length; i++) {
1476
1527
  const chaveCorrespondente = this.resolverValorConstruto(construto.chaves[i]);
1477
1528
  const valorCorrespondente = construto.valores[i];
1478
- subElementos[chaveCorrespondente] = this.resolverInformacaoElementoSintaticoDeDicionario(valorCorrespondente);
1529
+ subElementos[chaveCorrespondente] =
1530
+ this.resolverInformacaoElementoSintaticoDeDicionario(valorCorrespondente);
1479
1531
  }
1480
1532
  retorno.subElementos = subElementos;
1481
1533
  const endereco = this.montaoTipos.adicionarReferencia(retorno);
@@ -1828,6 +1880,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1828
1880
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
1829
1881
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('funcaoPesquisa', 'função'),
1830
1882
  ]));
1883
+ this.pilhaEscopos.definirInformacoesVariavel('clonar', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('clonar', 'qualquer', true, [
1884
+ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('valor', 'qualquer'),
1885
+ ]));
1831
1886
  this.pilhaEscopos.definirInformacoesVariavel('encontrar', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('encontrar', 'qualquer', true, [
1832
1887
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
1833
1888
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('funcaoPesquisa', 'função'),