@designliquido/delegua 0.22.7 → 0.24.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 (96) hide show
  1. package/README.md +1 -1
  2. package/bin/package.json +2 -2
  3. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +2 -2
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +3 -3
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  6. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.d.ts +1 -1
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +4 -4
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +1 -1
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +2 -1
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.d.ts +2 -1
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js.map +1 -1
  15. package/fontes/avaliador-sintatico/dialetos/{avaliador-sintatico-eguap.d.ts → avaliador-sintatico-pitugues.d.ts} +3 -3
  16. package/fontes/avaliador-sintatico/dialetos/{avaliador-sintatico-eguap.js → avaliador-sintatico-pitugues.js} +131 -131
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -0
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts +2 -1
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +0 -1
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts +1 -1
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +1 -1
  23. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +2 -2
  24. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  25. package/fontes/avaliador-sintatico/dialetos/index.d.ts +1 -1
  26. package/fontes/avaliador-sintatico/dialetos/index.js +1 -1
  27. package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -1
  28. package/fontes/avaliador-sintatico/dialetos/potigol/avaliador-sintatico-potigol.d.ts +1 -1
  29. package/fontes/avaliador-sintatico/dialetos/potigol/avaliador-sintatico-potigol.js.map +1 -1
  30. package/fontes/avaliador-sintatico/dialetos/potigol/micro-avaliador-sintatico-potigol.d.ts +3 -1
  31. package/fontes/avaliador-sintatico/dialetos/potigol/micro-avaliador-sintatico-potigol.js.map +1 -1
  32. package/fontes/avaliador-sintatico/micro-avaliador-sintatico-base.d.ts +1 -1
  33. package/fontes/avaliador-sintatico/micro-avaliador-sintatico.d.ts +1 -1
  34. package/fontes/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  35. package/fontes/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts +59 -0
  36. package/fontes/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js +151 -0
  37. package/fontes/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js.map +1 -0
  38. package/fontes/construtos/tuplas/tupla.js +1 -1
  39. package/fontes/construtos/tuplas/tupla.js.map +1 -1
  40. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +4 -5
  41. package/fontes/interfaces/lexador-interface.d.ts +2 -2
  42. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +2 -3
  43. package/fontes/interfaces/retornos/retorno-lexador.d.ts +2 -3
  44. package/fontes/lexador/dialetos/index.d.ts +1 -1
  45. package/fontes/lexador/dialetos/index.js +1 -1
  46. package/fontes/lexador/dialetos/index.js.map +1 -1
  47. package/fontes/lexador/dialetos/lexador-birl.d.ts +2 -1
  48. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  49. package/fontes/lexador/dialetos/lexador-egua-classico.d.ts +2 -2
  50. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  51. package/fontes/lexador/dialetos/lexador-guarani.d.ts +2 -1
  52. package/fontes/lexador/dialetos/lexador-guarani.js.map +1 -1
  53. package/fontes/lexador/dialetos/lexador-mapler.d.ts +2 -1
  54. package/fontes/lexador/dialetos/lexador-mapler.js.map +1 -1
  55. package/fontes/lexador/dialetos/{lexador-eguap.d.ts → lexador-pitugues.d.ts} +2 -2
  56. package/fontes/lexador/dialetos/{lexador-eguap.js → lexador-pitugues.js} +40 -40
  57. package/fontes/lexador/dialetos/lexador-pitugues.js.map +1 -0
  58. package/fontes/lexador/dialetos/lexador-portugol-ipt.d.ts +2 -2
  59. package/fontes/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  60. package/fontes/lexador/dialetos/lexador-portugol-studio.d.ts +2 -1
  61. package/fontes/lexador/dialetos/lexador-portugol-studio.js.map +1 -1
  62. package/fontes/lexador/dialetos/lexador-potigol.d.ts +2 -1
  63. package/fontes/lexador/dialetos/lexador-potigol.js.map +1 -1
  64. package/fontes/lexador/dialetos/lexador-visualg.d.ts +2 -1
  65. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  66. package/fontes/lexador/lexador-base-linha-unica.d.ts +2 -2
  67. package/fontes/lexador/lexador-base.d.ts +2 -2
  68. package/fontes/lexador/lexador.d.ts +2 -2
  69. package/fontes/lexador/lexador.js.map +1 -1
  70. package/fontes/lexador/micro-lexador.d.ts +1 -1
  71. package/fontes/lexador/micro-lexador.js.map +1 -1
  72. package/fontes/lexador/traducao/lexador-javascript.d.ts +28 -0
  73. package/fontes/lexador/traducao/lexador-javascript.js +58 -0
  74. package/fontes/lexador/traducao/lexador-javascript.js.map +1 -0
  75. package/fontes/tipos-de-simbolos/{eguap.js → pitugues.js} +1 -1
  76. package/fontes/tipos-de-simbolos/pitugues.js.map +1 -0
  77. package/fontes/tradutores/index.d.ts +1 -1
  78. package/fontes/tradutores/index.js +1 -1
  79. package/fontes/tradutores/index.js.map +1 -1
  80. package/fontes/tradutores/tradutor-assemblyscript.d.ts +88 -0
  81. package/fontes/tradutores/tradutor-assemblyscript.js +575 -0
  82. package/fontes/tradutores/tradutor-assemblyscript.js.map +1 -0
  83. package/fontes/tradutores/tradutor-reverso-javascript.js +2 -2
  84. package/fontes/tradutores/tradutor-reverso-javascript.js.map +1 -1
  85. package/fontes/tradutores/{tradutor-visualg.d.ts → tradutor-reverso-visualg.d.ts} +3 -7
  86. package/fontes/tradutores/{tradutor-visualg.js → tradutor-reverso-visualg.js} +7 -188
  87. package/fontes/tradutores/tradutor-reverso-visualg.js.map +1 -0
  88. package/index.d.ts +5 -4
  89. package/index.js +17 -7
  90. package/index.js.map +1 -1
  91. package/package.json +2 -2
  92. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +0 -1
  93. package/fontes/lexador/dialetos/lexador-eguap.js.map +0 -1
  94. package/fontes/tipos-de-simbolos/eguap.js.map +0 -1
  95. package/fontes/tradutores/tradutor-visualg.js.map +0 -1
  96. /package/fontes/tipos-de-simbolos/{eguap.d.ts → pitugues.d.ts} +0 -0
