@designliquido/delegua 1.15.6 → 1.16.1

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 (147) hide show
  1. package/analisador-documentario/index.js +2 -4
  2. package/analisador-documentario/index.js.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.d.ts +6 -2
  4. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  5. package/analisador-semantico/analisador-semantico-base.js +30 -12
  6. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  7. package/analisador-semantico/analisador-semantico.d.ts +6 -1
  8. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  9. package/analisador-semantico/analisador-semantico.js +39 -53
  10. package/analisador-semantico/analisador-semantico.js.map +1 -1
  11. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +6 -1
  12. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  13. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +35 -46
  14. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  15. package/avaliador-sintatico/avaliador-sintatico.d.ts +1 -0
  16. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  17. package/avaliador-sintatico/avaliador-sintatico.js +64 -14
  18. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  19. package/avaliador-sintatico/comum.js +3 -4
  20. package/avaliador-sintatico/comum.js.map +1 -1
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +1 -1
  22. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -1
  23. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +1 -1
  24. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  25. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +1 -1
  26. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  27. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +4 -5
  28. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  29. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +1 -1
  30. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  31. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js +2 -3
  32. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js.map +1 -1
  33. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +2 -3
  34. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  35. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js +1 -1
  36. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js.map +1 -1
  37. package/avaliador-sintatico/micro-avaliador-sintatico.js +1 -1
  38. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  39. package/bibliotecas/biblioteca-global.js +9 -11
  40. package/bibliotecas/biblioteca-global.js.map +1 -1
  41. package/bibliotecas/dialetos/tenda/biblioteca-global.js +3 -3
  42. package/bibliotecas/dialetos/tenda/biblioteca-global.js.map +1 -1
  43. package/bin/package.json +1 -1
  44. package/construtos/atribuir.js +2 -2
  45. package/construtos/atribuir.js.map +1 -1
  46. package/declaracoes/classe.d.ts +2 -1
  47. package/declaracoes/classe.d.ts.map +1 -1
  48. package/declaracoes/classe.js +5 -5
  49. package/declaracoes/classe.js.map +1 -1
  50. package/declaracoes/const.js +1 -1
  51. package/declaracoes/const.js.map +1 -1
  52. package/declaracoes/var.js +1 -1
  53. package/declaracoes/var.js.map +1 -1
  54. package/estilizador/estilizador-delegua.js +2 -3
  55. package/estilizador/estilizador-delegua.js.map +1 -1
  56. package/formatadores/formatador-delegua.d.ts.map +1 -1
  57. package/formatadores/formatador-delegua.js +24 -2
  58. package/formatadores/formatador-delegua.js.map +1 -1
  59. package/formatadores/formatador-pitugues.js +1 -2
  60. package/formatadores/formatador-pitugues.js.map +1 -1
  61. package/interpretador/comum.d.ts.map +1 -1
  62. package/interpretador/comum.js +117 -11
  63. package/interpretador/comum.js.map +1 -1
  64. package/interpretador/depuracao/comum.js +9 -5
  65. package/interpretador/depuracao/comum.js.map +1 -1
  66. package/interpretador/depuracao/interpretador-base-com-depuracao.js +1 -1
  67. package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
  68. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -1
  69. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  70. package/interpretador/dialetos/pitugues/comum.js +1 -2
  71. package/interpretador/dialetos/pitugues/comum.js.map +1 -1
  72. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +1 -2
  73. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  74. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +2 -2
  75. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  76. package/interpretador/estruturas/delegua-funcao-nativa.js +1 -2
  77. package/interpretador/estruturas/delegua-funcao-nativa.js.map +1 -1
  78. package/interpretador/estruturas/delegua-funcao.d.ts +3 -0
  79. package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
  80. package/interpretador/estruturas/delegua-funcao.js +12 -4
  81. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  82. package/interpretador/estruturas/descritor-tipo-classe.d.ts +4 -3
  83. package/interpretador/estruturas/descritor-tipo-classe.d.ts.map +1 -1
  84. package/interpretador/estruturas/descritor-tipo-classe.js +16 -17
  85. package/interpretador/estruturas/descritor-tipo-classe.js.map +1 -1
  86. package/interpretador/estruturas/index.d.ts +1 -0
  87. package/interpretador/estruturas/index.d.ts.map +1 -1
  88. package/interpretador/estruturas/index.js +1 -0
  89. package/interpretador/estruturas/index.js.map +1 -1
  90. package/interpretador/estruturas/metodo-polimorfico.js +5 -10
  91. package/interpretador/estruturas/metodo-polimorfico.js.map +1 -1
  92. package/interpretador/estruturas/objeto-base.js +4 -6
  93. package/interpretador/estruturas/objeto-base.js.map +1 -1
  94. package/interpretador/estruturas/objeto-delegua-classe.js +8 -10
  95. package/interpretador/estruturas/objeto-delegua-classe.js.map +1 -1
  96. package/interpretador/estruturas/super-proxy.d.ts +24 -0
  97. package/interpretador/estruturas/super-proxy.d.ts.map +1 -0
  98. package/interpretador/estruturas/super-proxy.js +38 -0
  99. package/interpretador/estruturas/super-proxy.js.map +1 -0
  100. package/interpretador/interpretador-base.d.ts.map +1 -1
  101. package/interpretador/interpretador-base.js +14 -16
  102. package/interpretador/interpretador-base.js.map +1 -1
  103. package/interpretador/interpretador.d.ts +17 -5
  104. package/interpretador/interpretador.d.ts.map +1 -1
  105. package/interpretador/interpretador.js +118 -32
  106. package/interpretador/interpretador.js.map +1 -1
  107. package/lexador/filtro-paradigma.js +1 -1
  108. package/lexador/filtro-paradigma.js.map +1 -1
  109. package/lexador/mapeamento-paradigmas.js +2 -3
  110. package/lexador/mapeamento-paradigmas.js.map +1 -1
  111. package/lexador/palavras-reservadas.d.ts +1 -0
  112. package/lexador/palavras-reservadas.d.ts.map +1 -1
  113. package/lexador/palavras-reservadas.js +1 -0
  114. package/lexador/palavras-reservadas.js.map +1 -1
  115. package/package.json +1 -1
  116. package/tipos-de-simbolos/delegua.d.ts +1 -0
  117. package/tipos-de-simbolos/delegua.d.ts.map +1 -1
  118. package/tipos-de-simbolos/delegua.js +1 -0
  119. package/tipos-de-simbolos/delegua.js.map +1 -1
  120. package/tradutores/tradutor-assembly-arm.js +12 -24
  121. package/tradutores/tradutor-assembly-arm.js.map +1 -1
  122. package/tradutores/tradutor-assembly-risc-v.js +10 -20
  123. package/tradutores/tradutor-assembly-risc-v.js.map +1 -1
  124. package/tradutores/tradutor-assembly-x64.js +12 -24
  125. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  126. package/tradutores/tradutor-assemblyscript.js +12 -13
  127. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  128. package/tradutores/tradutor-elixir.d.ts +1 -0
  129. package/tradutores/tradutor-elixir.d.ts.map +1 -1
  130. package/tradutores/tradutor-elixir.js +31 -9
  131. package/tradutores/tradutor-elixir.js.map +1 -1
  132. package/tradutores/tradutor-javascript.js +10 -13
  133. package/tradutores/tradutor-javascript.js.map +1 -1
  134. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  135. package/tradutores/tradutor-mermaidjs.js +4 -4
  136. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  137. package/tradutores/tradutor-python.js +4 -5
  138. package/tradutores/tradutor-python.js.map +1 -1
  139. package/tradutores/tradutor-reverso-javascript.js +1 -1
  140. package/tradutores/tradutor-reverso-javascript.js.map +1 -1
  141. package/tradutores/tradutor-reverso-tenda.js +7 -10
  142. package/tradutores/tradutor-reverso-tenda.js.map +1 -1
  143. package/tradutores/tradutor-ruby.js +4 -5
  144. package/tradutores/tradutor-ruby.js.map +1 -1
  145. package/tradutores/tradutor-webassembly.js +20 -35
  146. package/tradutores/tradutor-webassembly.js.map +1 -1
  147. package/umd/delegua.js +970 -710
