@designliquido/delegua 0.34.1 → 0.34.2

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.
@@ -16,6 +16,7 @@ class TradutorPython {
16
16
  Atribuir: this.traduzirConstrutoAtribuir.bind(this),
17
17
  Binario: this.traduzirConstrutoBinario.bind(this),
18
18
  Chamada: this.traduzirConstrutoChamada.bind(this),
19
+ Comentario: this.traduzirConstrutoComentario.bind(this),
19
20
  DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
20
21
  Literal: this.traduzirConstrutoLiteral.bind(this),
21
22
  Logico: this.traduzirConstrutoLogico.bind(this),
@@ -25,6 +26,7 @@ class TradutorPython {
25
26
  this.dicionarioDeclaracoes = {
26
27
  Bloco: this.traduzirDeclaracaoBloco.bind(this),
27
28
  Classe: this.traduzirDeclaracaoClasse.bind(this),
29
+ Comentario: this.traduzirConstrutoComentario.bind(this),
28
30
  Const: this.traduzirDeclaracaoConst.bind(this),
29
31
  Continua: () => 'continue',
30
32
  Escreva: this.traduzirDeclaracaoEscreva.bind(this),
@@ -135,54 +137,6 @@ class TradutorPython {
135
137
  resultado += ' '.repeat(this.indentacao) + '\n';
136
138
  return resultado;
137
139
  }
138
- traduzirDeclaracaoTente(declaracaoTente) {
139
- let resultado = 'try:\n';
140
- this.indentacao += 4;
141
- resultado += ' '.repeat(this.indentacao);
142
- for (let condicao of declaracaoTente.caminhoTente) {
143
- resultado += this.dicionarioDeclaracoes[condicao.constructor.name](condicao) + '\n';
144
- resultado += ' '.repeat(this.indentacao);
145
- }
146
- if (declaracaoTente.caminhoPegue !== null) {
147
- resultado += '\nexcept:\n';
148
- resultado += ' '.repeat(this.indentacao);
149
- if (Array.isArray(declaracaoTente.caminhoPegue)) {
150
- for (let declaracao of declaracaoTente.caminhoPegue) {
151
- resultado += this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao) + '\n';
152
- }
153
- }
154
- else {
155
- for (let corpo of declaracaoTente.caminhoPegue.corpo) {
156
- resultado += this.dicionarioDeclaracoes[corpo.constructor.name](corpo) + '\n';
157
- }
158
- }
159
- resultado += ' '.repeat(this.indentacao);
160
- }
161
- if (declaracaoTente.caminhoFinalmente !== null) {
162
- resultado += '\nfinally:\n';
163
- resultado += ' '.repeat(this.indentacao);
164
- for (let finalmente of declaracaoTente.caminhoFinalmente) {
165
- resultado += this.dicionarioDeclaracoes[finalmente.constructor.name](finalmente) + '\n';
166
- }
167
- }
168
- return resultado;
169
- }
170
- traduzirConstrutoLogico(logico) {
171
- let direita = this.dicionarioConstrutos[logico.direita.constructor.name](logico.direita);
172
- let operador = this.traduzirSimboloOperador(logico.operador);
173
- let esquerda = this.dicionarioConstrutos[logico.esquerda.constructor.name](logico.esquerda);
174
- return `${esquerda} ${operador} ${direita}`;
175
- }
176
- traduzirConstrutoLiteral(literal) {
177
- if (typeof literal.valor === 'string')
178
- return `'${literal.valor}'`;
179
- if (typeof literal.valor === 'boolean') {
180
- return literal.valor ? 'True' : 'False';
181
- }
182
- if (!literal.valor)
183
- return 'None';
184
- return literal.valor;
185
- }
186
140
  trazudirConstrutoAcessoMetodo(acessoMetodo) {
187
141
  if (acessoMetodo.objeto instanceof construtos_1.Variavel) {
188
142
  let objetoVariavel = acessoMetodo.objeto;
@@ -197,24 +151,12 @@ class TradutorPython {
197
151
  }
198
152
  return `self.${acessoMetodo.simbolo.lexema}`;
199
153
  }
200
- traduzirDeclaracaoEscreva(declaracaoEscreva) {
201
- let resultado = 'print(';
202
- for (const argumento of declaracaoEscreva.argumentos) {
203
- const valor = this.dicionarioConstrutos[argumento.constructor.name](argumento);
204
- resultado += valor + ', ';
205
- }
206
- resultado = resultado.slice(0, -2);
207
- resultado += ')';
208
- return resultado;
154
+ traduzirConstrutoAgrupamento(agrupamento) {
155
+ return this.dicionarioConstrutos[agrupamento.constructor.name](agrupamento.expressao || agrupamento);
209
156
  }
210
- traduzirDeclaracaoLeia(declaracaoLeia) {
211
- let resultado = 'input(';
212
- for (const argumento of declaracaoLeia.argumentos) {
213
- const valor = this.dicionarioConstrutos[argumento.constructor.name](argumento);
214
- resultado += valor + ', ';
215
- }
216
- resultado = resultado.slice(0, -2);
217
- resultado += ')';
157
+ traduzirConstrutoAtribuir(atribuir) {
158
+ let resultado = atribuir.simbolo.lexema;
159
+ resultado += ' = ' + this.dicionarioConstrutos[atribuir.valor.constructor.name](atribuir.valor);
218
160
  return resultado;
219
161
  }
220
162
  traduzirConstrutoBinario(binario) {
@@ -231,17 +173,85 @@ class TradutorPython {
231
173
  resultado += this.dicionarioConstrutos[binario.direita.constructor.name](binario.direita);
232
174
  return resultado;
233
175
  }
234
- traduzirDeclaracaoFuncao(declaracaoFuncao) {
235
- let resultado = 'def ';
236
- resultado += declaracaoFuncao.simbolo.lexema + '(';
237
- for (const parametro of declaracaoFuncao.funcao.parametros) {
238
- resultado += parametro.nome.lexema + ', ';
176
+ traduzirConstrutoChamada(chamada) {
177
+ let resultado = '';
178
+ const retorno = `${this.dicionarioConstrutos[chamada.entidadeChamada.constructor.name](chamada.entidadeChamada)}`;
179
+ resultado += retorno;
180
+ if (!resultado.includes('in ') && !resultado.includes('len') && !resultado.includes('pop(')) {
181
+ resultado += '(';
239
182
  }
240
- if (declaracaoFuncao.funcao.parametros.length > 0) {
183
+ if (!resultado.includes('len(')) {
184
+ for (let parametro of chamada.argumentos) {
185
+ const parametroTratado = this.dicionarioConstrutos[parametro.constructor.name](parametro);
186
+ if (resultado.includes('in ') || resultado.includes('len')) {
187
+ resultado = `${parametroTratado} ${resultado}`;
188
+ }
189
+ else {
190
+ resultado += parametroTratado + ', ';
191
+ }
192
+ }
193
+ if (chamada.argumentos.length > 0 && !resultado.includes('in ') && !resultado.includes('len')) {
194
+ resultado = resultado.slice(0, -2);
195
+ }
196
+ if (!resultado.includes(')') && !resultado.includes('in ')) {
197
+ resultado += ')';
198
+ }
199
+ }
200
+ return resultado;
201
+ }
202
+ traduzirConstrutoComentario(comentario) {
203
+ let resultado = '';
204
+ if (comentario.multilinha) {
205
+ resultado += `'''`;
206
+ for (let linhaComentario of comentario.conteudo) {
207
+ resultado += `${linhaComentario}\n`;
208
+ }
209
+ resultado += `'''`;
210
+ }
211
+ else {
212
+ resultado += `# ${comentario.conteudo}`;
213
+ }
214
+ return resultado;
215
+ }
216
+ traduzirConstrutoDefinirValor(definirValor) {
217
+ let resultado = '';
218
+ if (definirValor.objeto instanceof construtos_1.Isto) {
219
+ resultado = 'self.' + definirValor.nome.lexema + ' = ';
220
+ }
221
+ resultado += definirValor.valor.simbolo.lexema;
222
+ return resultado;
223
+ }
224
+ traduzirConstrutoLiteral(literal) {
225
+ if (typeof literal.valor === 'string')
226
+ return `'${literal.valor}'`;
227
+ if (typeof literal.valor === 'boolean') {
228
+ return literal.valor ? 'True' : 'False';
229
+ }
230
+ if (!literal.valor)
231
+ return 'None';
232
+ return literal.valor;
233
+ }
234
+ traduzirConstrutoLogico(logico) {
235
+ let direita = this.dicionarioConstrutos[logico.direita.constructor.name](logico.direita);
236
+ let operador = this.traduzirSimboloOperador(logico.operador);
237
+ let esquerda = this.dicionarioConstrutos[logico.esquerda.constructor.name](logico.esquerda);
238
+ return `${esquerda} ${operador} ${direita}`;
239
+ }
240
+ traduzirConstrutoVariavel(variavel) {
241
+ return variavel.simbolo.lexema;
242
+ }
243
+ traduzirConstrutoVetor(vetor) {
244
+ if (!vetor.valores.length) {
245
+ return '[]';
246
+ }
247
+ let resultado = '[';
248
+ for (let valor of vetor.valores) {
249
+ resultado += `${this.dicionarioConstrutos[valor.constructor.name](valor)}, `;
250
+ }
251
+ if (vetor.valores.length > 0) {
241
252
  resultado = resultado.slice(0, -2);
242
253
  }
243
- resultado += '):';
244
- resultado += this.logicaComumBlocoEscopo(declaracaoFuncao.funcao.corpo);
254
+ resultado += ']';
245
255
  return resultado;
246
256
  }
247
257
  traduzirDeclaracaoSe(declaracaoSe, iniciarComIf = true) {
@@ -308,6 +318,9 @@ class TradutorPython {
308
318
  this.indentacao -= 4;
309
319
  return resultado;
310
320
  }
321
+ traduzirDeclaracaoBloco(declaracaoBloco) {
322
+ return this.logicaComumBlocoEscopo(declaracaoBloco.declaracoes);
323
+ }
311
324
  traduzirDeclaracaoClasse(declaracaoClasse) {
312
325
  let resultado = 'class ';
313
326
  if (declaracaoClasse.superClasse)
@@ -321,88 +334,115 @@ class TradutorPython {
321
334
  }
322
335
  return resultado;
323
336
  }
324
- traduzirConstrutoChamada(chamada) {
337
+ traduzirDeclaracaoConst(declaracaoConst) {
325
338
  let resultado = '';
326
- const retorno = `${this.dicionarioConstrutos[chamada.entidadeChamada.constructor.name](chamada.entidadeChamada)}`;
327
- resultado += retorno;
328
- if (!resultado.includes('in ') && !resultado.includes('len') && !resultado.includes('pop(')) {
329
- resultado += '(';
330
- }
331
- if (!resultado.includes('len(')) {
332
- for (let parametro of chamada.argumentos) {
333
- const parametroTratado = this.dicionarioConstrutos[parametro.constructor.name](parametro);
334
- if (resultado.includes('in ') || resultado.includes('len')) {
335
- resultado = `${parametroTratado} ${resultado}`;
336
- }
337
- else {
338
- resultado += parametroTratado + ', ';
339
- }
340
- }
341
- if (chamada.argumentos.length > 0 && !resultado.includes('in ') && !resultado.includes('len')) {
342
- resultado = resultado.slice(0, -2);
339
+ resultado += this.traduzirNomeVariavel(declaracaoConst.simbolo.lexema);
340
+ resultado += ' = ';
341
+ const inicializador = declaracaoConst.inicializador;
342
+ if (inicializador) {
343
+ if (this.dicionarioConstrutos[inicializador.constructor.name]) {
344
+ resultado += this.dicionarioConstrutos[declaracaoConst.inicializador.constructor.name](declaracaoConst.inicializador);
343
345
  }
344
- if (!resultado.includes(')') && !resultado.includes('in ')) {
345
- resultado += ')';
346
+ else {
347
+ resultado += this.dicionarioDeclaracoes[declaracaoConst.inicializador.constructor.name](declaracaoConst.inicializador);
346
348
  }
347
349
  }
350
+ else {
351
+ resultado += 'None';
352
+ }
348
353
  return resultado;
349
354
  }
350
- traduzirDeclaracaoRetorna(declaracaoRetorna) {
351
- let resultado = 'return ';
352
- const nomeConstrutor = declaracaoRetorna.valor.constructor.name;
353
- return (resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoRetorna === null || declaracaoRetorna === void 0 ? void 0 : declaracaoRetorna.valor));
354
- }
355
- traduzirConstrutoVetor(vetor) {
356
- if (!vetor.valores.length) {
357
- return '[]';
355
+ traduzirDeclaracaoEscreva(declaracaoEscreva) {
356
+ let resultado = 'print(';
357
+ for (const argumento of declaracaoEscreva.argumentos) {
358
+ const valor = this.dicionarioConstrutos[argumento.constructor.name](argumento);
359
+ resultado += valor + ', ';
358
360
  }
359
- let resultado = '[';
360
- for (let valor of vetor.valores) {
361
- resultado += `${this.dicionarioConstrutos[valor.constructor.name](valor)}, `;
361
+ resultado = resultado.slice(0, -2);
362
+ resultado += ')';
363
+ return resultado;
364
+ }
365
+ traduzirDeclaracaoExpressao(declaracaoExpressao) {
366
+ return this.dicionarioConstrutos[declaracaoExpressao.expressao.constructor.name](declaracaoExpressao.expressao);
367
+ }
368
+ traduzirDeclaracaoFuncao(declaracaoFuncao) {
369
+ let resultado = 'def ';
370
+ resultado += declaracaoFuncao.simbolo.lexema + '(';
371
+ for (const parametro of declaracaoFuncao.funcao.parametros) {
372
+ resultado += parametro.nome.lexema + ', ';
362
373
  }
363
- if (vetor.valores.length > 0) {
374
+ if (declaracaoFuncao.funcao.parametros.length > 0) {
364
375
  resultado = resultado.slice(0, -2);
365
376
  }
366
- resultado += ']';
377
+ resultado += '):';
378
+ resultado += this.logicaComumBlocoEscopo(declaracaoFuncao.funcao.corpo);
367
379
  return resultado;
368
380
  }
369
- traduzirConstrutoDefinirValor(definirValor) {
370
- let resultado = '';
371
- if (definirValor.objeto instanceof construtos_1.Isto) {
372
- resultado = 'self.' + definirValor.nome.lexema + ' = ';
381
+ traduzirDeclaracaoLeia(declaracaoLeia) {
382
+ let resultado = 'input(';
383
+ for (const argumento of declaracaoLeia.argumentos) {
384
+ const valor = this.dicionarioConstrutos[argumento.constructor.name](argumento);
385
+ resultado += valor + ', ';
373
386
  }
374
- resultado += definirValor.valor.simbolo.lexema;
387
+ resultado = resultado.slice(0, -2);
388
+ resultado += ')';
375
389
  return resultado;
376
390
  }
377
- traduzirDeclaracaoVar(declaracaoVar) {
378
- let resultado = '';
379
- resultado += this.traduzirNomeVariavel(declaracaoVar.simbolo.lexema);
380
- resultado += ' = ';
381
- const inicializador = declaracaoVar.inicializador;
382
- if (inicializador) {
383
- if (this.dicionarioConstrutos[inicializador.constructor.name]) {
384
- resultado += this.dicionarioConstrutos[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
391
+ traduzirDeclaracaoParaCada(declaracaoParaCada) {
392
+ let resultado = `for ${declaracaoParaCada.nomeVariavelIteracao} in `;
393
+ resultado +=
394
+ this.dicionarioConstrutos[declaracaoParaCada.vetor.constructor.name](declaracaoParaCada.vetor) + ':\n';
395
+ resultado += this.dicionarioDeclaracoes[declaracaoParaCada.corpo.constructor.name](declaracaoParaCada.corpo);
396
+ return resultado;
397
+ }
398
+ traduzirDeclaracaoRetorna(declaracaoRetorna) {
399
+ let resultado = 'return ';
400
+ const nomeConstrutor = declaracaoRetorna.valor.constructor.name;
401
+ return (resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoRetorna === null || declaracaoRetorna === void 0 ? void 0 : declaracaoRetorna.valor));
402
+ }
403
+ traduzirDeclaracaoTente(declaracaoTente) {
404
+ let resultado = 'try:\n';
405
+ this.indentacao += 4;
406
+ resultado += ' '.repeat(this.indentacao);
407
+ for (let condicao of declaracaoTente.caminhoTente) {
408
+ resultado += this.dicionarioDeclaracoes[condicao.constructor.name](condicao) + '\n';
409
+ resultado += ' '.repeat(this.indentacao);
410
+ }
411
+ if (declaracaoTente.caminhoPegue !== null) {
412
+ resultado += '\nexcept:\n';
413
+ resultado += ' '.repeat(this.indentacao);
414
+ if (Array.isArray(declaracaoTente.caminhoPegue)) {
415
+ for (let declaracao of declaracaoTente.caminhoPegue) {
416
+ resultado += this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao) + '\n';
417
+ }
385
418
  }
386
419
  else {
387
- resultado += this.dicionarioDeclaracoes[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
420
+ for (let corpo of declaracaoTente.caminhoPegue.corpo) {
421
+ resultado += this.dicionarioDeclaracoes[corpo.constructor.name](corpo) + '\n';
422
+ }
388
423
  }
424
+ resultado += ' '.repeat(this.indentacao);
389
425
  }
390
- else {
391
- resultado += 'None';
426
+ if (declaracaoTente.caminhoFinalmente !== null) {
427
+ resultado += '\nfinally:\n';
428
+ resultado += ' '.repeat(this.indentacao);
429
+ for (let finalmente of declaracaoTente.caminhoFinalmente) {
430
+ resultado += this.dicionarioDeclaracoes[finalmente.constructor.name](finalmente) + '\n';
431
+ }
392
432
  }
393
433
  return resultado;
394
434
  }
395
- traduzirDeclaracaoConst(declaracaoConst) {
435
+ traduzirDeclaracaoVar(declaracaoVar) {
396
436
  let resultado = '';
397
- resultado += this.traduzirNomeVariavel(declaracaoConst.simbolo.lexema);
437
+ resultado += this.traduzirNomeVariavel(declaracaoVar.simbolo.lexema);
398
438
  resultado += ' = ';
399
- const inicializador = declaracaoConst.inicializador;
439
+ const inicializador = declaracaoVar.inicializador;
400
440
  if (inicializador) {
401
441
  if (this.dicionarioConstrutos[inicializador.constructor.name]) {
402
- resultado += this.dicionarioConstrutos[declaracaoConst.inicializador.constructor.name](declaracaoConst.inicializador);
442
+ resultado += this.dicionarioConstrutos[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
403
443
  }
404
444
  else {
405
- resultado += this.dicionarioDeclaracoes[declaracaoConst.inicializador.constructor.name](declaracaoConst.inicializador);
445
+ resultado += this.dicionarioDeclaracoes[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
406
446
  }
407
447
  }
408
448
  else {
@@ -410,30 +450,6 @@ class TradutorPython {
410
450
  }
411
451
  return resultado;
412
452
  }
413
- traduzirDeclaracaoParaCada(declaracaoParaCada) {
414
- let resultado = `for ${declaracaoParaCada.nomeVariavelIteracao} in `;
415
- resultado +=
416
- this.dicionarioConstrutos[declaracaoParaCada.vetor.constructor.name](declaracaoParaCada.vetor) + ':\n';
417
- resultado += this.dicionarioDeclaracoes[declaracaoParaCada.corpo.constructor.name](declaracaoParaCada.corpo);
418
- return resultado;
419
- }
420
- traduzirConstrutoAtribuir(atribuir) {
421
- let resultado = atribuir.simbolo.lexema;
422
- resultado += ' = ' + this.dicionarioConstrutos[atribuir.valor.constructor.name](atribuir.valor);
423
- return resultado;
424
- }
425
- traduzirConstrutoVariavel(variavel) {
426
- return variavel.simbolo.lexema;
427
- }
428
- traduzirDeclaracaoExpressao(declaracaoExpressao) {
429
- return this.dicionarioConstrutos[declaracaoExpressao.expressao.constructor.name](declaracaoExpressao.expressao);
430
- }
431
- traduzirDeclaracaoBloco(declaracaoBloco) {
432
- return this.logicaComumBlocoEscopo(declaracaoBloco.declaracoes);
433
- }
434
- traduzirConstrutoAgrupamento(agrupamento) {
435
- return this.dicionarioConstrutos[agrupamento.constructor.name](agrupamento.expressao || agrupamento);
436
- }
437
453
  traduzir(declaracoes) {
438
454
  let resultado = '';
439
455
  for (const declaracao of declaracoes) {
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-python.js","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-python.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-python.js","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-python.ts"],"names":[],"mappings":"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"}