@designliquido/delegua 0.67.1 → 0.69.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 (133) hide show
  1. package/analisador-semantico/analisador-semantico-base.d.ts +2 -1
  2. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.js +3 -0
  4. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  5. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +2 -1
  6. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  7. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +11 -0
  8. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  9. package/avaliador-sintatico/avaliador-sintatico.d.ts +15 -12
  10. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  11. package/avaliador-sintatico/avaliador-sintatico.js +120 -79
  12. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  13. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +2 -2
  14. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  15. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +71 -15
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.d.ts +11 -6
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.d.ts.map +1 -1
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js +81 -41
  20. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js.map +1 -1
  21. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.d.ts +5 -0
  22. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.d.ts.map +1 -1
  23. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js +46 -5
  24. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js.map +1 -1
  25. package/avaliador-sintatico/pilha-escopos.d.ts +1 -0
  26. package/avaliador-sintatico/pilha-escopos.d.ts.map +1 -1
  27. package/avaliador-sintatico/pilha-escopos.js +9 -0
  28. package/avaliador-sintatico/pilha-escopos.js.map +1 -1
  29. package/bin/package.json +1 -1
  30. package/construtos/acesso-intervalo-variavel.d.ts +20 -0
  31. package/construtos/acesso-intervalo-variavel.d.ts.map +1 -0
  32. package/construtos/acesso-intervalo-variavel.js +35 -0
  33. package/construtos/acesso-intervalo-variavel.js.map +1 -0
  34. package/construtos/ajuda-como-construto.d.ts +18 -0
  35. package/construtos/ajuda-como-construto.d.ts.map +1 -0
  36. package/construtos/ajuda-como-construto.js +32 -0
  37. package/construtos/ajuda-como-construto.js.map +1 -0
  38. package/construtos/index.d.ts +2 -0
  39. package/construtos/index.d.ts.map +1 -1
  40. package/construtos/index.js +2 -0
  41. package/construtos/index.js.map +1 -1
  42. package/declaracoes/ajuda.d.ts +13 -0
  43. package/declaracoes/ajuda.d.ts.map +1 -0
  44. package/declaracoes/ajuda.js +25 -0
  45. package/declaracoes/ajuda.js.map +1 -0
  46. package/declaracoes/index.d.ts +1 -0
  47. package/declaracoes/index.d.ts.map +1 -1
  48. package/declaracoes/index.js +1 -0
  49. package/declaracoes/index.js.map +1 -1
  50. package/declaracoes/var.d.ts +1 -0
  51. package/declaracoes/var.d.ts.map +1 -1
  52. package/declaracoes/var.js +1 -0
  53. package/declaracoes/var.js.map +1 -1
  54. package/formatadores/formatador-delegua.d.ts +2 -1
  55. package/formatadores/formatador-delegua.d.ts.map +1 -1
  56. package/formatadores/formatador-delegua.js +3 -0
  57. package/formatadores/formatador-delegua.js.map +1 -1
  58. package/formatadores/formatador-pitugues.d.ts +2 -1
  59. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  60. package/formatadores/formatador-pitugues.js +6 -0
  61. package/formatadores/formatador-pitugues.js.map +1 -1
  62. package/inferenciador.d.ts.map +1 -1
  63. package/inferenciador.js +2 -0
  64. package/inferenciador.js.map +1 -1
  65. package/interfaces/visitante-comum-interface.d.ts +2 -1
  66. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  67. package/interfaces/visitante-delegua-interface.d.ts +4 -2
  68. package/interfaces/visitante-delegua-interface.d.ts.map +1 -1
  69. package/interpretador/comum.d.ts +1 -0
  70. package/interpretador/comum.d.ts.map +1 -1
  71. package/interpretador/comum.js +300 -0
  72. package/interpretador/comum.js.map +1 -1
  73. package/interpretador/depuracao/comum.d.ts +11 -1
  74. package/interpretador/depuracao/comum.d.ts.map +1 -1
  75. package/interpretador/depuracao/comum.js +53 -0
  76. package/interpretador/depuracao/comum.js.map +1 -1
  77. package/interpretador/depuracao/interpretador-com-depuracao.d.ts +10 -1
  78. package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
  79. package/interpretador/depuracao/interpretador-com-depuracao.js +11 -0
  80. package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
  81. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +2 -1
  82. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  83. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +3 -0
  84. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  85. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +2 -1
  86. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  87. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +5 -0
  88. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  89. package/interpretador/dialetos/pitugues/comum.d.ts +2 -1
  90. package/interpretador/dialetos/pitugues/comum.d.ts.map +1 -1
  91. package/interpretador/dialetos/pitugues/comum.js +19 -0
  92. package/interpretador/dialetos/pitugues/comum.js.map +1 -1
  93. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts +2 -1
  94. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts.map +1 -1
  95. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js +3 -0
  96. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js.map +1 -1
  97. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +2 -1
  98. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
  99. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +3 -0
  100. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  101. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +2 -1
  102. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  103. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +6 -1
  104. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  105. package/interpretador/interpretador-base.d.ts +7 -1
  106. package/interpretador/interpretador-base.d.ts.map +1 -1
  107. package/interpretador/interpretador-base.js +12 -4
  108. package/interpretador/interpretador-base.js.map +1 -1
  109. package/interpretador/interpretador.d.ts +11 -2
  110. package/interpretador/interpretador.d.ts.map +1 -1
  111. package/interpretador/interpretador.js +25 -0
  112. package/interpretador/interpretador.js.map +1 -1
  113. package/interpretador/pilha-escopos-execucao.js +1 -1
  114. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  115. package/lexador/dialetos/lexador-pitugues.d.ts +1 -1
  116. package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
  117. package/lexador/dialetos/lexador-pitugues.js +20 -3
  118. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  119. package/lexador/palavras-reservadas.d.ts +1 -0
  120. package/lexador/palavras-reservadas.d.ts.map +1 -1
  121. package/lexador/palavras-reservadas.js +1 -0
  122. package/lexador/palavras-reservadas.js.map +1 -1
  123. package/package.json +1 -1
  124. package/tipos-de-simbolos/delegua.d.ts +2 -1
  125. package/tipos-de-simbolos/delegua.d.ts.map +1 -1
  126. package/tipos-de-simbolos/delegua.js +2 -1
  127. package/tipos-de-simbolos/delegua.js.map +1 -1
  128. package/tipos-de-simbolos/pitugues.d.ts +1 -0
  129. package/tipos-de-simbolos/pitugues.d.ts.map +1 -1
  130. package/tipos-de-simbolos/pitugues.js +1 -0
  131. package/tipos-de-simbolos/pitugues.js.map +1 -1
  132. package/tradutores/tradutor-assembly-x64.js +122 -122
  133. package/umd/delegua.js +1775 -710
