@designliquido/delegua 0.12.5 → 0.12.6

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 (95) hide show
  1. package/README.md +7 -2
  2. package/bin/package.json +4 -4
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.js +4 -3
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  5. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +7 -6
  6. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +11 -11
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  9. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +2 -2
  10. package/fontes/bibliotecas/biblioteca-global.js +54 -127
  11. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  12. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js +49 -51
  13. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js.map +1 -1
  14. package/fontes/bibliotecas/dialetos/egua-classico/index.d.ts +1 -1
  15. package/fontes/bibliotecas/dialetos/egua-classico/index.js +7 -7
  16. package/fontes/bibliotecas/dialetos/egua-classico/index.js.map +1 -1
  17. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js +3 -3
  18. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js.map +1 -1
  19. package/fontes/bibliotecas/dialetos/egua-classico/textos.js +45 -45
  20. package/fontes/bibliotecas/dialetos/egua-classico/textos.js.map +1 -1
  21. package/fontes/bibliotecas/importar-biblioteca.js +4 -3
  22. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  23. package/fontes/bibliotecas/primitivas-texto.js +2 -4
  24. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  25. package/fontes/bibliotecas/primitivas-vetor.js +1 -1
  26. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  27. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  28. package/fontes/construtos/acesso-metodo.js.map +1 -1
  29. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  30. package/fontes/construtos/binario.js.map +1 -1
  31. package/fontes/construtos/construto.d.ts +1 -1
  32. package/fontes/construtos/definir-valor.js.map +1 -1
  33. package/fontes/construtos/formatacao-escrita.d.ts +2 -2
  34. package/fontes/construtos/funcao.js.map +1 -1
  35. package/fontes/construtos/logico.js.map +1 -1
  36. package/fontes/construtos/super.js.map +1 -1
  37. package/fontes/construtos/variavel.js.map +1 -1
  38. package/fontes/declaracoes/declaracao.d.ts +1 -1
  39. package/fontes/declaracoes/escolha.js.map +1 -1
  40. package/fontes/declaracoes/fazer.js.map +1 -1
  41. package/fontes/declaracoes/para.js.map +1 -1
  42. package/fontes/delegua.js +3 -2
  43. package/fontes/delegua.js.map +1 -1
  44. package/fontes/depuracao/cyrb53.js +2 -6
  45. package/fontes/depuracao/cyrb53.js.map +1 -1
  46. package/fontes/depuracao/remota/servidor-depuracao.js +15 -47
  47. package/fontes/depuracao/remota/servidor-depuracao.js.map +1 -1
  48. package/fontes/estruturas/delegua-classe.js +1 -3
  49. package/fontes/estruturas/delegua-classe.js.map +1 -1
  50. package/fontes/estruturas/delegua-funcao.js +1 -3
  51. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  52. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  53. package/fontes/formatadores/delegua.d.ts +6 -2
  54. package/fontes/formatadores/delegua.js +34 -12
  55. package/fontes/formatadores/delegua.js.map +1 -1
  56. package/fontes/interfaces/tradutor-interface.d.ts +1 -1
  57. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +19 -44
  58. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  59. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +2 -4
  60. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  61. package/fontes/interpretador/dialetos/visualg-com-depuracao.d.ts +3 -3
  62. package/fontes/interpretador/dialetos/visualg-com-depuracao.js +1 -3
  63. package/fontes/interpretador/dialetos/visualg-com-depuracao.js.map +1 -1
  64. package/fontes/interpretador/dialetos/visualg.d.ts +3 -3
  65. package/fontes/interpretador/dialetos/visualg.js +1 -3
  66. package/fontes/interpretador/dialetos/visualg.js.map +1 -1
  67. package/fontes/interpretador/inferenciador.js.map +1 -1
  68. package/fontes/interpretador/interpretador-com-depuracao.js +18 -21
  69. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  70. package/fontes/interpretador/interpretador.js +33 -71
  71. package/fontes/interpretador/interpretador.js.map +1 -1
  72. package/fontes/interpretador/pilha-escopos-execucao.js +5 -1
  73. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  74. package/fontes/lexador/dialetos/lexador-birl.js +1 -3
  75. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  76. package/fontes/lexador/dialetos/lexador-egua-classico.js +4 -11
  77. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  78. package/fontes/lexador/dialetos/lexador-eguap.js +4 -8
  79. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  80. package/fontes/lexador/dialetos/lexador-visualg.js +4 -9
  81. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  82. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +1 -1
  83. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
  84. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +1 -1
  85. package/fontes/lexador/lexador.js +2 -5
  86. package/fontes/lexador/lexador.js.map +1 -1
  87. package/fontes/lexador/palavras-reservadas.js +1 -1
  88. package/fontes/lexador/simbolo.js.map +1 -1
  89. package/fontes/tipos-de-simbolos/comum.js +1 -1
  90. package/fontes/tradutores/tradutor-javascript.js +9 -6
  91. package/fontes/tradutores/tradutor-javascript.js.map +1 -1
  92. package/fontes/tradutores/tradutor-reverso-javascript.d.ts +27 -9
  93. package/fontes/tradutores/tradutor-reverso-javascript.js +207 -44
  94. package/fontes/tradutores/tradutor-reverso-javascript.js.map +1 -1
  95. package/package.json +4 -4