@@ -0,0 +1,575 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TradutorAssemblyScript = void 0;
7
+ const construtos_1 = require("../construtos");
8
+ const declaracoes_1 = require("../declaracoes");
9
+ const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
10
+ class TradutorAssemblyScript {
11
+ constructor() {
12
+ this.indentacao = 0;
13
+ this.dicionarioConstrutos = {
14
+ AcessoIndiceVariavel: this.traduzirAcessoIndiceVariavel.bind(this),
15
+ AcessoMetodo: this.trazudirConstrutoAcessoMetodo.bind(this),
16
+ Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
17
+ AtribuicaoPorIndice: this.traduzirConstrutoAtribuicaoPorIndice.bind(this),
18
+ Atribuir: this.traduzirConstrutoAtribuir.bind(this),
19
+ Binario: this.traduzirConstrutoBinario.bind(this),
20
+ Chamada: this.traduzirConstrutoChamada.bind(this),
21
+ DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
22
+ FuncaoConstruto: this.traduzirFuncaoConstruto.bind(this),
23
+ Isto: () => 'this',
24
+ Literal: this.traduzirConstrutoLiteral.bind(this),
25
+ Logico: this.traduzirConstrutoLogico.bind(this),
26
+ TipoDe: this.traduzirConstrutoTipoDe.bind(this),
27
+ Unario: this.traduzirConstrutoUnario.bind(this),
28
+ Variavel: this.traduzirConstrutoVariavel.bind(this),
29
+ Vetor: this.traduzirConstrutoVetor.bind(this),
30
+ };
31
+ this.dicionarioDeclaracoes = {
32
+ Bloco: this.traduzirDeclaracaoBloco.bind(this),
33
+ Enquanto: this.traduzirDeclaracaoEnquanto.bind(this),
34
+ Continua: () => 'continue',
35
+ Escolha: this.traduzirDeclaracaoEscolha.bind(this),
36
+ Expressao: this.traduzirDeclaracaoExpressao.bind(this),
37
+ Fazer: this.traduzirDeclaracaoFazer.bind(this),
38
+ Falhar: this.traduzirDeclaracaoFalhar.bind(this),
39
+ FuncaoDeclaracao: this.traduzirDeclaracaoFuncao.bind(this),
40
+ Importar: this.traduzirDeclaracaoImportar.bind(this),
41
+ Leia: this.traduzirDeclaracaoLeia.bind(this),
42
+ Para: this.traduzirDeclaracaoPara.bind(this),
43
+ ParaCada: this.traduzirDeclaracaoParaCada.bind(this),
44
+ Retorna: this.traduzirDeclaracaoRetorna.bind(this),
45
+ Se: this.traduzirDeclaracaoSe.bind(this),
46
+ Sustar: () => 'break',
47
+ Classe: this.traduzirDeclaracaoClasse.bind(this),
48
+ Tente: this.traduzirDeclaracaoTente.bind(this),
49
+ Const: this.traduzirDeclaracaoConst.bind(this),
50
+ Var: this.traduzirDeclaracaoVar.bind(this),
51
+ Escreva: this.traduzirDeclaracaoEscreva.bind(this),
52
+ };
53
+ }
54
+ traduzirSimboloOperador(operador) {
55
+ switch (operador.tipo) {
56
+ case delegua_1.default.ADICAO:
57
+ return '+';
58
+ case delegua_1.default.BIT_AND:
59
+ return '&';
60
+ case delegua_1.default.BIT_OR:
61
+ return '|';
62
+ case delegua_1.default.BIT_XOR:
63
+ return '^';
64
+ case delegua_1.default.BIT_NOT:
65
+ return '~';
66
+ case delegua_1.default.DIFERENTE:
67
+ return '!==';
68
+ case delegua_1.default.DIVISAO:
69
+ return '/';
70
+ case delegua_1.default.E:
71
+ return '&&';
72
+ case delegua_1.default.EXPONENCIACAO:
73
+ return '**';
74
+ case delegua_1.default.IGUAL:
75
+ return '=';
76
+ case delegua_1.default.IGUAL_IGUAL:
77
+ return '===';
78
+ case delegua_1.default.MAIOR:
79
+ return '>';
80
+ case delegua_1.default.MAIOR_IGUAL:
81
+ return '>=';
82
+ case delegua_1.default.MENOR:
83
+ return '<';
84
+ case delegua_1.default.MENOR_IGUAL:
85
+ return '<=';
86
+ case delegua_1.default.MODULO:
87
+ return '%';
88
+ case delegua_1.default.MULTIPLICACAO:
89
+ return '*';
90
+ case delegua_1.default.OU:
91
+ return '||';
92
+ case delegua_1.default.SUBTRACAO:
93
+ return '-';
94
+ }
95
+ }
96
+ traduzirFuncoesNativas(metodo) {
97
+ switch (metodo.toLowerCase()) {
98
+ case 'adicionar':
99
+ case 'empilhar':
100
+ return 'push';
101
+ case 'concatenar':
102
+ return 'concat';
103
+ case 'fatiar':
104
+ return 'slice';
105
+ case 'inclui':
106
+ return 'includes';
107
+ case 'inverter':
108
+ return 'reverse';
109
+ case 'juntar':
110
+ return 'join';
111
+ case 'ordenar':
112
+ return 'sort';
113
+ case 'removerprimeiro':
114
+ return 'shift';
115
+ case 'removerultimo':
116
+ return 'pop';
117
+ case 'tamanho':
118
+ return 'length';
119
+ case 'maiusculo':
120
+ return 'toUpperCase';
121
+ case 'minusculo':
122
+ return 'toLowerCase';
123
+ case 'substituir':
124
+ return 'replace';
125
+ default:
126
+ return metodo;
127
+ }
128
+ }
129
+ traduzirDeclaracaoEscreva(declaracaoEscreva) {
130
+ let resultado = 'console.log(';
131
+ for (const argumento of declaracaoEscreva.argumentos) {
132
+ const valor = this.dicionarioConstrutos[argumento.constructor.name](argumento);
133
+ resultado += valor + ', ';
134
+ }
135
+ resultado = resultado.slice(0, -2);
136
+ resultado += ')';
137
+ return resultado;
138
+ }
139
+ traduzirConstrutoLiteral(literal) {
140
+ if (typeof literal.valor === 'string')
141
+ return `'${literal.valor}'`;
142
+ return literal.valor;
143
+ }
144
+ resolveTipoDeclaracaoVarEContante(tipo) {
145
+ switch (tipo) {
146
+ case 'texto':
147
+ return ': string';
148
+ case 'inteiro':
149
+ case 'real':
150
+ return ': f64';
151
+ case 'logico':
152
+ return ': bool';
153
+ case 'nulo':
154
+ return ': null';
155
+ case 'inteiro[]':
156
+ case 'real[]':
157
+ return ': f64[]';
158
+ case 'texto[]':
159
+ return ': string[]';
160
+ case 'logico[]':
161
+ return ': bool[]';
162
+ default:
163
+ return ': any';
164
+ }
165
+ }
166
+ traduzirDeclaracaoVar(declaracaoVar) {
167
+ let resultado = 'let ';
168
+ resultado += declaracaoVar.simbolo.lexema;
169
+ resultado += this.resolveTipoDeclaracaoVarEContante(declaracaoVar.tipo);
170
+ if (!(declaracaoVar === null || declaracaoVar === void 0 ? void 0 : declaracaoVar.inicializador))
171
+ resultado += ';';
172
+ else {
173
+ resultado += ' = ';
174
+ if (this.dicionarioConstrutos[declaracaoVar.inicializador.constructor.name]) {
175
+ resultado += this.dicionarioConstrutos[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
176
+ }
177
+ else {
178
+ resultado += this.dicionarioDeclaracoes[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
179
+ }
180
+ resultado += ';';
181
+ }
182
+ return resultado;
183
+ }
184
+ traduzirDeclaracaoConst(declaracaoConst) {
185
+ let resultado = 'const ';
186
+ resultado += declaracaoConst.simbolo.lexema;
187
+ resultado += this.resolveTipoDeclaracaoVarEContante(declaracaoConst.tipo);
188
+ if (!(declaracaoConst === null || declaracaoConst === void 0 ? void 0 : declaracaoConst.inicializador))
189
+ resultado += ';';
190
+ else {
191
+ resultado += ' = ';
192
+ if (this.dicionarioConstrutos[declaracaoConst.inicializador.constructor.name]) {
193
+ resultado += this.dicionarioConstrutos[declaracaoConst.inicializador.constructor.name](declaracaoConst.inicializador);
194
+ }
195
+ else {
196
+ resultado += this.dicionarioDeclaracoes[declaracaoConst.inicializador.constructor.name](declaracaoConst.inicializador);
197
+ }
198
+ resultado += ';';
199
+ }
200
+ return resultado;
201
+ }
202
+ traduzirDeclaracaoTente(declaracaoTente) {
203
+ let resultado = 'try {\n';
204
+ this.indentacao += 4;
205
+ resultado += ' '.repeat(this.indentacao);
206
+ for (let condicao of declaracaoTente.caminhoTente) {
207
+ resultado += this.dicionarioDeclaracoes[condicao.constructor.name](condicao) + '\n';
208
+ resultado += ' '.repeat(this.indentacao);
209
+ }
210
+ resultado += '}';
211
+ if (declaracaoTente.caminhoPegue !== null) {
212
+ resultado += '\ncatch {\n';
213
+ resultado += ' '.repeat(this.indentacao);
214
+ if (Array.isArray(declaracaoTente.caminhoPegue)) {
215
+ for (let declaracao of declaracaoTente.caminhoPegue) {
216
+ resultado += this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao) + '\n';
217
+ }
218
+ }
219
+ else {
220
+ for (let corpo of declaracaoTente.caminhoPegue.corpo) {
221
+ resultado += this.dicionarioDeclaracoes[corpo.constructor.name](corpo) + '\n';
222
+ }
223
+ }
224
+ resultado += ' '.repeat(this.indentacao);
225
+ resultado += '}';
226
+ }
227
+ if (declaracaoTente.caminhoFinalmente !== null) {
228
+ resultado += '\nfinally {\n';
229
+ for (let finalmente of declaracaoTente.caminhoFinalmente) {
230
+ resultado += this.dicionarioDeclaracoes[finalmente.constructor.name](finalmente) + '\n';
231
+ }
232
+ resultado += ' '.repeat(this.indentacao);
233
+ resultado += '}';
234
+ }
235
+ return resultado;
236
+ }
237
+ logicaComumBlocoEscopo(declaracoes) {
238
+ let resultado = '{\n';
239
+ this.indentacao += 4;
240
+ if (typeof declaracoes[Symbol.iterator] === 'function') {
241
+ for (const declaracaoOuConstruto of declaracoes) {
242
+ resultado += ' '.repeat(this.indentacao);
243
+ const nomeConstrutor = declaracaoOuConstruto.constructor.name;
244
+ if (this.dicionarioConstrutos.hasOwnProperty(nomeConstrutor)) {
245
+ resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoOuConstruto);
246
+ }
247
+ else {
248
+ resultado += this.dicionarioDeclaracoes[nomeConstrutor](declaracaoOuConstruto);
249
+ }
250
+ resultado += '\n';
251
+ }
252
+ }
253
+ this.indentacao -= 4;
254
+ resultado += ' '.repeat(this.indentacao) + '}\n';
255
+ return resultado;
256
+ }
257
+ logicaTraducaoMetodoClasse(metodoClasse) {
258
+ this.indentacao += 4;
259
+ let resultado = ' '.repeat(this.indentacao);
260
+ resultado += metodoClasse.simbolo.lexema === 'construtor' ? 'constructor(' : metodoClasse.simbolo.lexema + '(';
261
+ for (let parametro of metodoClasse.funcao.parametros) {
262
+ resultado += parametro.nome.lexema + ', ';
263
+ }
264
+ if (metodoClasse.funcao.parametros.length > 0) {
265
+ resultado = resultado.slice(0, -2);
266
+ }
267
+ resultado += ') ';
268
+ resultado += this.logicaComumBlocoEscopo(metodoClasse.funcao.corpo);
269
+ resultado += ' '.repeat(this.indentacao) + '\n';
270
+ this.indentacao -= 4;
271
+ return resultado;
272
+ }
273
+ traduzirDeclaracaoClasse(declaracaoClasse) {
274
+ let resultado = 'export class ';
275
+ if (declaracaoClasse.superClasse)
276
+ resultado += `${declaracaoClasse.simbolo.lexema} extends ${declaracaoClasse.superClasse.simbolo.lexema} {\n`;
277
+ else
278
+ resultado += declaracaoClasse.simbolo.lexema + ' {\n';
279
+ for (let metodo of declaracaoClasse.metodos) {
280
+ resultado += this.logicaTraducaoMetodoClasse(metodo);
281
+ }
282
+ resultado += '}';
283
+ return resultado;
284
+ }
285
+ traduzirDeclaracaoSe(declaracaoSe) {
286
+ let resultado = 'if (';
287
+ const condicao = this.dicionarioConstrutos[declaracaoSe.condicao.constructor.name](declaracaoSe.condicao);
288
+ resultado += condicao;
289
+ resultado += ')';
290
+ resultado += this.dicionarioDeclaracoes[declaracaoSe.caminhoEntao.constructor.name](declaracaoSe.caminhoEntao);
291
+ if (declaracaoSe.caminhoSenao !== null) {
292
+ resultado += ' '.repeat(this.indentacao);
293
+ resultado += 'else ';
294
+ const se = declaracaoSe === null || declaracaoSe === void 0 ? void 0 : declaracaoSe.caminhoSenao;
295
+ if (se === null || se === void 0 ? void 0 : se.caminhoEntao) {
296
+ resultado += 'if (';
297
+ resultado += this.dicionarioConstrutos[se.condicao.constructor.name](se.condicao);
298
+ resultado += ')';
299
+ resultado += this.dicionarioDeclaracoes[se.caminhoEntao.constructor.name](se.caminhoEntao);
300
+ resultado += ' '.repeat(this.indentacao);
301
+ if (se === null || se === void 0 ? void 0 : se.caminhoSenao) {
302
+ resultado += 'else ';
303
+ resultado += this.dicionarioDeclaracoes[se.caminhoSenao.constructor.name](se.caminhoSenao);
304
+ return resultado;
305
+ }
306
+ }
307
+ resultado += this.dicionarioDeclaracoes[declaracaoSe.caminhoSenao.constructor.name](declaracaoSe.caminhoSenao);
308
+ }
309
+ return resultado;
310
+ }
311
+ traduzirDeclaracaoRetorna(declaracaoRetorna) {
312
+ let resultado = 'return ';
313
+ const nomeConstrutor = declaracaoRetorna.valor.constructor.name;
314
+ return (resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoRetorna === null || declaracaoRetorna === void 0 ? void 0 : declaracaoRetorna.valor));
315
+ }
316
+ traduzirDeclaracaoParaCada(declaracaoParaCada) {
317
+ let resultado = `for (let ${declaracaoParaCada.nomeVariavelIteracao} of `;
318
+ resultado +=
319
+ this.dicionarioConstrutos[declaracaoParaCada.vetor.constructor.name](declaracaoParaCada.vetor) + ') ';
320
+ resultado += this.dicionarioDeclaracoes[declaracaoParaCada.corpo.constructor.name](declaracaoParaCada.corpo);
321
+ return resultado;
322
+ }
323
+ traduzirDeclaracaoPara(declaracaoPara) {
324
+ let resultado = 'for (';
325
+ if (declaracaoPara.inicializador.constructor.name === 'Array') {
326
+ resultado +=
327
+ this.dicionarioDeclaracoes[declaracaoPara.inicializador[0].constructor.name](declaracaoPara.inicializador[0]) + ' ';
328
+ }
329
+ else {
330
+ resultado +=
331
+ this.dicionarioDeclaracoes[declaracaoPara.inicializador.constructor.name](declaracaoPara.inicializador) + ' ';
332
+ }
333
+ resultado += !resultado.includes(';') ? ';' : '';
334
+ resultado +=
335
+ this.dicionarioConstrutos[declaracaoPara.condicao.constructor.name](declaracaoPara.condicao) + '; ';
336
+ resultado +=
337
+ this.dicionarioConstrutos[declaracaoPara.incrementar.constructor.name](declaracaoPara.incrementar) + ') ';
338
+ resultado += this.dicionarioDeclaracoes[declaracaoPara.corpo.constructor.name](declaracaoPara.corpo);
339
+ return resultado;
340
+ }
341
+ traduzirDeclaracaoImportar(declaracaoImportar) {
342
+ return `'importar() não é suportado por este padrão de JavaScript'`;
343
+ }
344
+ traduzirDeclaracaoLeia(declaracaoLeia) {
345
+ return `'leia() não é suportado por este padrão de JavaScript.'`;
346
+ }
347
+ traduzirDeclaracaoFuncao(declaracaoFuncao) {
348
+ let resultado = 'function ';
349
+ resultado += declaracaoFuncao.simbolo.lexema + ' (';
350
+ for (const parametro of declaracaoFuncao.funcao.parametros) {
351
+ resultado += parametro.nome.lexema + ', ';
352
+ }
353
+ if (declaracaoFuncao.funcao.parametros.length > 0) {
354
+ resultado = resultado.slice(0, -2);
355
+ }
356
+ resultado += ') ';
357
+ resultado += this.logicaComumBlocoEscopo(declaracaoFuncao.funcao.corpo);
358
+ return resultado;
359
+ }
360
+ traduzirDeclaracaoFalhar(falhar) {
361
+ return `throw '${falhar.explicacao}'`;
362
+ }
363
+ traduzirDeclaracaoFazer(declaracaoFazer) {
364
+ let resultado = 'do ';
365
+ resultado += this.dicionarioDeclaracoes[declaracaoFazer.caminhoFazer.constructor.name](declaracaoFazer.caminhoFazer);
366
+ resultado +=
367
+ 'while (' +
368
+ this.dicionarioConstrutos[declaracaoFazer.condicaoEnquanto.constructor.name](declaracaoFazer.condicaoEnquanto) +
369
+ ') ';
370
+ return resultado;
371
+ }
372
+ traduzirDeclaracaoExpressao(declaracaoExpressao) {
373
+ return this.dicionarioConstrutos[declaracaoExpressao.expressao.constructor.name](declaracaoExpressao.expressao);
374
+ }
375
+ logicaComumCaminhosEscolha(caminho) {
376
+ var _a, _b, _c;
377
+ let resultado = '';
378
+ this.indentacao += 4;
379
+ resultado += ' '.repeat(this.indentacao);
380
+ if ((_a = caminho === null || caminho === void 0 ? void 0 : caminho.condicoes) === null || _a === void 0 ? void 0 : _a.length) {
381
+ for (let condicao of caminho.condicoes) {
382
+ resultado += 'case ' + this.dicionarioConstrutos[condicao.constructor.name](condicao) + ':\n';
383
+ resultado += ' '.repeat(this.indentacao);
384
+ }
385
+ }
386
+ if ((_b = caminho === null || caminho === void 0 ? void 0 : caminho.declaracoes) === null || _b === void 0 ? void 0 : _b.length) {
387
+ for (let declaracao of caminho.declaracoes) {
388
+ resultado += ' '.repeat(this.indentacao + 4);
389
+ if (((_c = declaracao === null || declaracao === void 0 ? void 0 : declaracao.simboloChave) === null || _c === void 0 ? void 0 : _c.lexema) === 'retorna') {
390
+ resultado +=
391
+ 'return ' + this.dicionarioConstrutos[declaracao.valor.constructor.name](declaracao.valor);
392
+ }
393
+ resultado += this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao) + '\n';
394
+ }
395
+ resultado += ' '.repeat(this.indentacao + 4);
396
+ resultado += 'break' + '\n';
397
+ }
398
+ this.indentacao -= 4;
399
+ return resultado;
400
+ }
401
+ traduzirDeclaracaoEscolha(declaracaoEscolha) {
402
+ let resultado = 'switch (';
403
+ resultado +=
404
+ this.dicionarioConstrutos[declaracaoEscolha.identificadorOuLiteral.constructor.name](declaracaoEscolha.identificadorOuLiteral) + ') {\n';
405
+ for (let caminho of declaracaoEscolha.caminhos) {
406
+ resultado += this.logicaComumCaminhosEscolha(caminho);
407
+ }
408
+ if (declaracaoEscolha.caminhoPadrao) {
409
+ resultado += ' '.repeat(4);
410
+ resultado += 'default:\n';
411
+ resultado += this.logicaComumCaminhosEscolha(declaracaoEscolha.caminhoPadrao);
412
+ }
413
+ resultado += '}\n';
414
+ return resultado;
415
+ }
416
+ traduzirDeclaracaoEnquanto(declaracaoEnquanto) {
417
+ let resultado = 'while (';
418
+ resultado +=
419
+ this.dicionarioConstrutos[declaracaoEnquanto.condicao.constructor.name](declaracaoEnquanto.condicao) + ') ';
420
+ resultado += this.dicionarioDeclaracoes[declaracaoEnquanto.corpo.constructor.name](declaracaoEnquanto.corpo);
421
+ return resultado;
422
+ }
423
+ traduzirDeclaracaoBloco(declaracaoBloco) {
424
+ return this.logicaComumBlocoEscopo(declaracaoBloco.declaracoes);
425
+ }
426
+ traduzirConstrutoVetor(vetor) {
427
+ if (!vetor.valores.length) {
428
+ return '[]';
429
+ }
430
+ let resultado = '[';
431
+ for (let valor of vetor.valores) {
432
+ resultado += `${this.dicionarioConstrutos[valor.constructor.name](valor)}, `;
433
+ }
434
+ if (vetor.valores.length > 0) {
435
+ resultado = resultado.slice(0, -2);
436
+ }
437
+ resultado += ']';
438
+ return resultado;
439
+ }
440
+ traduzirConstrutoVariavel(variavel) {
441
+ return variavel.simbolo.lexema;
442
+ }
443
+ traduzirConstrutoUnario(unario) {
444
+ var _a, _b;
445
+ let resultado = '';
446
+ if ([delegua_1.default.INCREMENTAR, delegua_1.default.DECREMENTAR].includes(unario.operador.tipo)) {
447
+ resultado += (_a = unario.operando.valor) !== null && _a !== void 0 ? _a : unario.operando.simbolo.lexema;
448
+ resultado += unario.operador.tipo === delegua_1.default.INCREMENTAR ? '++' : '--';
449
+ }
450
+ else {
451
+ resultado += this.traduzirSimboloOperador(unario.operador);
452
+ resultado += (_b = unario.operando.valor) !== null && _b !== void 0 ? _b : unario.operando.simbolo.lexema;
453
+ }
454
+ return resultado;
455
+ }
456
+ traduzirConstrutoTipoDe(tipoDe) {
457
+ let resultado = 'typeof ';
458
+ if (typeof tipoDe.valor === 'string')
459
+ resultado += `'${tipoDe.valor}'`;
460
+ else if (tipoDe.valor instanceof construtos_1.Vetor)
461
+ resultado += this.traduzirConstrutoVetor(tipoDe.valor);
462
+ else
463
+ resultado += tipoDe.valor;
464
+ return resultado;
465
+ }
466
+ traduzirConstrutoLogico(logico) {
467
+ let direita = this.dicionarioConstrutos[logico.direita.constructor.name](logico.direita);
468
+ let operador = this.traduzirSimboloOperador(logico.operador);
469
+ let esquerda = this.dicionarioConstrutos[logico.esquerda.constructor.name](logico.esquerda);
470
+ return `${direita} ${operador} ${esquerda}`;
471
+ }
472
+ traduzirFuncaoConstruto(funcaoConstruto) {
473
+ let resultado = 'function(';
474
+ for (const parametro of funcaoConstruto.parametros) {
475
+ const tipoParametro = this.resolveTipoDeclaracaoVarEContante(parametro.tipo);
476
+ resultado += `${parametro.nome.lexema}${tipoParametro}, `;
477
+ }
478
+ if (funcaoConstruto.parametros.length > 0) {
479
+ resultado = resultado.slice(0, -2);
480
+ }
481
+ resultado += ') ';
482
+ resultado += this.logicaComumBlocoEscopo(funcaoConstruto.corpo);
483
+ return resultado;
484
+ }
485
+ traduzirConstrutoDefinirValor(definirValor) {
486
+ let resultado = '';
487
+ if (definirValor.objeto instanceof construtos_1.Isto) {
488
+ resultado = 'this.' + definirValor.nome.lexema + ' = ';
489
+ }
490
+ resultado += definirValor.valor.simbolo.lexema;
491
+ return resultado;
492
+ }
493
+ traduzirConstrutoChamada(chamada) {
494
+ let resultado = '';
495
+ const retorno = `${this.dicionarioConstrutos[chamada.entidadeChamada.constructor.name](chamada.entidadeChamada)}`;
496
+ const instanciaClasse = this.declaracoesDeClasses.some((declaracao) => { var _a; return ((_a = declaracao === null || declaracao === void 0 ? void 0 : declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === retorno; });
497
+ if (instanciaClasse) {
498
+ const classe = this.declaracoesDeClasses.find((declaracao) => { var _a; return ((_a = declaracao === null || declaracao === void 0 ? void 0 : declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === retorno; });
499
+ if (classe.simbolo.lexema === retorno)
500
+ resultado += `new ${retorno}`;
501
+ }
502
+ else {
503
+ resultado += retorno;
504
+ }
505
+ resultado += '(';
506
+ for (let parametro of chamada.argumentos) {
507
+ resultado += this.dicionarioConstrutos[parametro.constructor.name](parametro) + ', ';
508
+ }
509
+ if (chamada.argumentos.length > 0) {
510
+ resultado = resultado.slice(0, -2);
511
+ }
512
+ resultado += ')';
513
+ return resultado;
514
+ }
515
+ traduzirConstrutoBinario(binario) {
516
+ let resultado = '';
517
+ if (binario.esquerda.constructor.name === 'Agrupamento')
518
+ resultado += '(' + this.dicionarioConstrutos[binario.esquerda.constructor.name](binario.esquerda) + ')';
519
+ else
520
+ resultado += this.dicionarioConstrutos[binario.esquerda.constructor.name](binario.esquerda);
521
+ let operador = this.traduzirSimboloOperador(binario.operador);
522
+ resultado += ` ${operador} `;
523
+ if (binario.direita.constructor.name === 'Agrupamento')
524
+ resultado += '(' + this.dicionarioConstrutos[binario.direita.constructor.name](binario.direita) + ')';
525
+ else
526
+ resultado += this.dicionarioConstrutos[binario.direita.constructor.name](binario.direita);
527
+ return resultado;
528
+ }
529
+ traduzirConstrutoAtribuir(atribuir) {
530
+ let resultado = atribuir.simbolo.lexema;
531
+ resultado += ' = ' + this.dicionarioConstrutos[atribuir.valor.constructor.name](atribuir.valor);
532
+ return resultado;
533
+ }
534
+ traduzirConstrutoAtribuicaoPorIndice(AtribuicaoPorIndice) {
535
+ var _a, _b;
536
+ let resultado = '';
537
+ resultado += AtribuicaoPorIndice.objeto.simbolo.lexema + '[';
538
+ resultado +=
539
+ this.dicionarioConstrutos[AtribuicaoPorIndice.indice.constructor.name](AtribuicaoPorIndice.indice) + ']';
540
+ resultado += ' = ';
541
+ if ((_b = (_a = AtribuicaoPorIndice === null || AtribuicaoPorIndice === void 0 ? void 0 : AtribuicaoPorIndice.valor) === null || _a === void 0 ? void 0 : _a.simbolo) === null || _b === void 0 ? void 0 : _b.lexema) {
542
+ resultado += `${AtribuicaoPorIndice.valor.simbolo.lexema}`;
543
+ }
544
+ else {
545
+ resultado += this.dicionarioConstrutos[AtribuicaoPorIndice.valor.constructor.name](AtribuicaoPorIndice.valor);
546
+ }
547
+ return resultado;
548
+ }
549
+ traduzirConstrutoAgrupamento(agrupamento) {
550
+ return this.dicionarioConstrutos[agrupamento.constructor.name](agrupamento.expressao || agrupamento);
551
+ }
552
+ trazudirConstrutoAcessoMetodo(acessoMetodo) {
553
+ if (acessoMetodo.objeto instanceof construtos_1.Variavel) {
554
+ let objetoVariavel = acessoMetodo.objeto;
555
+ return `${objetoVariavel.simbolo.lexema}.${this.traduzirFuncoesNativas(acessoMetodo.simbolo.lexema)}`;
556
+ }
557
+ return `this.${acessoMetodo.simbolo.lexema}`;
558
+ }
559
+ traduzirAcessoIndiceVariavel(acessoIndiceVariavel) {
560
+ let resultado = '';
561
+ resultado += this.dicionarioConstrutos[acessoIndiceVariavel.entidadeChamada.constructor.name](acessoIndiceVariavel.entidadeChamada);
562
+ resultado += `[${this.dicionarioConstrutos[acessoIndiceVariavel.indice.constructor.name](acessoIndiceVariavel.indice)}]`;
563
+ return resultado;
564
+ }
565
+ traduzir(declaracoes) {
566
+ let resultado = '';
567
+ this.declaracoesDeClasses = declaracoes.filter((declaracao) => declaracao instanceof declaracoes_1.Classe);
568
+ for (const declaracao of declaracoes) {
569
+ resultado += `${this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao)} \n`;
570
+ }
571
+ return resultado;
572
+ }
573
+ }
574
+ exports.TradutorAssemblyScript = TradutorAssemblyScript;
575
+ //# sourceMappingURL=tradutor-assemblyscript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tradutor-assemblyscript.js","sourceRoot":"","sources":["../../../fontes/tradutores/tradutor-assemblyscript.ts"],"names":[],"mappings":"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"}
@@ -152,7 +152,7 @@ class TradutorReversoJavaScript {
152
152
  traduzirConstrutoLiteral(literal) {
153
153
  if (literal.raw === 'true')
154
154
  return 'verdadeiro';
155
- else if (literal.raw === 'false')
155
+ if (literal.raw === 'false')
156
156
  return 'falso';
157
157
  return `${literal.raw}`;
158
158
  }
@@ -266,7 +266,7 @@ class TradutorReversoJavaScript {
266
266
  resultado += ')';
267
267
  resultado += this.logicaComumBlocoEscopo(_corpo.value);
268
268
  }
269
- } // else if (corpo.constructor.name === 'PropertyDefinition') {}
269
+ } // else if (corpo.constructor.name === 'PropertyDefinition') {}
270
270
  // else if (corpo.constructor.name === 'StaticBlock') {}
271
271
  }
272
272
  this.indentacao -= 4;