@@ -34,8 +34,10 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.carregarBibliotecasGlobais = carregarBibliotecasGlobais;
37
+ exports.obterTopicoAjuda = obterTopicoAjuda;
37
38
  const funcao_padrao_1 = require("./estruturas/funcao-padrao");
38
39
  const bibliotecaGlobal = __importStar(require("../bibliotecas/biblioteca-global"));
40
+ const construtos_1 = require("../construtos");
39
41
  function carregarBibliotecasGlobais(pilhaEscoposExecucao) {
40
42
  pilhaEscoposExecucao.definirVariavel('aleatorio', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.aleatorio));
41
43
  pilhaEscoposExecucao.definirVariavel('aleatorioEntre', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.aleatorioEntre));
@@ -62,4 +64,302 @@ function carregarBibliotecasGlobais(pilhaEscoposExecucao) {
62
64
  pilhaEscoposExecucao.definirVariavel('todosEmCondicao', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.todosEmCondicao));
63
65
  pilhaEscoposExecucao.definirVariavel('tupla', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.tupla));
64
66
  }
67
+ function obterTopicoAjuda(topico) {
68
+ switch (topico.constructor) {
69
+ case construtos_1.Leia:
70
+ return `A instrução 'leia' permite capturar a entrada do usuário durante a execução do programa. ` +
71
+ `Você pode usar 'leia()' para ler uma linha de entrada do usuário e armazená-la em uma variável. ` +
72
+ `Exemplo de uso:\n\n` +
73
+ `\tvar minhaVariavel = leia()\n\n` +
74
+ `Isto irá ler a entrada do usuário e atribuí-la à variável 'minhaVariavel'.`;
75
+ case funcao_padrao_1.FuncaoPadrao:
76
+ return obterAjudaFuncaoPadrao(topico);
77
+ default:
78
+ console.log(topico);
79
+ return `Desculpe, não há documentação disponível para o tópico solicitado no momento.`;
80
+ }
81
+ }
82
+ function obterAjudaFuncaoPadrao(funcaoPadrao) {
83
+ // Tentamos identificar a função pela aridade e pela implementação
84
+ const aridade = funcaoPadrao.valorAridade;
85
+ const implementacao = funcaoPadrao.funcao;
86
+ // Mapeamento de funções por nome
87
+ const nomeFuncao = Object.keys(bibliotecaGlobal).find(key => bibliotecaGlobal[key] === implementacao);
88
+ if (!nomeFuncao) {
89
+ return 'Função não identificada. Não há documentação disponível.';
90
+ }
91
+ switch (nomeFuncao) {
92
+ case 'aleatorio':
93
+ return `# aleatorio()\n\n` +
94
+ `Retorna um número aleatório entre 0 e 1.\n\n` +
95
+ `**Sintaxe:** aleatorio()\n\n` +
96
+ `**Retorno:** Número real entre 0 (inclusivo) e 1 (exclusivo).\n\n` +
97
+ `**Exemplo:**\n` +
98
+ `\tvar numeroSorteado = aleatorio()\n` +
99
+ `\tescreva(numeroSorteado) // Pode retornar algo como 0.4829374657\n`;
100
+ case 'aleatorioEntre':
101
+ return `# aleatorioEntre(minimo, maximo)\n\n` +
102
+ `Retorna um número aleatório inteiro de acordo com os parâmetros passados.\n` +
103
+ `Mínimo (inclusivo) - Máximo (exclusivo).\n\n` +
104
+ `**Sintaxe:** aleatorioEntre(minimo: número, maximo: número)\n\n` +
105
+ `**Parâmetros:**\n` +
106
+ ` - minimo: O valor mínimo (inclusivo)\n` +
107
+ ` - maximo: O valor máximo (exclusivo)\n\n` +
108
+ `**Retorno:** Número inteiro entre minimo e maximo-1.\n\n` +
109
+ `**Exemplo:**\n` +
110
+ `\tvar dado = aleatorioEntre(1, 7)\n` +
111
+ `\tescreva(dado) // Retorna um número entre 1 e 6\n`;
112
+ case 'algum':
113
+ return `# algum(vetor, funcaoPesquisa)\n\n` +
114
+ `Verifica se algum dos elementos do vetor satisfaz a condição definida pela função de pesquisa.\n\n` +
115
+ `**Sintaxe:** algum(vetor: qualquer[], funcaoPesquisa: função)\n\n` +
116
+ `**Parâmetros:**\n` +
117
+ ` - vetor: Um vetor de elementos\n` +
118
+ ` - funcaoPesquisa: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
119
+ `**Retorno:** Verdadeiro se pelo menos um elemento satisfaz a condição, falso caso contrário.\n\n` +
120
+ `**Exemplo:**\n` +
121
+ `\tvar numeros = [1, 2, 3, 4, 5]\n` +
122
+ `\tvar temPar = algum(numeros, funcao(n) { retorna n % 2 == 0 })\n` +
123
+ `\tescreva(temPar) // verdadeiro\n`;
124
+ case 'clonar':
125
+ return `# clonar(valor)\n\n` +
126
+ `Clona profundamente uma variável ou constante em Delégua, criando uma cópia independente.\n\n` +
127
+ `**Sintaxe:** clonar(valor: qualquer)\n\n` +
128
+ `**Parâmetros:**\n` +
129
+ ` - valor: O valor a ser clonado (vetor, dicionário, objeto, tupla, etc.)\n\n` +
130
+ `**Retorno:** Uma cópia profunda do valor fornecido.\n\n` +
131
+ `**Exemplo:**\n` +
132
+ `\tvar original = [1, 2, [3, 4]]\n` +
133
+ `\tvar copia = clonar(original)\n` +
134
+ `\tcopia[2][0] = 99\n` +
135
+ `\tescreva(original[2][0]) // 3 (não foi modificado)\n` +
136
+ `\tescreva(copia[2][0]) // 99\n`;
137
+ case 'encontrar':
138
+ return `# encontrar(vetor, funcaoPesquisa)\n\n` +
139
+ `Encontra o primeiro elemento de um vetor cuja função de pesquisa retorne verdadeiro.\n\n` +
140
+ `**Sintaxe:** encontrar(vetor: qualquer[], funcaoPesquisa: função)\n\n` +
141
+ `**Parâmetros:**\n` +
142
+ ` - vetor: Um vetor de elementos\n` +
143
+ ` - funcaoPesquisa: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
144
+ `**Retorno:** O primeiro elemento que satisfaz a condição, ou nulo se nenhum elemento for encontrado.\n\n` +
145
+ `**Exemplo:**\n` +
146
+ `\tvar numeros = [1, 3, 5, 8, 10]\n` +
147
+ `\tvar primeiroPar = encontrar(numeros, funcao(n) { retorna n % 2 == 0 })\n` +
148
+ `\tescreva(primeiroPar) // 8\n`;
149
+ case 'encontrarIndice':
150
+ return `# encontrarIndice(vetor, funcaoPesquisa)\n\n` +
151
+ `Encontra o índice do primeiro elemento de um vetor cuja função de pesquisa retorne verdadeiro.\n\n` +
152
+ `**Sintaxe:** encontrarIndice(vetor: qualquer[], funcaoPesquisa: função)\n\n` +
153
+ `**Parâmetros:**\n` +
154
+ ` - vetor: Um vetor de elementos\n` +
155
+ ` - funcaoPesquisa: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
156
+ `**Retorno:** O índice do primeiro elemento que satisfaz a condição, ou -1 se nenhum elemento for encontrado.\n\n` +
157
+ `**Exemplo:**\n` +
158
+ `\tvar frutas = ["maçã", "banana", "laranja"]\n` +
159
+ `\tvar indice = encontrarIndice(frutas, funcao(f) { retorna f == "banana" })\n` +
160
+ `\tescreva(indice) // 1\n`;
161
+ case 'encontrarUltimo':
162
+ return `# encontrarUltimo(vetor, funcaoPesquisa)\n\n` +
163
+ `Encontra o último elemento de um vetor cuja função de pesquisa retorne verdadeiro.\n\n` +
164
+ `**Sintaxe:** encontrarUltimo(vetor: qualquer[], funcaoPesquisa: função)\n\n` +
165
+ `**Parâmetros:**\n` +
166
+ ` - vetor: Um vetor de elementos\n` +
167
+ ` - funcaoPesquisa: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
168
+ `**Retorno:** O último elemento que satisfaz a condição, ou nulo se nenhum elemento for encontrado.\n\n` +
169
+ `**Exemplo:**\n` +
170
+ `\tvar numeros = [2, 4, 6, 7, 9]\n` +
171
+ `\tvar ultimoPar = encontrarUltimo(numeros, funcao(n) { retorna n % 2 == 0 })\n` +
172
+ `\tescreva(ultimoPar) // 6\n`;
173
+ case 'encontrarUltimoIndice':
174
+ return `# encontrarUltimoIndice(vetor, funcaoPesquisa)\n\n` +
175
+ `Encontra o índice do último elemento de um vetor cuja função de pesquisa retorne verdadeiro.\n\n` +
176
+ `**Sintaxe:** encontrarUltimoIndice(vetor: qualquer[], funcaoPesquisa: função)\n\n` +
177
+ `**Parâmetros:**\n` +
178
+ ` - vetor: Um vetor de elementos\n` +
179
+ ` - funcaoPesquisa: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
180
+ `**Retorno:** O índice do último elemento que satisfaz a condição, ou nulo se nenhum elemento for encontrado.\n\n` +
181
+ `**Exemplo:**\n` +
182
+ `\tvar numeros = [2, 4, 6, 7, 9]\n` +
183
+ `\tvar indiceUltimoPar = encontrarUltimoIndice(numeros, funcao(n) { retorna n % 2 == 0 })\n` +
184
+ `\tescreva(indiceUltimoPar) // 2\n`;
185
+ case 'filtrarPor':
186
+ return `# filtrarPor(vetor, funcaoFiltragem)\n\n` +
187
+ `Cria um novo vetor com todos os elementos que passam no teste implementado pela função de filtragem.\n\n` +
188
+ `**Sintaxe:** filtrarPor(vetor: qualquer[], funcaoFiltragem: função)\n\n` +
189
+ `**Parâmetros:**\n` +
190
+ ` - vetor: Um vetor de elementos\n` +
191
+ ` - funcaoFiltragem: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
192
+ `**Retorno:** Novo vetor contendo apenas os elementos que satisfazem a condição.\n\n` +
193
+ `**Exemplo:**\n` +
194
+ `\tvar numeros = [1, 2, 3, 4, 5, 6]\n` +
195
+ `\tvar pares = filtrarPor(numeros, funcao(n) { retorna n % 2 == 0 })\n` +
196
+ `\tescreva(pares) // [2, 4, 6]\n`;
197
+ case 'incluido':
198
+ return `# incluido(vetor, valor)\n\n` +
199
+ `Verifica se um valor está incluído em um vetor.\n\n` +
200
+ `**Sintaxe:** incluido(vetor: qualquer[], valor: qualquer)\n\n` +
201
+ `**Parâmetros:**\n` +
202
+ ` - vetor: Um vetor de elementos\n` +
203
+ ` - valor: O valor a ser procurado\n\n` +
204
+ `**Retorno:** Verdadeiro se o valor estiver no vetor, falso caso contrário.\n\n` +
205
+ `**Exemplo:**\n` +
206
+ `\tvar frutas = ["maçã", "banana", "laranja"]\n` +
207
+ `\tescreva(incluido(frutas, "banana")) // verdadeiro\n` +
208
+ `\tescreva(incluido(frutas, "uva")) // falso\n`;
209
+ case 'inteiro':
210
+ return `# inteiro(valor)\n\n` +
211
+ `Converte um valor em um número inteiro.\n\n` +
212
+ `**Sintaxe:** inteiro(valor: número | texto)\n\n` +
213
+ `**Parâmetros:**\n` +
214
+ ` - valor: O valor a ser convertido (número ou texto)\n\n` +
215
+ `**Retorno:** Número inteiro correspondente ao valor fornecido.\n\n` +
216
+ `**Exemplo:**\n` +
217
+ `\tescreva(inteiro(3.14)) // 3\n` +
218
+ `\tescreva(inteiro("42")) // 42\n` +
219
+ `\tescreva(inteiro("3.99")) // 3\n`;
220
+ case 'intervalo':
221
+ return `# intervalo(valorInicial, valorFinal)\n\n` +
222
+ `Cria um vetor com números inteiros no intervalo especificado.\n` +
223
+ `O valor inicial é inclusivo e o valor final é exclusivo.\n\n` +
224
+ `**Sintaxe:** intervalo(valorInicial: número, valorFinal: número)\n\n` +
225
+ `**Parâmetros:**\n` +
226
+ ` - valorInicial: O valor inicial (inclusivo)\n` +
227
+ ` - valorFinal: O valor final (exclusivo)\n\n` +
228
+ `**Retorno:** Vetor com os números no intervalo especificado.\n\n` +
229
+ `**Exemplo:**\n` +
230
+ `\tvar numeros = intervalo(1, 6)\n` +
231
+ `\tescreva(numeros) // [1, 2, 3, 4, 5]\n`;
232
+ case 'mapear':
233
+ return `# mapear(vetor, funcaoMapeamento)\n\n` +
234
+ `Cria um novo vetor com os resultados da aplicação de uma função a cada elemento do vetor original.\n\n` +
235
+ `**Sintaxe:** mapear(vetor: qualquer[], funcaoMapeamento: função)\n\n` +
236
+ `**Parâmetros:**\n` +
237
+ ` - vetor: Um vetor de elementos\n` +
238
+ ` - funcaoMapeamento: Função que recebe um elemento e retorna um novo valor\n\n` +
239
+ `**Retorno:** Novo vetor com os valores transformados.\n\n` +
240
+ `**Exemplo:**\n` +
241
+ `\tvar numeros = [1, 2, 3, 4]\n` +
242
+ `\tvar quadrados = mapear(numeros, funcao(n) { retorna n * n })\n` +
243
+ `\tescreva(quadrados) // [1, 4, 9, 16]\n`;
244
+ case 'numero':
245
+ return `# numero(valor)\n\n` +
246
+ `Converte um valor em um número (pode ter parte decimal).\n\n` +
247
+ `**Sintaxe:** numero(valor: número | texto)\n\n` +
248
+ `**Parâmetros:**\n` +
249
+ ` - valor: O valor a ser convertido\n\n` +
250
+ `**Retorno:** Número correspondente ao valor fornecido.\n\n` +
251
+ `**Exemplo:**\n` +
252
+ `\tescreva(numero("3.14")) // 3.14\n` +
253
+ `\tescreva(numero("42")) // 42\n` +
254
+ `\tescreva(numero(5)) // 5\n`;
255
+ case 'ordenar':
256
+ return `# ordenar(vetor)\n\n` +
257
+ `Ordena os elementos de um vetor em ordem crescente (números) ou alfabética (textos).\n\n` +
258
+ `**Sintaxe:** ordenar(vetor: qualquer[])\n\n` +
259
+ `**Parâmetros:**\n` +
260
+ ` - vetor: Um vetor de elementos\n\n` +
261
+ `**Retorno:** O mesmo vetor, agora ordenado.\n\n` +
262
+ `**Exemplo:**\n` +
263
+ `\tvar numeros = [5, 2, 8, 1, 9]\n` +
264
+ `\tordenar(numeros)\n` +
265
+ `\tescreva(numeros) // [1, 2, 5, 8, 9]\n`;
266
+ case 'paraCada':
267
+ return `# paraCada(vetor, funcao)\n\n` +
268
+ `Executa uma função para cada elemento do vetor.\n\n` +
269
+ `**Sintaxe:** paraCada(vetor: qualquer[], funcao: função)\n\n` +
270
+ `**Parâmetros:**\n` +
271
+ ` - vetor: Um vetor de elementos\n` +
272
+ ` - funcao: Função a ser executada para cada elemento\n\n` +
273
+ `**Retorno:** Nenhum (undefined).\n\n` +
274
+ `**Exemplo:**\n` +
275
+ `\tvar nomes = ["Ana", "Bruno", "Carlos"]\n` +
276
+ `\tparaCada(nomes, funcao(nome) {\n` +
277
+ `\t\tescreva("Olá, " + nome)\n` +
278
+ `\t})\n`;
279
+ case 'primeiroEmCondicao':
280
+ return `# primeiroEmCondicao(vetor, funcaoFiltragem)\n\n` +
281
+ `Retorna o primeiro elemento que satisfaz a condição especificada pela função de filtragem.\n\n` +
282
+ `**Sintaxe:** primeiroEmCondicao(vetor: qualquer[], funcaoFiltragem: função)\n\n` +
283
+ `**Parâmetros:**\n` +
284
+ ` - vetor: Um vetor de elementos\n` +
285
+ ` - funcaoFiltragem: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
286
+ `**Retorno:** O primeiro elemento que satisfaz a condição, ou undefined se nenhum for encontrado.\n\n` +
287
+ `**Exemplo:**\n` +
288
+ `\tvar numeros = [1, 3, 5, 8, 10]\n` +
289
+ `\tvar resultado = primeiroEmCondicao(numeros, funcao(n) { retorna n > 5 })\n` +
290
+ `\tescreva(resultado) // 8\n`;
291
+ case 'real':
292
+ return `# real(valor)\n\n` +
293
+ `Converte um valor em um número real (ponto flutuante).\n\n` +
294
+ `**Sintaxe:** real(valor: número | texto)\n\n` +
295
+ `**Parâmetros:**\n` +
296
+ ` - valor: O valor a ser convertido\n\n` +
297
+ `**Retorno:** Número real correspondente ao valor fornecido.\n\n` +
298
+ `**Exemplo:**\n` +
299
+ `\tescreva(real("3.14")) // 3.14\n` +
300
+ `\tescreva(real(42)) // 42.0\n`;
301
+ case 'reduzir':
302
+ return `# reduzir(vetor, funcaoReducao, valorInicial)\n\n` +
303
+ `Aplica uma função a um acumulador e cada elemento do vetor para reduzi-lo a um único valor.\n\n` +
304
+ `**Sintaxe:** reduzir(vetor: qualquer[], funcaoReducao: função, valorInicial?: qualquer)\n\n` +
305
+ `**Parâmetros:**\n` +
306
+ ` - vetor: Um vetor de elementos\n` +
307
+ ` - funcaoReducao: Função que recebe (acumulador, elemento) e retorna novo valor do acumulador\n` +
308
+ ` - valorInicial: (Opcional) Valor inicial do acumulador\n\n` +
309
+ `**Retorno:** Valor final do acumulador.\n\n` +
310
+ `**Exemplo:**\n` +
311
+ `\tvar numeros = [1, 2, 3, 4]\n` +
312
+ `\tvar soma = reduzir(numeros, funcao(acc, n) { retorna acc + n }, 0)\n` +
313
+ `\tescreva(soma) // 10\n`;
314
+ case 'tamanho':
315
+ return `# tamanho(objeto)\n\n` +
316
+ `Retorna o tamanho de um objeto (vetor, texto, função, etc.).\n\n` +
317
+ `**Sintaxe:** tamanho(objeto: qualquer)\n\n` +
318
+ `**Parâmetros:**\n` +
319
+ ` - objeto: O objeto cujo tamanho será medido\n\n` +
320
+ `**Retorno:** Para vetores e textos, retorna o número de elementos/caracteres. ` +
321
+ `Para funções, retorna o número de parâmetros.\n\n` +
322
+ `**Exemplo:**\n` +
323
+ `\tescreva(tamanho([1, 2, 3])) // 3\n` +
324
+ `\tescreva(tamanho("Delégua")) // 7\n`;
325
+ case 'texto':
326
+ return `# texto(valor)\n\n` +
327
+ `Transforma o valor ou variável em texto.\n\n` +
328
+ `**Sintaxe:** texto(valor: qualquer)\n\n` +
329
+ `**Parâmetros:**\n` +
330
+ ` - valor: O valor a ser convertido em texto\n\n` +
331
+ `**Retorno:** Representação em texto do valor fornecido.\n\n` +
332
+ `**Exemplo:**\n` +
333
+ `\tescreva(texto(42)) // "42"\n` +
334
+ `\tescreva(texto(verdadeiro)) // "verdadeiro"\n` +
335
+ `\tescreva(texto([1, 2, 3])) // "[1, 2, 3]"\n`;
336
+ case 'todosEmCondicao':
337
+ return `# todosEmCondicao(vetor, funcaoCondicional)\n\n` +
338
+ `Retorna verdadeiro se todos os elementos do vetor satisfazem a condição especificada pela função.\n\n` +
339
+ `**Sintaxe:** todosEmCondicao(vetor: qualquer[], funcaoCondicional: função)\n\n` +
340
+ `**Parâmetros:**\n` +
341
+ ` - vetor: Um vetor de elementos\n` +
342
+ ` - funcaoCondicional: Função que recebe um elemento e retorna verdadeiro ou falso\n\n` +
343
+ `**Retorno:** Verdadeiro se todos os elementos satisfazem a condição, falso caso contrário.\n\n` +
344
+ `**Exemplo:**\n` +
345
+ `\tvar numeros = [2, 4, 6, 8]\n` +
346
+ `\tvar todosPares = todosEmCondicao(numeros, funcao(n) { retorna n % 2 == 0 })\n` +
347
+ `\tescreva(todosPares) // verdadeiro\n`;
348
+ case 'tupla':
349
+ return `# tupla(vetor)\n\n` +
350
+ `Transforma um vetor de elementos em uma tupla de N elementos, sendo N a largura do vetor.\n` +
351
+ `Tuplas são estruturas imutáveis de tamanho fixo.\n\n` +
352
+ `**Sintaxe:** tupla(vetor: qualquer[])\n\n` +
353
+ `**Parâmetros:**\n` +
354
+ ` - vetor: Um vetor com 2 a 10 elementos\n\n` +
355
+ `**Retorno:** Uma tupla (Dupla, Trio, Quarteto, etc.) correspondente ao vetor.\n\n` +
356
+ `**Exemplo:**\n` +
357
+ `\tvar coordenadas = tupla([10, 20])\n` +
358
+ `\tescreva(coordenadas.primeiro) // 10\n` +
359
+ `\tescreva(coordenadas.segundo) // 20\n`;
360
+ default:
361
+ return `Função global identificada, mas documentação específica não disponível.\n` +
362
+ `Aridade: ${aridade} parâmetro(s).`;
363
+ }
364
+ }
65
365
  //# sourceMappingURL=comum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Binario, Chamada, Construto } from '../../construtos';