@@ -1,3 +1,4 @@
1
+ import { ArrayExpression, BinaryExpression, ClassDeclaration, DoWhileStatement, ForStatement, Identifier, IfStatement, Literal, MemberExpression, NewExpression, ReturnStatement, TryStatement, UpdateExpression, VariableDeclaration, WhileStatement } from 'estree';
1
2
  /**
2
3
  * Esse tradutor traduz de JavaScript para Delégua.
3
4
  */
@@ -5,22 +6,39 @@ export declare class TradutorReversoJavaScript {
5
6
  indentacao: number;
6
7
  constructor();
7
8
  traduzirSimboloOperador(operador: any): string;
9
+ traduzirConstrutoVetor(vetor: ArrayExpression): string;
10
+ traduzirIdentificador(identificador: Identifier): string;
11
+ traduzirAtualizacaoVariavel(atualizarVariavel: UpdateExpression): string;
12
+ traduzirNovo(novo: NewExpression): string;
13
+ traduzirExpressao(expressao: MemberExpression): string;
8
14
  dicionarioConstrutos: {
15
+ AssignmentExpression: any;
16
+ ArrayExpression: any;
9
17
  ArrowFunctionExpression: any;
10
18
  BinaryExpression: any;
19
+ CallExpression: any;
20
+ Identifier: any;
11
21
  Literal: any;
22
+ MemberExpression: any;
23
+ NewExpression: any;
24
+ ThisExpression: (expressao: any) => string;
25
+ UpdateExpression: any;
12
26
  };
13
- dicionarioDeclaracoes: {
14
- ExpressionStatement: any;
15
- };
27
+ traduzirConstrutoChamada(chamada: any): string;
28
+ traduzirConstrutoAtribuir(atribuir: any): string;
16
29
  traduzirExpressaoDeclaracao(declaracao: any): string;
17
- traduzirDeclaracaoFuncao(funcao: any): string;
18
- traduzirConstrutoLiteral(literal: any): string;
19
- traduzirConstrutoBinario(binario: any): string;
20
- traduzirDeclaracaoDeVariavel(declaracao: any): string;
30
+ traduzirConstrutoLiteral(literal: Literal): string;
31
+ traduzirConstrutoBinario(binario: BinaryExpression): string;
32
+ traduzirDeclaracaoVariavel(declaracao: VariableDeclaration): string;
21
33
  logicaComumBlocoEscopo(declaracoes: any): string;
22
- traduzirDeclaracaoDeFuncao(declaracao: any): string;
23
- traduzirClasseDeclaracao(declaracao: any): string;
34
+ traduzirDeclaracaoPara(declaracao: ForStatement): string;
35
+ traduzirDeclaracaoFuncao(declaracao: any): string;
36
+ traduzirDeclaracaoClasse(declaracao: ClassDeclaration): string;
37
+ traduzirDeclaracaoRetorna(declaracao: ReturnStatement): string;
38
+ traduzirDeclaracaoEnquanto(declaracao: WhileStatement): string;
39
+ traduzirDeclaracaoFazerEnquanto(declaracao: DoWhileStatement): string;
40
+ traduzirDeclaracaoSe(declaracao: IfStatement): string;
41
+ traduzirDeclaracaoTente(declaracao: TryStatement): string;
24
42
  traduzirDeclaracao(declaracao: any): string;
25
43
  traduzir(codigo: any): string;
26
44
  }