@@ -8,13 +8,12 @@ const REGEX_DEPRECIADO = /^@depreciado\s*(.*)$/;
8
8
  const REGEX_VEJA = /^@veja\s+(\S+).*$/;
9
9
  const REGEX_TAG = /^@\w+/;
10
10
  function segmentar(linhas) {
11
- var _a, _b;
12
11
  const segmentos = [];
13
12
  let atual = { tag: '', linhas: [] };
14
13
  for (const linha of linhas) {
15
14
  if (REGEX_TAG.test(linha)) {
16
15
  segmentos.push(atual);
17
- const tag = (_b = (_a = linha.match(/^@(\w+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';
16
+ const tag = linha.match(/^@(\w+)/)?.[1] ?? '';
18
17
  atual = { tag, linhas: [linha] };
19
18
  }
20
19
  else {
@@ -25,7 +24,6 @@ function segmentar(linhas) {
25
24
  return segmentos;
26
25
  }
27
26
  function analisarDocumentario(conteudo) {
28
- var _a;
29
27
  const resultado = {
30
28
  descricao: '',
31
29
  parametros: [],
@@ -38,7 +36,7 @@ function analisarDocumentario(conteudo) {
38
36
  resultado.descricao = segmento.linhas.join('\n').trim();
39
37
  continue;
40
38
  }
41
- const primeiraLinha = (_a = segmento.linhas[0]) !== null && _a !== void 0 ? _a : '';
39
+ const primeiraLinha = segmento.linhas[0] ?? '';
42
40
  let m;
43
41
  m = primeiraLinha.match(REGEX_PARAMETRO);
44
42
  if (m) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/analisador-documentario/index.ts"],"names":[],"mappings":";;AA6BA,oDAiEC;AA5FD,MAAM,eAAe,GAAG,6DAA6D,CAAC;AACtF,MAAM,aAAa,GAAG,0CAA0C,CAAC;AACjE,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAChD,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,MAAM,SAAS,GAAG,OAAO,CAAC;AAI1B,SAAS,SAAS,CAAC,MAAgB;;IAC/B,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,IAAI,KAAK,GAAa,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,MAAA,MAAA,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;YAC9C,KAAK,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtB,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,oBAAoB,CAAC,QAAgB;;IACjD,MAAM,SAAS,GAA0B;QACrC,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YACtB,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,SAAS;QACb,CAAC;QAED,MAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAE/C,IAAI,CAA0B,CAAC;QAE/B,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC;YACJ,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS;gBACvB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACV,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aACzB,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACJ,SAAS,CAAC,OAAO,GAAG;gBAChB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS;gBACvB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aACzB,CAAC;YACF,SAAS;QACb,CAAC;QAED,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACJ,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAChE,SAAS,CAAC,OAAO,GAAG,UAAU;gBAC1B,CAAC,CAAC,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC,CAAC,YAAY,CAAC;YACnB,SAAS;QACb,CAAC;QAED,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC;YACJ,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,SAAS;QACb,CAAC;QAED,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,SAAS;QACb,CAAC;QAED,6CAA6C;IACjD,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/analisador-documentario/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { GerenciadorEscopos } from './gerenciador-escopos';
12
12
  */
13
13
  export declare abstract class AnalisadorSemanticoBase implements AnalisadorSemanticoInterface {
14
14
  gerenciadorEscopos: GerenciadorEscopos;
15
+ diagnosticos: DiagnosticoAnalisadorSemantico[];
16
+ abstract analisar(declaracoes: Declaracao[]): Promise<RetornoAnalisadorSemantico>;
15
17
  protected diagnosticoJaExiste(simbolo: SimboloInterface, mensagem: string): boolean;
16
18
  erro(simbolo: SimboloInterface, mensagem: string): void;
17
19
  aviso(simbolo: SimboloInterface, mensagem: string): void;
@@ -29,6 +31,10 @@ export declare abstract class AnalisadorSemanticoBase implements AnalisadorSeman
29
31
  * Marca as variáveis usadas em uma expressão.
30
32
  */
31
33
  protected marcarVariaveisUsadasEmExpressao(expressao: Construto): void;
34
+ /**
35
+ * Stub para ser sobrescrito por subclasses que implementam análise de interpolações.
36
+ */
37
+ protected verificarInterpolacaoTexto(_texto: string, _literal: Literal): void;
32
38
  /**
33
39
  * Analisa se todos os caminhos retornam
34
40
  * @returns true se todos os caminhos retornam, false caso contrário
@@ -42,8 +48,6 @@ export declare abstract class AnalisadorSemanticoBase implements AnalisadorSeman
42
48
  visitarExpressaoTuplaN(expressao: TuplaN): Promise<any> | void;
43
49
  visitarExpressaoComentario(expressao: ComentarioComoConstruto): Promise<any> | void;
44
50
  visitarExpressaoSeparador(expressao: Separador): Promise<any> | void;
45
- diagnosticos: DiagnosticoAnalisadorSemantico[];
46
- abstract analisar(declaracoes: Declaracao[]): Promise<RetornoAnalisadorSemantico>;
47
51
  adicionarDiagnostico(simbolo: SimboloInterface, mensagem: string, severidade?: DiagnosticoSeveridade): void;
48
52
  visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any> | void;
49
53
  visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico-base.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico-base.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EAEX,mBAAmB,EACnB,0BAA0B,EAC1B,OAAO,EACP,OAAO,EACP,YAAY,EACZ,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,IAAI,EACJ,uBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,MAAM,EACT,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,UAAU,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,KAAK,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,KAAK,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,MAAM,EACN,UAAU,EACV,iBAAiB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;GAIG;AACH,8BAAsB,uBAAwB,YAAW,4BAA4B;IACjF,kBAAkB,EAAE,kBAAkB,CAA4B;IAClE,YAAY,EAAE,8BAA8B,EAAE,CAAM;IAEpD,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAEjF,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IASnF,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcvD,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcxD,QAAQ,CACJ,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,yBAAyB,EAAE,GACvC,IAAI;IAiBP,SAAS,CAAC,0CAA0C,CAChD,aAAa,EAAE,gBAAgB,EAC/B,UAAU,EAAE,kBAAkB,EAAE,EAChC,UAAU,EAAE,SAAS,EAAE;IA0C3B;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAgCjE;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IA2C7D;;OAEG;IACH,SAAS,CAAC,gCAAgC,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAwEtE;;OAEG;IACH,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7E;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO;IAIrE,OAAO,CAAC,qBAAqB;IA0B7B,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,OAAO;IAuBvD,OAAO,CAAC,uBAAuB;IAoB/B,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAItF,uCAAuC,CACnC,SAAS,EAAE,uBAAuB,GACnC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAItB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAI9D,0BAA0B,CAAC,SAAS,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAKnF,yBAAyB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAKpE,oBAAoB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,qBAAmD,GAChE,IAAI;IAUP,yCAAyC,CACrC,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAItB,gCAAgC,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAIlF,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAI1E,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAIpF,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/E,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxE,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,8BAA8B,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvE,4BAA4B,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D,4BAA4B,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjE,gCAAgC,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5E,yBAAyB,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3D,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3D,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,yBAAyB,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D,gCAAgC,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3E,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,yBAAyB,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D,mBAAmB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD,0BAA0B,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,oBAAoB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAInD,4BAA4B,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAInE,oCAAoC,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF,oCAAoC,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF,yCAAyC,CAAC,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7F,2BAA2B,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjE,mCAAmC,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjF,0CAA0C,CACtC,SAAS,EAAE,0BAA0B,GACtC,OAAO,CAAC,GAAG,CAAC;IAIf,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD,qBAAqB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAItD,wBAAwB,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,eAAe;IAIhE,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3D,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAInE,+BAA+B,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzE,0BAA0B,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzE,0BAA0B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D,gCAAgC,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9E,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/E,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1D,iCAAiC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9E,oBAAoB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAInD,oBAAoB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAInD,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrE,qBAAqB,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY;IAIzD,qBAAqB,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,qBAAqB,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;CAGxD"}
@@ -4,16 +4,22 @@ exports.AnalisadorSemanticoBase = void 0;
4
4
  const construtos_1 = require("../construtos");
5
5
  const declaracoes_1 = require("../declaracoes");
6
6
  const interfaces_1 = require("../interfaces");
7
+ const quebras_1 = require("../quebras");
8
+ const gerenciador_escopos_1 = require("./gerenciador-escopos");
7
9
  /**
8
10
  * Essa classe só existe para eliminar redundância entre todos os analisadores
9
11
  * semânticos. Por padrão, quando um método não é implementado, ao invés de dar erro,
10
12
  * simplesmente passa por ele (`return Promise.resolve()`).
11
13
  */
12
14
  class AnalisadorSemanticoBase {
15
+ constructor() {
16
+ this.gerenciadorEscopos = new gerenciador_escopos_1.GerenciadorEscopos();
17
+ this.diagnosticos = [];
18
+ }
13
19
  diagnosticoJaExiste(simbolo, mensagem) {
14
20
  return this.diagnosticos.some((d) => d.linha === simbolo.linha &&
15
21
  d.mensagem === mensagem &&
16
- d.simbolo.lexema === simbolo.lexema);
22
+ d.simbolo?.lexema === simbolo.lexema);
17
23
  }
18
24
  erro(simbolo, mensagem) {
19
25
  if (this.diagnosticoJaExiste(simbolo, mensagem)) {
@@ -40,7 +46,6 @@ class AnalisadorSemanticoBase {
40
46
  });
41
47
  }
42
48
  sugestao(simbolo, mensagem, correcoes) {
43
- var _a, _b;
44
49
  if (this.diagnosticoJaExiste(simbolo, mensagem)) {
45
50
  return;
46
51
  }
@@ -50,8 +55,8 @@ class AnalisadorSemanticoBase {
50
55
  hashArquivo: simbolo.hashArquivo,
51
56
  linha: simbolo.linha,
52
57
  severidade: interfaces_1.DiagnosticoSeveridade.SUGESTAO,
53
- colunaInicio: (_a = correcoes[0]) === null || _a === void 0 ? void 0 : _a.colunaInicio,
54
- colunaFim: (_b = correcoes[0]) === null || _b === void 0 ? void 0 : _b.colunaFim,
58
+ colunaInicio: correcoes[0]?.colunaInicio,
59
+ colunaFim: correcoes[0]?.colunaFim,
55
60
  correcoes: correcoes,
56
61
  });
57
62
  }
@@ -94,7 +99,7 @@ class AnalisadorSemanticoBase {
94
99
  }
95
100
  if (expressao instanceof construtos_1.Variavel) {
96
101
  const variavel = this.gerenciadorEscopos.buscar(expressao.simbolo.lexema);
97
- return (variavel === null || variavel === void 0 ? void 0 : variavel.tipo) || null;
102
+ return variavel?.tipo || null;
98
103
  }
99
104
  if (expressao instanceof construtos_1.Binario) {
100
105
  // Para binários, tentamos inferir o tipo baseado nos operandos
@@ -155,6 +160,10 @@ class AnalisadorSemanticoBase {
155
160
  * Marca as variáveis usadas em uma expressão.
156
161
  */
157
162
  marcarVariaveisUsadasEmExpressao(expressao) {
163
+ if (expressao instanceof declaracoes_1.Expressao) {
164
+ this.marcarVariaveisUsadasEmExpressao(expressao.expressao);
165
+ return;
166
+ }
158
167
  if (expressao instanceof construtos_1.Variavel) {
159
168
  this.gerenciadorEscopos.marcarComoUsada(expressao.simbolo.lexema);
160
169
  return;
@@ -201,8 +210,18 @@ class AnalisadorSemanticoBase {
201
210
  }
202
211
  return;
203
212
  }
213
+ if (expressao instanceof construtos_1.Literal && typeof expressao.valor === 'string') {
214
+ this.verificarInterpolacaoTexto(expressao.valor, expressao);
215
+ return;
216
+ }
204
217
  // TODO: Adicionar outros tipos de expressões conforme necessário.
205
218
  }
219
+ /**
220
+ * Stub para ser sobrescrito por subclasses que implementam análise de interpolações.
221
+ */
222
+ verificarInterpolacaoTexto(_texto, _literal) {
223
+ // implementado nas subclasses
224
+ }
206
225
  /**
207
226
  * Analisa se todos os caminhos retornam
208
227
  * @returns true se todos os caminhos retornam, false caso contrário
@@ -232,15 +251,14 @@ class AnalisadorSemanticoBase {
232
251
  return false;
233
252
  }
234
253
  verificarSeRetorna(declaracaoSe) {
235
- var _a, _b;
236
254
  const caminhoEntaoResolvido = declaracaoSe.caminhoEntao;
237
255
  const entaoRetorna = this.verificarBlocoRetorna(caminhoEntaoResolvido.declaracoes);
238
256
  const caminhoSenaoResolvido = declaracaoSe.caminhoSenao;
239
- if (!caminhoSenaoResolvido || ((_a = caminhoSenaoResolvido.declaracoes) === null || _a === void 0 ? void 0 : _a.length) === 0) {
257
+ if (!caminhoSenaoResolvido || caminhoSenaoResolvido.declaracoes?.length === 0) {
240
258
  return false;
241
259
  }
242
260
  if (caminhoSenaoResolvido instanceof declaracoes_1.Se &&
243
- ((_b = caminhoSenaoResolvido.caminhoEntao.declaracoes) === null || _b === void 0 ? void 0 : _b.length) === 1) {
261
+ caminhoSenaoResolvido.caminhoEntao.declaracoes?.length === 1) {
244
262
  const senaoSeRetorna = this.verificarSeRetorna(caminhoSenaoResolvido);
245
263
  return entaoRetorna && senaoSeRetorna;
246
264
  }
@@ -389,7 +407,7 @@ class AnalisadorSemanticoBase {
389
407
  return Promise.resolve();
390
408
  }
391
409
  visitarExpressaoContinua(declaracao) {
392
- return null;
410
+ return new quebras_1.ContinuarQuebra();
393
411
  }
394
412
  visitarExpressaoDeChamada(expressao) {
395
413
  return Promise.resolve();
@@ -407,7 +425,7 @@ class AnalisadorSemanticoBase {
407
425
  return Promise.resolve();
408
426
  }
409
427
  visitarExpressaoExpressaoRegular(expressao) {
410
- return;
428
+ return Promise.resolve(new RegExp(''));
411
429
  }
412
430
  visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
413
431
  return Promise.resolve();
@@ -434,13 +452,13 @@ class AnalisadorSemanticoBase {
434
452
  return Promise.resolve();
435
453
  }
436
454
  visitarExpressaoRetornar(declaracao) {
437
- return;
455
+ return Promise.resolve(new quebras_1.RetornoQuebra(null));
438
456
  }
439
457
  visitarExpressaoSuper(expressao) {
440
458
  return Promise.resolve();
441
459
  }
442
460
  visitarExpressaoSustar(declaracao) {
443
- return null;
461
+ return new quebras_1.SustarQuebra();
444
462
  }
445
463
  visitarExpressaoTupla(expressao) {
446
464
  return Promise.resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico-base.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico-base.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import { ParametroInterface, SimboloInterface } from '../interfaces';
4
4
  import { DiagnosticoAnalisadorSemantico } from '../interfaces/erros';
5
5
  import { RetornoAnalisadorSemantico } from '../interfaces/retornos/retorno-analisador-semantico';
6
6
  import { RetornoQuebra } from '../quebras';
7
+ import { MicroAvaliadorSintatico } from '../avaliador-sintatico/micro-avaliador-sintatico';
8
+ import { MicroLexador } from '../lexador/micro-lexador';
7
9
  import { AnalisadorSemanticoBase } from './analisador-semantico-base';
8
10
  import { FuncaoHipoteticaInterface } from './funcao-hipotetica-interface';
9
11
  import { PilhaVariaveis } from './pilha-variaveis';
@@ -21,6 +23,8 @@ export declare class AnalisadorSemantico extends AnalisadorSemanticoBase {
21
23
  classeAtualEmAnalise: Classe | null;
22
24
  atual: number;
23
25
  diagnosticos: DiagnosticoAnalisadorSemantico[];
26
+ protected readonly microLexador: MicroLexador;
27
+ protected readonly microAvaliadorSintatico: MicroAvaliadorSintatico;
24
28
  constructor();
25
29
  definirClassesExternasConhecidas(classesExternasConhecidas: string[]): void;
26
30
  verificarTipoAtribuido(declaracao: Var | Const): void;
@@ -81,7 +85,8 @@ export declare class AnalisadorSemantico extends AnalisadorSemanticoBase {
81
85
  private verificarChamada;
82
86
  private verificarLadoLogico;
83
87
  /**
84
- * Verifica interpolações de texto e marca variáveis como usadas
88
+ * Verifica interpolações de texto e marca variáveis como usadas,
89
+ * compreendendo cada expressão interpolada com MicroLexador e MicroAvaliadorSintatico.
85
90
  */
86
91
  protected verificarInterpolacaoTexto(texto: string, literal: Literal): void;
87
92
  visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ const construtos_1 = require("../construtos");
5
5
  const declaracoes_1 = require("../declaracoes");
6
6
  const erros_1 = require("../interfaces/erros");
7
7
  const comum_1 = require("../avaliador-sintatico/comum");
8
+ const micro_avaliador_sintatico_1 = require("../avaliador-sintatico/micro-avaliador-sintatico");
9
+ const micro_lexador_1 = require("../lexador/micro-lexador");
8
10
  const analisador_semantico_base_1 = require("./analisador-semantico-base");
9
11
  const gerenciador_escopos_1 = require("./gerenciador-escopos");
10
12
  const pilha_variaveis_1 = require("./pilha-variaveis");
@@ -14,6 +16,8 @@ const pilha_variaveis_1 = require("./pilha-variaveis");
14
16
  class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemanticoBase {
15
17
  constructor() {
16
18
  super();
19
+ this.microLexador = new micro_lexador_1.MicroLexador();
20
+ this.microAvaliadorSintatico = new micro_avaliador_sintatico_1.MicroAvaliadorSintatico();
17
21
  this.pilhaVariaveis = new pilha_variaveis_1.PilhaVariaveis();
18
22
  this.gerenciadorEscopos = new gerenciador_escopos_1.GerenciadorEscopos();
19
23
  this.funcoes = {};
@@ -34,13 +38,13 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
34
38
  const vetor = declaracao.inicializador;
35
39
  const vetorSemSeparadores = vetor.elementos;
36
40
  if (declaracao.tipo === 'inteiro[]') {
37
- const apenasValores = vetorSemSeparadores.find((v) => typeof (v === null || v === void 0 ? void 0 : v.valor) !== 'number');
41
+ const apenasValores = vetorSemSeparadores.find((v) => typeof v?.valor !== 'number');
38
42
  if (apenasValores) {
39
43
  this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de inteiro ou real. Atual: ${vetor.tipo}.`);
40
44
  }
41
45
  }
42
46
  if (declaracao.tipo === 'texto[]') {
43
- const apenasValores = vetorSemSeparadores.find((v) => typeof (v === null || v === void 0 ? void 0 : v.valor) !== 'string');
47
+ const apenasValores = vetorSemSeparadores.find((v) => typeof v?.valor !== 'string');
44
48
  if (apenasValores) {
45
49
  this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de texto. Atual: ${vetor.tipo}.`);
46
50
  }
@@ -129,10 +133,9 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
129
133
  }
130
134
  }
131
135
  visitarChamadaPorArgumentoReferenciaFuncao(argumentoReferenciaFuncao, argumentos) {
132
- var _a;
133
136
  const variavelCorrespondente =
134
137
  // this.variaveis[argumentoReferenciaFuncao.simboloFuncao.lexema].valor;
135
- (_a = this.gerenciadorEscopos.buscar(argumentoReferenciaFuncao.simboloFuncao.lexema)) === null || _a === void 0 ? void 0 : _a.valor;
138
+ this.gerenciadorEscopos.buscar(argumentoReferenciaFuncao.simboloFuncao.lexema)?.valor;
136
139
  if (!variavelCorrespondente) {
137
140
  return;
138
141
  }
@@ -733,40 +736,24 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
733
736
  }
734
737
  }
735
738
  /**
736
- * Verifica interpolações de texto e marca variáveis como usadas
739
+ * Verifica interpolações de texto e marca variáveis como usadas,
740
+ * compreendendo cada expressão interpolada com MicroLexador e MicroAvaliadorSintatico.
737
741
  */
738
742
  verificarInterpolacaoTexto(texto, literal) {
739
- // Regex para encontrar ${identificador}
740
- const regexInterpolacao = /\$\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g;
743
+ const regexInterpolacao = /\$\{(.*?)\}/g;
741
744
  let match;
742
745
  while ((match = regexInterpolacao.exec(texto)) !== null) {
743
- const nomeVariavel = match[1];
744
- // Verifica se a variável existe
745
- const variavel = this.gerenciadorEscopos.buscar(nomeVariavel);
746
- const funcao = this.funcoes[nomeVariavel];
747
- if (!variavel && !funcao) {
748
- this.erro({
749
- lexema: nomeVariavel,
750
- tipo: 'IDENTIFICADOR',
751
- linha: literal.linha,
752
- hashArquivo: literal.hashArquivo,
753
- literal: null,
754
- }, `Variável ou função '${nomeVariavel}' usada em interpolação não existe.`);
755
- }
756
- else if (variavel) {
757
- // Marca como usada
758
- this.gerenciadorEscopos.marcarComoUsada(nomeVariavel);
759
- // Verifica se foi inicializada
760
- if (!variavel.inicializada) {
761
- this.aviso({
762
- lexema: nomeVariavel,
763
- tipo: 'IDENTIFICADOR',
764
- linha: literal.linha,
765
- hashArquivo: literal.hashArquivo,
766
- literal: null,
767
- }, `Variável '${nomeVariavel}' usada em interpolação pode não ter sido inicializada.`);
746
+ const expressaoInterpolacao = match[1].trim();
747
+ try {
748
+ const retornoMicroLexador = this.microLexador.mapear(expressaoInterpolacao);
749
+ const retornoMicro = this.microAvaliadorSintatico.analisar(retornoMicroLexador, literal.linha);
750
+ for (const construto of retornoMicro.declaracoes) {
751
+ this.marcarVariaveisUsadasEmExpressao(construto);
768
752
  }
769
753
  }
754
+ catch (_) {
755
+ // Erros de sintaxe na interpolação são tratados em tempo de execução
756
+ }
770
757
  }
771
758
  }
772
759
  async visitarDeclaracaoEscreva(declaracao) {
@@ -806,7 +793,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
806
793
  return Promise.resolve();
807
794
  }
808
795
  visitarDeclaracaoConst(declaracao) {
809
- var _a;
810
796
  this.verificarTipoAtribuido(declaracao);
811
797
  if (declaracao.inicializador) {
812
798
  this.marcarVariaveisUsadasEmExpressao(declaracao.inicializador);
@@ -822,7 +808,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
822
808
  nome: declaracao.simbolo.lexema,
823
809
  tipo: declaracao.tipo || 'qualquer',
824
810
  imutavel: true,
825
- valor: (_a = declaracao.inicializador) === null || _a === void 0 ? void 0 : _a.valor,
811
+ valor: declaracao.inicializador?.valor,
826
812
  inicializada: true,
827
813
  usada: false,
828
814
  hashArquivo: declaracao.simbolo.hashArquivo,
@@ -917,7 +903,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
917
903
  const declaradaComSucesso = this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, variavel);
918
904
  if (!declaradaComSucesso) {
919
905
  const variavelExistente = this.gerenciadorEscopos.buscarNoEscopoAtual(declaracao.simbolo.lexema);
920
- this.aviso(declaracao.simbolo, `Variável '${declaracao.simbolo.lexema}' já foi declarada na linha ${variavelExistente === null || variavelExistente === void 0 ? void 0 : variavelExistente.linha}.`);
906
+ this.aviso(declaracao.simbolo, `Variável '${declaracao.simbolo.lexema}' já foi declarada na linha ${variavelExistente?.linha}.`);
921
907
  }
922
908
  return Promise.resolve();
923
909
  }
@@ -954,12 +940,11 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
954
940
  return null;
955
941
  }
956
942
  resolverTipoObjeto(objeto) {
957
- var _a, _b;
958
943
  if (objeto instanceof construtos_1.Variavel) {
959
944
  if (objeto.simbolo.lexema === 'isto' && this.classeAtualEmAnalise) {
960
945
  return this.classeAtualEmAnalise.simbolo.lexema;
961
946
  }
962
- return (_b = (_a = this.gerenciadorEscopos.buscar(objeto.simbolo.lexema)) === null || _a === void 0 ? void 0 : _a.tipo) !== null && _b !== void 0 ? _b : null;
947
+ return this.gerenciadorEscopos.buscar(objeto.simbolo.lexema)?.tipo ?? null;
963
948
  }
964
949
  if (objeto instanceof construtos_1.Chamada && objeto.entidadeChamada instanceof construtos_1.Variavel) {
965
950
  const nomeCallee = objeto.entidadeChamada.simbolo.lexema;
@@ -969,7 +954,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
969
954
  return null;
970
955
  }
971
956
  estaEmClasseOuSubclasse(nomeClasse) {
972
- var _a;
973
957
  const visitados = new Set();
974
958
  const pilha = [this.classeAtualEmAnalise];
975
959
  while (pilha.length > 0) {
@@ -982,7 +966,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
982
966
  if (atual.simbolo.lexema === nomeClasse)
983
967
  return true;
984
968
  for (const sc of atual.superClasses) {
985
- const pai = (_a = this.classesRegistradas.get(sc.simbolo.lexema)) !== null && _a !== void 0 ? _a : null;
969
+ const pai = this.classesRegistradas.get(sc.simbolo.lexema) ?? null;
986
970
  if (pai)
987
971
  pilha.push(pai);
988
972
  }
@@ -990,7 +974,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
990
974
  return false;
991
975
  }
992
976
  async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
993
- var _a, _b;
994
977
  const nomeMembro = expressao.simbolo.lexema;
995
978
  const tipoObjeto = this.resolverTipoObjeto(expressao.objeto);
996
979
  if (!tipoObjeto)
@@ -998,11 +981,12 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
998
981
  const classeDef = this.classesRegistradas.get(tipoObjeto);
999
982
  if (!classeDef)
1000
983
  return;
1001
- const membro = (_a = classeDef.metodos.find((m) => m.simbolo.lexema === nomeMembro)) !== null && _a !== void 0 ? _a : classeDef.propriedades.find((p) => p.nome.lexema === nomeMembro);
984
+ const membro = classeDef.metodos.find((m) => m.simbolo.lexema === nomeMembro) ??
985
+ classeDef.propriedades.find((p) => p.nome.lexema === nomeMembro);
1002
986
  if (!membro)
1003
987
  return;
1004
988
  if (membro.acesso === 'privado') {
1005
- if (((_b = this.classeAtualEmAnalise) === null || _b === void 0 ? void 0 : _b.simbolo.lexema) !== tipoObjeto) {
989
+ if (this.classeAtualEmAnalise?.simbolo.lexema !== tipoObjeto) {
1006
990
  this.erro(expressao.simbolo, `Membro '${nomeMembro}' é privado e não pode ser acessado fora da classe '${tipoObjeto}'.`);
1007
991
  }
1008
992
  }
@@ -1024,18 +1008,23 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
1024
1008
  }
1025
1009
  this.classesDeclaradas.add(declaracao.simbolo.lexema);
1026
1010
  this.classesRegistradas.set(declaracao.simbolo.lexema, declaracao);
1027
- // Visita corpos dos métodos com contexto de classe ativo
1011
+ // Visita corpos dos métodos com contexto de classe ativo.
1012
+ // Métodos abstratos implícitos e métodos de classes estrangeiras têm corpo vazio —
1013
+ // não há declarações para visitar.
1028
1014
  const classeAnterior = this.classeAtualEmAnalise;
1029
1015
  this.classeAtualEmAnalise = declaracao;
1030
- for (const metodo of declaracao.metodos) {
1031
- for (const stmt of metodo.funcao.corpo) {
1032
- await stmt.aceitar(this);
1016
+ if (!declaracao.estrangeira) {
1017
+ for (const metodo of declaracao.metodos) {
1018
+ if (metodo.abstrato)
1019
+ continue;
1020
+ for (const stmt of metodo.funcao.corpo) {
1021
+ await stmt.aceitar(this);
1022
+ }
1033
1023
  }
1034
1024
  }
1035
1025
  this.classeAtualEmAnalise = classeAnterior;
1036
1026
  }
1037
1027
  async visitarDeclaracaoDefinicaoFuncao(declaracao) {
1038
- var _a;
1039
1028
  if (declaracao.funcao.tipo === undefined) {
1040
1029
  this.erro(declaracao.simbolo, `Declaração de retorno da função é inválido.`);
1041
1030
  }
@@ -1077,7 +1066,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
1077
1066
  // Verifica tipos de retorno para funções não-vazio
1078
1067
  const retornoComValor = retornos.find((retorno) => retorno.valor !== null && retorno.valor !== undefined);
1079
1068
  if (retornoComValor) {
1080
- const tipoValor = typeof ((_a = retornoComValor.valor) === null || _a === void 0 ? void 0 : _a.valor);
1069
+ const tipoValor = typeof retornoComValor.valor?.valor;
1081
1070
  if (!['qualquer'].includes(tipoRetornoFuncao)) {
1082
1071
  if (tipoValor === 'string' && tipoRetornoFuncao !== 'texto') {
1083
1072
  this.erro(declaracao.simbolo, `Esperado retorno do tipo '${tipoRetornoFuncao}' dentro da função.`);
@@ -1120,11 +1109,8 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
1120
1109
  const naoUsadas = this.gerenciadorEscopos.obterVariaveisNaoUsadas();
1121
1110
  for (let variavel of naoUsadas) {
1122
1111
  // Verifica se já existe um erro associado à variável.
1123
- const temErro = this.diagnosticos.some((d) => {
1124
- var _a;
1125
- return d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
1126
- ((_a = d.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === variavel.nome;
1127
- });
1112
+ const temErro = this.diagnosticos.some((d) => d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
1113
+ d.simbolo?.lexema === variavel.nome);
1128
1114
  // Se a variável já tem um erro associado, não emitir aviso de não usada.
1129
1115
  if (temErro) {
1130
1116
  continue;