2
- import { Declaracao, Enquanto, Escreva, Para, Retorna } from '../../declaracoes';
2
+ import { Declaracao, Enquanto, Escreva, Para, Retorna, Tente } from '../../declaracoes';
3
3
  import { InterpretadorComDepuracaoInterface } from '../../interfaces';
4
4
  import { RetornoQuebra } from '../../quebras';
5
5
  import { TipoEscopoExecucao } from '../../interfaces/escopo-execucao';
@@ -24,6 +24,16 @@ export declare function visitarDeclaracaoEnquanto(interpretador: InterpretadorCo
24
24
  */
25
25
  export declare function visitarDeclaracaoEscreva(interpretador: InterpretadorComDepuracaoInterface, declaracao: Escreva): Promise<any>;
26
26
  export declare function visitarDeclaracaoPara(interpretador: InterpretadorComDepuracaoInterface, declaracao: Para): Promise<any>;
27
+ /**
28
+ * Implementação de try-catch-finally para modo de depuração.
29
+ * Garante que o bloco finally só é executado após o bloco try ser completado.
30
+ * Em modo de passo, detecta quando um novo escopo foi criado e está incompleto,
31
+ * evitando que o finally seja empilhado prematuramente.
32
+ * @param interpretador O interpretador com depuração.
33
+ * @param declaracao A declaração tente-pegue-finalmente.
34
+ * @returns O valor retornado pela execução.
35
+ */
36
+ export declare function visitarDeclaracaoTente(interpretador: InterpretadorComDepuracaoInterface, declaracao: Tente): Promise<any>;
27
37
  /**
28
38
  * Ao executar um retorno, manter o valor retornado no Interpretador para
29
39
  * uso por linhas que foram executadas com o comando `próximo` do depurador.
@@ -1 +1 @@
1
- {"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAS,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAa,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACH,kCAAkC,EAErC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAyC,aAAa,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAAkB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgFlD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CACzB,aAAa,EAAE,kCAAkC,EACjD,SAAS,EAAE,SAAS,GAAG,UAAU,GAClC,OAAO,CAAC,GAAG,CAAC,CAad;AAED,wBAAsB,yBAAyB,CAC3C,aAAa,EAAE,kCAAkC,EACjD,kCAAkC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,EACxE,SAAS,EAAE,OAAO,GACnB,OAAO,CAAC,GAAG,CAAC,CAYd;AAED,wBAAsB,yBAAyB,CAC3C,aAAa,EAAE,kCAAkC,EACjD,UAAU,EAAE,QAAQ,GACrB,OAAO,CAAC,GAAG,CAAC,CAuCd;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC1C,aAAa,EAAE,kCAAkC,EACjD,UAAU,EAAE,OAAO,GACpB,OAAO,CAAC,GAAG,CAAC,CAmBd;AAED,wBAAsB,qBAAqB,CACvC,aAAa,EAAE,kCAAkC,EACjD,UAAU,EAAE,IAAI,GACjB,OAAO,CAAC,GAAG,CAAC,CAsEd;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC1C,aAAa,EAAE,kCAAkC,EACjD,iCAAiC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,EACxE,UAAU,EAAE,OAAO,GACpB,OAAO,CAAC,aAAa,CAAC,CAgCxB;AAsBD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CACzC,aAAa,EAAE,kCAAkC,EACjD,SAAS,EAAE,OAAO,GACnB,OAAO,CAAC,GAAG,CAAC,CAqGd;AAoID;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAC/B,aAAa,EAAE,kCAAkC,EACjD,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,CAAC,EAAE,aAAa,GAC9B,OAAO,CAAC,GAAG,CAAC,CA+Dd;AAqHD;;;;;;;;;;GAUG;AACH,wBAAsB,oCAAoC,CACtD,aAAa,EAAE,kCAAkC,EACjD,mBAAmB,UAAQ,EAC3B,4BAA4B,UAAQ,GACrC,OAAO,CAAC,GAAG,CAAC,CAiEd;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACjD,aAAa,EAAE,kCAAkC,EACjD,MAAM,SAAI,GACX,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAChC,aAAa,EAAE,kCAAkC,EACjD,MAAM,SAAI,gBA6Bb;AAWD,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,kCAAkC,EACjD,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,CAAC,EAAE,aAAa,EAC7B,UAAU,GAAE,kBAA4B,QAY3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACtC,aAAa,EAAE,kCAAkC,EACjD,mBAAmB,UAAQ,EAC3B,4BAA4B,UAAQ,GACrC,OAAO,CAAC,GAAG,CAAC,CAqBd;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CACzB,aAAa,EAAE,kCAAkC,EACjD,IAAI,EAAE,MAAM,GACb,GAAG,CAaL"}
1
+ {"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ exports.visitarExpressaoDeChamada = visitarExpressaoDeChamada;
8
8
  exports.visitarDeclaracaoEnquanto = visitarDeclaracaoEnquanto;
9
9
  exports.visitarDeclaracaoEscreva = visitarDeclaracaoEscreva;
10
10
  exports.visitarDeclaracaoPara = visitarDeclaracaoPara;
11
+ exports.visitarDeclaracaoTente = visitarDeclaracaoTente;
11
12
  exports.visitarExpressaoRetornar = visitarExpressaoRetornar;
12
13
  exports.visitarExpressaoBinaria = visitarExpressaoBinaria;
13
14
  exports.executarBloco = executarBloco;
@@ -219,6 +220,53 @@ async function visitarDeclaracaoPara(interpretador, declaracao) {
219
220
  return retornoExecucao;
220
221
  }
221
222
  }
223
+ /**
224
+ * Implementação de try-catch-finally para modo de depuração.
225
+ * Garante que o bloco finally só é executado após o bloco try ser completado.
226
+ * Em modo de passo, detecta quando um novo escopo foi criado e está incompleto,
227
+ * evitando que o finally seja empilhado prematuramente.
228
+ * @param interpretador O interpretador com depuração.
229
+ * @param declaracao A declaração tente-pegue-finalmente.
230
+ * @returns O valor retornado pela execução.
231
+ */
232
+ async function visitarDeclaracaoTente(interpretador, declaracao) {
233
+ let valorRetorno;
234
+ interpretador.emDeclaracaoTente = true;
235
+ // Captura o número de escopos antes de executar o bloco try
236
+ const escoposAntes = interpretador.pilhaEscoposExecucao.elementos();
237
+ try {
238
+ try {
239
+ valorRetorno = await interpretador.executarBloco(declaracao.caminhoTente);
240
+ }
241
+ catch (erro) {
242
+ if (declaracao.caminhoPegue !== null) {
243
+ if (Array.isArray(declaracao.caminhoPegue)) {
244
+ valorRetorno = await interpretador.executarBloco(declaracao.caminhoPegue);
245
+ }
246
+ else {
247
+ const literalErro = new construtos_1.Literal(declaracao.hashArquivo, Number(declaracao.linha), erro.mensagem);
248
+ const chamadaPegue = new construtos_1.Chamada(declaracao.caminhoPegue.hashArquivo, declaracao.caminhoPegue, [literalErro]);
249
+ valorRetorno = await chamadaPegue.aceitar(interpretador);
250
+ }
251
+ }
252
+ }
253
+ }
254
+ finally {
255
+ // Verifica se um novo escopo foi criado e ainda está ativo
256
+ // Se sim, NÃO executa o finally ainda (o escopo try não foi completado)
257
+ const escoposDepois = interpretador.pilhaEscoposExecucao.elementos();
258
+ const novoEscopoCriado = escoposDepois > escoposAntes;
259
+ // Só executa finally se:
260
+ // 1. Existe um bloco finally
261
+ // 2. Não há um novo escopo criado OU não estamos em modo de passo/adentrar
262
+ if (declaracao.caminhoFinalmente !== null &&
263
+ (!novoEscopoCriado || (interpretador.comando !== 'proximo' && interpretador.comando !== 'adentrarEscopo'))) {
264
+ valorRetorno = await interpretador.executarBloco(declaracao.caminhoFinalmente);
265
+ }
266
+ interpretador.emDeclaracaoTente = false;
267
+ }
268
+ return valorRetorno;
269
+ }
222
270
  /**
223
271
  * Ao executar um retorno, manter o valor retornado no Interpretador para
224
272
  * uso por linhas que foram executadas com o comando `próximo` do depurador.
@@ -622,6 +670,11 @@ async function executarUltimoEscopoComandoContinuar(interpretador, manterEspacoM
622
670
  return retornoExecucao;
623
671
  }
624
672
  catch (erro) {
673
+ // Se estamos dentro de uma declaração tente, re-lança o erro
674
+ // para que o bloco pegue possa capturá-lo
675
+ if (interpretador.emDeclaracaoTente) {
676
+ throw erro;
677
+ }
625
678
  interpretador.erros.push(erro);
626
679
  }
627
680
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Declaracao, Enquanto, Escreva, Para, Retorna } from '../../declaracoes';
1
+ import { Declaracao, Enquanto, Escreva, Para, Retorna, Tente } from '../../declaracoes';
2
2
  import { PontoParada } from '../../depuracao';
3
3
  import { ComandoDepurador, InterpretadorComDepuracaoInterface } from '../../interfaces';
4
4
  import { TipoEscopoExecucao } from '../../interfaces/escopo-execucao';
@@ -130,6 +130,15 @@ export declare class InterpretadorComDepuracao extends Interpretador implements
130
130
  * @param escopo Indica o escopo a ser visitado. Usado para construir uma pilha de chamadas do lado JS.
131
131
  */
132
132
  instrucaoProximoESair(): Promise<void>;
133
+ /**
134
+ * Override para corrigir a ordem de execução de try-catch-finally em modo de depuração.
135
+ * Em modo normal, executarBloco() executa o bloco imediatamente.
136
+ * Em modo de depuração, executarBloco() apenas empilha o bloco para execução posterior.
137
+ * Isso causa um problema onde o bloco finalmente é empilhado antes do bloco tente ser executado.
138
+ * @param declaracao A declaração tente-pegue-finalmente.
139
+ * @returns O valor retornado pela execução.
140
+ */
141
+ visitarDeclaracaoTente(declaracao: Tente): Promise<any>;
133
142
  /**
134
143
  * Prepara a pilha de escopos para uma situação de depuração.
135
144
  * Não há execução de código neste caso.
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador-com-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -205,6 +205,17 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
205
205
  async instrucaoProximoESair() {
206
206
  comum.executarUltimoEscopoComandoContinuar(this, false, true);
207
207
  }
208
+ /**
209
+ * Override para corrigir a ordem de execução de try-catch-finally em modo de depuração.
210
+ * Em modo normal, executarBloco() executa o bloco imediatamente.
211
+ * Em modo de depuração, executarBloco() apenas empilha o bloco para execução posterior.
212
+ * Isso causa um problema onde o bloco finalmente é empilhado antes do bloco tente ser executado.
213
+ * @param declaracao A declaração tente-pegue-finalmente.
214
+ * @returns O valor retornado pela execução.
215
+ */
216
+ async visitarDeclaracaoTente(declaracao) {
217
+ return await comum.visitarDeclaracaoTente(this, declaracao);
218
+ }
208
219
  /**
209
220
  * Prepara a pilha de escopos para uma situação de depuração.
210
221
  * Não há execução de código neste caso.