@@ -9,20 +9,22 @@ class TradutorReversoJavaScript {
9
9
  constructor() {
10
10
  this.indentacao = 0;
11
11
  this.dicionarioConstrutos = {
12
+ AssignmentExpression: this.traduzirConstrutoAtribuir.bind(this),
13
+ ArrayExpression: this.traduzirConstrutoVetor.bind(this),
12
14
  ArrowFunctionExpression: this.traduzirDeclaracaoFuncao.bind(this),
13
15
  // Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
14
- // Atribuir: this.traduzirConstrutoAtribuir.bind(this),
15
16
  BinaryExpression: this.traduzirConstrutoBinario.bind(this),
16
- // Chamada: this.traduzirConstrutoChamada.bind(this),
17
+ CallExpression: this.traduzirConstrutoChamada.bind(this),
17
18
  // DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
18
19
  // Isto: this.traduzirConstrutoIsto.bind(this),
20
+ Identifier: this.traduzirIdentificador.bind(this),
19
21
  Literal: this.traduzirConstrutoLiteral.bind(this),
22
+ MemberExpression: this.traduzirExpressao.bind(this),
23
+ NewExpression: this.traduzirNovo.bind(this),
24
+ ThisExpression: (expressao) => 'isto.',
25
+ UpdateExpression: this.traduzirAtualizacaoVariavel.bind(this),
20
26
  // Variavel: this.traduzirConstrutoVariavel.bind(this),
21
27
  };
22
- this.dicionarioDeclaracoes = {
23
- ExpressionStatement: this.traduzirExpressaoDeclaracao.bind(this),
24
- // traduzirDeclaracaoEscreva
25
- };
26
28
  // Qualquer coisa pro ESLint ficar feliz.
27
29
  }
28
30
  traduzirSimboloOperador(operador) {
@@ -30,66 +32,123 @@ class TradutorReversoJavaScript {
30
32
  case '==':
31
33
  case '===':
32
34
  return '==';
35
+ default:
36
+ return operador;
33
37
  }
34
38
  }
35
- traduzirExpressaoDeclaracao(declaracao) {
36
- var _a, _b;
39
+ traduzirConstrutoVetor(vetor) {
40
+ if (!vetor.elements.length) {
41
+ return '[]';
42
+ }
43
+ let resultado = '[';
44
+ for (let elemento of vetor.elements) {
45
+ resultado += this.dicionarioConstrutos[elemento.constructor.name](elemento) + ', ';
46
+ }
47
+ if (vetor.elements.length > 0) {
48
+ resultado = resultado.slice(0, -2);
49
+ }
50
+ resultado += ']';
51
+ return resultado;
52
+ }
53
+ traduzirIdentificador(identificador) {
54
+ return identificador.name;
55
+ }
56
+ traduzirAtualizacaoVariavel(atualizarVariavel) {
37
57
  let resultado = '';
38
- let informacoesExpressao = declaracao.expression.callee;
39
- if (informacoesExpressao.type === 'MemberExpression') {
40
- if (((_a = informacoesExpressao === null || informacoesExpressao === void 0 ? void 0 : informacoesExpressao.object) === null || _a === void 0 ? void 0 : _a.name) === 'console' && ((_b = informacoesExpressao === null || informacoesExpressao === void 0 ? void 0 : informacoesExpressao.property) === null || _b === void 0 ? void 0 : _b.name) === 'log') {
41
- for (let argumento of declaracao.expression.arguments) {
42
- resultado += `escreva(${this.dicionarioConstrutos[argumento.type](argumento)})`;
43
- }
44
- }
58
+ resultado += this.dicionarioConstrutos[atualizarVariavel.argument.constructor.name](atualizarVariavel.argument);
59
+ resultado += this.traduzirSimboloOperador(atualizarVariavel.operator);
60
+ return resultado;
61
+ }
62
+ traduzirNovo(novo) {
63
+ let identificador = novo.callee;
64
+ let resultado = `${identificador.name}(`;
65
+ for (let argumento of novo.arguments) {
66
+ resultado += this.dicionarioConstrutos[argumento.type](argumento) + ', ';
67
+ }
68
+ if (novo.arguments.length > 0) {
69
+ resultado = resultado.slice(0, -2);
45
70
  }
71
+ resultado += ')';
46
72
  return resultado;
47
73
  }
48
- traduzirDeclaracaoFuncao(funcao) {
49
- console.log(funcao);
50
- return '';
74
+ traduzirExpressao(expressao) {
75
+ let objeto = this.dicionarioConstrutos[expressao.object.type](expressao.object);
76
+ let propriedade = this.dicionarioConstrutos[expressao.property.type](expressao.property);
77
+ if (objeto === 'console' && propriedade === 'log') {
78
+ return 'escreva';
79
+ }
80
+ return `${objeto}${propriedade}`;
51
81
  }
52
- traduzirConstrutoLiteral(literal) {
82
+ traduzirConstrutoChamada(chamada) {
83
+ let resultado = '';
84
+ resultado += this.dicionarioConstrutos[chamada.callee.type](chamada.callee) + '(';
85
+ for (let parametro of chamada.arguments) {
86
+ resultado += this.dicionarioConstrutos[parametro.type](parametro) + ', ';
87
+ }
88
+ if (chamada.arguments.length > 0) {
89
+ resultado = resultado.slice(0, -2);
90
+ }
91
+ resultado += ')';
92
+ return resultado;
93
+ }
94
+ traduzirConstrutoAtribuir(atribuir) {
53
95
  let resultado = '';
54
- if (typeof literal.value === 'string')
55
- resultado += `'${literal.value}'`;
56
- else
57
- resultado += `${literal.value}`;
96
+ const direita = this.dicionarioConstrutos[atribuir.right.type](atribuir.right);
97
+ const esquerda = this.dicionarioConstrutos[atribuir.left.type](atribuir.left);
98
+ resultado += `${esquerda} ${this.traduzirSimboloOperador(atribuir.operator)} ${direita}`;
58
99
  return resultado;
59
100
  }
101
+ traduzirExpressaoDeclaracao(declaracao) {
102
+ return this.dicionarioConstrutos[declaracao.expression.type](declaracao.expression);
103
+ }
104
+ traduzirConstrutoLiteral(literal) {
105
+ return `${literal.raw}`;
106
+ }
60
107
  traduzirConstrutoBinario(binario) {
61
108
  let resultado = '';
62
- let direita = typeof binario.right.value === 'string' ? `'${binario.right.value}'` : binario.right.value;
63
- let esquerda = typeof binario.left.value === 'string' ? `'${binario.left.value}'` : binario.left.value;
109
+ const direita = this.dicionarioConstrutos[binario.right.type](binario.right);
110
+ const esquerda = this.dicionarioConstrutos[binario.left.type](binario.left);
64
111
  resultado += `${esquerda} ${this.traduzirSimboloOperador(binario.operator)} ${direita}`;
65
112
  return resultado;
66
113
  }
67
- traduzirDeclaracaoDeVariavel(declaracao) {
114
+ traduzirDeclaracaoVariavel(declaracao) {
115
+ let resultado = '';
68
116
  let informacoesDaVariavel = declaracao.declarations[0];
69
- let resultado = `var ${informacoesDaVariavel.id.name} = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
117
+ const identificador = informacoesDaVariavel.id;
118
+ if (identificador) {
119
+ resultado += `var ${identificador.name} = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
120
+ }
70
121
  return resultado;
71
122
  }
72
123
  logicaComumBlocoEscopo(declaracoes) {
73
124
  let resultado = '{\n';
74
125
  this.indentacao += 4;
75
- // if (typeof declaracoes[Symbol.iterator] === 'function') {
76
- for (const declaracaoOuConstruto of declaracoes.body.body) {
126
+ const corpo = declaracoes.body.body || declaracoes.body;
127
+ for (const declaracaoOuConstruto of corpo) {
77
128
  resultado += ' '.repeat(this.indentacao);
78
129
  const nomeConstrutor = declaracaoOuConstruto.constructor.name;
79
130
  if (this.dicionarioConstrutos.hasOwnProperty(nomeConstrutor)) {
80
131
  resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoOuConstruto);
81
132
  }
82
133
  else {
83
- resultado += this.dicionarioDeclaracoes[nomeConstrutor](declaracaoOuConstruto);
134
+ resultado += this.traduzirDeclaracao(declaracaoOuConstruto);
84
135
  }
85
136
  resultado += '\n';
86
137
  }
87
- // }
88
138
  this.indentacao -= 4;
89
139
  resultado += ' '.repeat(this.indentacao) + '}\n';
90
140
  return resultado;
91
141
  }
92
- traduzirDeclaracaoDeFuncao(declaracao) {
142
+ traduzirDeclaracaoPara(declaracao) {
143
+ let resultado = '';
144
+ resultado += 'para (';
145
+ resultado += this.traduzirDeclaracao(declaracao.init) + '; ';
146
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test) + '; ';
147
+ resultado += this.dicionarioConstrutos[declaracao.update.type](declaracao.update) + ') ';
148
+ resultado += this.logicaComumBlocoEscopo(declaracao);
149
+ return resultado;
150
+ }
151
+ traduzirDeclaracaoFuncao(declaracao) {
93
152
  let resultado = '';
94
153
  resultado += `funcao ${declaracao.id.name}(`;
95
154
  for (let parametro of declaracao.params) {
@@ -102,21 +161,130 @@ class TradutorReversoJavaScript {
102
161
  resultado += this.logicaComumBlocoEscopo(declaracao);
103
162
  return resultado;
104
163
  }
105
- traduzirClasseDeclaracao(declaracao) {
106
- let resultado = '';
107
- console.log(declaracao);
108
- return '';
164
+ //TODO: Refatorar esse método. @Samuel
165
+ traduzirDeclaracaoClasse(declaracao) {
166
+ let resultado = `classe ${declaracao.id.name} `;
167
+ if (declaracao.superClass) {
168
+ let identificador = declaracao.superClass;
169
+ resultado += `herda ${identificador.name} `;
170
+ }
171
+ resultado += '{\n';
172
+ this.indentacao += 4;
173
+ resultado += ' '.repeat(this.indentacao);
174
+ for (let corpo of declaracao.body.body) {
175
+ if (corpo.type === 'MethodDefinition') {
176
+ let _corpo = corpo;
177
+ if (_corpo.kind === 'constructor') {
178
+ resultado += 'construtor(';
179
+ for (let valor of _corpo.value.params) {
180
+ if (valor.type === 'Identifier') {
181
+ resultado += `${valor.name}, `;
182
+ }
183
+ }
184
+ if (_corpo.value.params.length > 0) {
185
+ resultado = resultado.slice(0, -2);
186
+ }
187
+ resultado += ')';
188
+ resultado += this.logicaComumBlocoEscopo(_corpo.value);
189
+ }
190
+ else if (_corpo.kind === 'method') {
191
+ resultado += ' '.repeat(this.indentacao);
192
+ let identificador = _corpo.key;
193
+ resultado += identificador.name + '(';
194
+ for (let valor of _corpo.value.params) {
195
+ if (valor.type === 'Identifier') {
196
+ resultado += `${valor.name}, `;
197
+ }
198
+ }
199
+ if (_corpo.value.params.length > 0) {
200
+ resultado = resultado.slice(0, -2);
201
+ }
202
+ resultado += ')';
203
+ resultado += this.logicaComumBlocoEscopo(_corpo.value);
204
+ }
205
+ }
206
+ else if (corpo.constructor.name === 'PropertyDefinition') {
207
+ }
208
+ else if (corpo.constructor.name === 'StaticBlock') {
209
+ }
210
+ }
211
+ this.indentacao -= 4;
212
+ resultado += ' '.repeat(this.indentacao) + '}\n';
213
+ return resultado;
214
+ }
215
+ traduzirDeclaracaoRetorna(declaracao) {
216
+ return `retorna ${this.dicionarioConstrutos[declaracao.argument.type](declaracao.argument)}`;
217
+ }
218
+ traduzirDeclaracaoEnquanto(declaracao) {
219
+ let resultado = 'enquanto(';
220
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
221
+ resultado += ')';
222
+ resultado += this.logicaComumBlocoEscopo(declaracao);
223
+ return resultado;
224
+ }
225
+ traduzirDeclaracaoFazerEnquanto(declaracao) {
226
+ let resultado = 'fazer';
227
+ resultado += this.logicaComumBlocoEscopo(declaracao);
228
+ resultado += 'enquanto(';
229
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
230
+ resultado += ')';
231
+ return resultado;
232
+ }
233
+ traduzirDeclaracaoSe(declaracao) {
234
+ let resultado = 'if (';
235
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
236
+ resultado += ')';
237
+ resultado += this.logicaComumBlocoEscopo(declaracao.consequent);
238
+ if (declaracao === null || declaracao === void 0 ? void 0 : declaracao.alternate) {
239
+ resultado += 'else ';
240
+ if (declaracao.alternate.constructor.name === 'BlockStatement') {
241
+ resultado += this.logicaComumBlocoEscopo(declaracao.consequent);
242
+ return resultado;
243
+ }
244
+ resultado += this.traduzirDeclaracao(declaracao.alternate);
245
+ return resultado;
246
+ }
247
+ return resultado;
248
+ }
249
+ traduzirDeclaracaoTente(declaracao) {
250
+ let resultado = 'tente ';
251
+ resultado += this.logicaComumBlocoEscopo(declaracao.block);
252
+ if (declaracao.handler) {
253
+ resultado += 'pegue';
254
+ if (declaracao.handler.param) {
255
+ const identificador = declaracao.handler.param;
256
+ resultado += `(${identificador.name})`;
257
+ }
258
+ resultado += this.logicaComumBlocoEscopo(declaracao.block);
259
+ }
260
+ if (declaracao.finalizer) {
261
+ resultado += 'finalmente';
262
+ resultado += this.logicaComumBlocoEscopo(declaracao.finalizer);
263
+ }
264
+ return resultado;
109
265
  }
110
266
  traduzirDeclaracao(declaracao) {
111
267
  switch (declaracao.type) {
112
268
  case 'ClassDeclaration':
113
- return this.traduzirClasseDeclaracao(declaracao);
269
+ return this.traduzirDeclaracaoClasse(declaracao);
270
+ case 'DoWhileStatement':
271
+ return this.traduzirDeclaracaoFazerEnquanto(declaracao);
114
272
  case 'ExpressionStatement':
115
273
  return this.traduzirExpressaoDeclaracao(declaracao);
274
+ case 'ForStatement':
275
+ return this.traduzirDeclaracaoPara(declaracao);
116
276
  case 'FunctionDeclaration':
117
- return this.traduzirDeclaracaoDeFuncao(declaracao);
277
+ return this.traduzirDeclaracaoFuncao(declaracao);
278
+ case 'IfStatement':
279
+ return this.traduzirDeclaracaoSe(declaracao);
280
+ case 'ReturnStatement':
281
+ return this.traduzirDeclaracaoRetorna(declaracao);
282
+ case 'TryStatement':
283
+ return this.traduzirDeclaracaoTente(declaracao);
118
284
  case 'VariableDeclaration':
119
- return this.traduzirDeclaracaoDeVariavel(declaracao);
285
+ return this.traduzirDeclaracaoVariavel(declaracao);
286
+ case 'WhileStatement':
287
+ return this.traduzirDeclaracaoEnquanto(declaracao);
120
288
  }
121
289
  }
122
290
  traduzir(codigo) {
@@ -125,13 +293,8 @@ class TradutorReversoJavaScript {
125
293
  for (let declaracao of declaracoes.body) {
126
294
  resultado += `${this.traduzirDeclaracao(declaracao)} \n`;
127
295
  }
128
- console.log(resultado);
129
296
  return resultado;
130
297
  }
131
298
  }
132
299
  exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
133
- //cd ./fontes/tradutores
134
- //ts-node -T tradutor-reverso-javascript.ts
135
- // var tjs = new TradutorReversoJavaScript();
136
- // tjs.traduzir();
137
300
  //# sourceMappingURL=tradutor-reverso-javascript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-reverso-javascript.js","sourceRoot":"","sources":["../../../fontes/tradutores/tradutor-reverso-javascript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-reverso-javascript.js","sourceRoot":"","sources":["../../../fontes/tradutores/tradutor-reverso-javascript.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua",
3
- "version": "0.12.5",
3
+ "version": "0.12.6",
4
4
  "description": "Linguagem de programação simples e moderna usando português estruturado, com suporte a múltiplos dialetos",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -67,7 +67,7 @@
67
67
  "@designliquido/delegua-matematica": "^0.2.0",
68
68
  "@designliquido/delegua-tempo": "^0.0.1",
69
69
  "@types/esprima": "^4.0.3",
70
- "@types/jest": "^29.2.4",
70
+ "@types/jest": "^29.4.0",
71
71
  "@types/node": "^18.11.13",
72
72
  "@typescript-eslint/eslint-plugin": "^5.46.1",
73
73
  "@typescript-eslint/parser": "^5.46.1",
@@ -76,12 +76,12 @@
76
76
  "eslint-config-prettier": "^8.5.0",
77
77
  "eslint-plugin-prettier": "^4.2.1",
78
78
  "gh-pages": "^4.0.0",
79
- "jest": "^29.3.1",
79
+ "jest": "^29.4.1",
80
80
  "jest-coverage-badges": "^1.1.2",
81
81
  "prettier": "^2.8.1",
82
82
  "release-it": "^15.5.1",
83
83
  "rimraf": "^3.0.2",
84
- "ts-jest": "^29.0.3",
84
+ "ts-jest": "^29.0.5",
85
85
  "ts-node": "^10.9.1",
86
86
  "typedoc": "^0.23.22",
87
87
  "typescript": "^4.9.4"