@designliquido/delegua 0.12.5 → 0.12.7

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 +30 -9
  93. package/fontes/tradutores/tradutor-reverso-javascript.js +252 -46
  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, SwitchStatement, TryStatement, UpdateExpression, VariableDeclaration, WhileStatement } from 'estree';
1
2
  /**
2
3
  * Esse tradutor traduz de JavaScript para Delégua.
3
4
  */
@@ -5,22 +6,42 @@ 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;
14
+ traduzirConstrutoLogico(logico: any): string;
8
15
  dicionarioConstrutos: {
16
+ AssignmentExpression: any;
17
+ ArrayExpression: any;
9
18
  ArrowFunctionExpression: any;
10
19
  BinaryExpression: any;
20
+ CallExpression: any;
21
+ Identifier: any;
11
22
  Literal: any;
23
+ LogicalExpression: any;
24
+ MemberExpression: any;
25
+ NewExpression: any;
26
+ ThisExpression: (expressao: any) => string;
27
+ UpdateExpression: any;
12
28
  };
13
- dicionarioDeclaracoes: {
14
- ExpressionStatement: any;
15
- };
29
+ traduzirConstrutoChamada(chamada: any): string;
30
+ traduzirConstrutoAtribuir(atribuir: any): string;
16
31
  traduzirExpressaoDeclaracao(declaracao: any): string;
17
- traduzirDeclaracaoFuncao(funcao: any): string;
18
- traduzirConstrutoLiteral(literal: any): string;
19
- traduzirConstrutoBinario(binario: any): string;
20
- traduzirDeclaracaoDeVariavel(declaracao: any): string;
32
+ traduzirConstrutoLiteral(literal: Literal): string;
33
+ traduzirConstrutoBinario(binario: BinaryExpression): string;
34
+ traduzirDeclaracaoVariavel(declaracao: VariableDeclaration): string;
21
35
  logicaComumBlocoEscopo(declaracoes: any): string;
22
- traduzirDeclaracaoDeFuncao(declaracao: any): string;
23
- traduzirClasseDeclaracao(declaracao: any): string;
36
+ traduzirDeclaracaoPara(declaracao: ForStatement): string;
37
+ traduzirDeclaracaoFuncao(declaracao: any): string;
38
+ traduzirDeclaracaoClasse(declaracao: ClassDeclaration): string;
39
+ traduzirDeclaracaoRetorna(declaracao: ReturnStatement): string;
40
+ traduzirDeclaracaoEnquanto(declaracao: WhileStatement): string;
41
+ traduzirDeclaracaoFazerEnquanto(declaracao: DoWhileStatement): string;
42
+ traduzirDeclaracaoSe(declaracao: IfStatement): string;
43
+ traduzirDeclaracaoTente(declaracao: TryStatement): string;
44
+ traduzirDeclaracaoEscolha(declaracao: SwitchStatement): string;
24
45
  traduzirDeclaracao(declaracao: any): string;
25
46
  traduzir(codigo: any): string;
26
47
  }
@@ -9,114 +9,325 @@ 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
+ LogicalExpression: this.traduzirConstrutoLogico.bind(this),
23
+ MemberExpression: this.traduzirExpressao.bind(this),
24
+ NewExpression: this.traduzirNovo.bind(this),
25
+ ThisExpression: (expressao) => 'isto.',
26
+ UpdateExpression: this.traduzirAtualizacaoVariavel.bind(this),
20
27
  // Variavel: this.traduzirConstrutoVariavel.bind(this),
21
28
  };
22
- this.dicionarioDeclaracoes = {
23
- ExpressionStatement: this.traduzirExpressaoDeclaracao.bind(this),
24
- // traduzirDeclaracaoEscreva
25
- };
26
29
  // Qualquer coisa pro ESLint ficar feliz.
27
30
  }
28
31
  traduzirSimboloOperador(operador) {
29
32
  switch (operador) {
30
- case '==':
31
33
  case '===':
32
34
  return '==';
35
+ case '&&':
36
+ return 'e';
37
+ case '||':
38
+ return 'ou';
39
+ default:
40
+ return operador;
33
41
  }
34
42
  }
35
- traduzirExpressaoDeclaracao(declaracao) {
36
- var _a, _b;
43
+ traduzirConstrutoVetor(vetor) {
44
+ if (!vetor.elements.length) {
45
+ return '[]';
46
+ }
47
+ let resultado = '[';
48
+ for (let elemento of vetor.elements) {
49
+ resultado += this.dicionarioConstrutos[elemento.constructor.name](elemento) + ', ';
50
+ }
51
+ if (vetor.elements.length > 0) {
52
+ resultado = resultado.slice(0, -2);
53
+ }
54
+ resultado += ']';
55
+ return resultado;
56
+ }
57
+ traduzirIdentificador(identificador) {
58
+ return identificador.name;
59
+ }
60
+ traduzirAtualizacaoVariavel(atualizarVariavel) {
37
61
  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
- }
62
+ resultado += this.dicionarioConstrutos[atualizarVariavel.argument.constructor.name](atualizarVariavel.argument);
63
+ resultado += this.traduzirSimboloOperador(atualizarVariavel.operator);
64
+ return resultado;
65
+ }
66
+ traduzirNovo(novo) {
67
+ let identificador = novo.callee;
68
+ let resultado = `${identificador.name}(`;
69
+ for (let argumento of novo.arguments) {
70
+ resultado += this.dicionarioConstrutos[argumento.type](argumento) + ', ';
45
71
  }
72
+ if (novo.arguments.length > 0) {
73
+ resultado = resultado.slice(0, -2);
74
+ }
75
+ resultado += ')';
46
76
  return resultado;
47
77
  }
48
- traduzirDeclaracaoFuncao(funcao) {
49
- console.log(funcao);
50
- return '';
78
+ traduzirExpressao(expressao) {
79
+ let objeto = this.dicionarioConstrutos[expressao.object.type](expressao.object);
80
+ let propriedade = this.dicionarioConstrutos[expressao.property.type](expressao.property);
81
+ if (objeto === 'console' && propriedade === 'log') {
82
+ return 'escreva';
83
+ }
84
+ return `${objeto}${propriedade}`;
85
+ }
86
+ traduzirConstrutoLogico(logico) {
87
+ return this.dicionarioConstrutos[logico.constructor.name](logico);
51
88
  }
52
- traduzirConstrutoLiteral(literal) {
89
+ traduzirConstrutoChamada(chamada) {
53
90
  let resultado = '';
54
- if (typeof literal.value === 'string')
55
- resultado += `'${literal.value}'`;
56
- else
57
- resultado += `${literal.value}`;
91
+ resultado += this.dicionarioConstrutos[chamada.callee.type](chamada.callee) + '(';
92
+ for (let parametro of chamada.arguments) {
93
+ resultado += this.dicionarioConstrutos[parametro.type](parametro) + ', ';
94
+ }
95
+ if (chamada.arguments.length > 0) {
96
+ resultado = resultado.slice(0, -2);
97
+ }
98
+ resultado += ')';
58
99
  return resultado;
59
100
  }
101
+ traduzirConstrutoAtribuir(atribuir) {
102
+ let resultado = '';
103
+ const direita = this.dicionarioConstrutos[atribuir.right.type](atribuir.right);
104
+ const esquerda = this.dicionarioConstrutos[atribuir.left.type](atribuir.left);
105
+ resultado += `${esquerda} ${this.traduzirSimboloOperador(atribuir.operator)} ${direita}`;
106
+ return resultado;
107
+ }
108
+ traduzirExpressaoDeclaracao(declaracao) {
109
+ return this.dicionarioConstrutos[declaracao.expression.type](declaracao.expression);
110
+ }
111
+ traduzirConstrutoLiteral(literal) {
112
+ if (literal.raw === 'true')
113
+ return 'verdadeiro';
114
+ else if (literal.raw === 'false')
115
+ return 'falso';
116
+ return `${literal.raw}`;
117
+ }
60
118
  traduzirConstrutoBinario(binario) {
61
119
  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;
120
+ const direita = this.dicionarioConstrutos[binario.right.type](binario.right);
121
+ const esquerda = this.dicionarioConstrutos[binario.left.type](binario.left);
64
122
  resultado += `${esquerda} ${this.traduzirSimboloOperador(binario.operator)} ${direita}`;
65
123
  return resultado;
66
124
  }
67
- traduzirDeclaracaoDeVariavel(declaracao) {
125
+ traduzirDeclaracaoVariavel(declaracao) {
126
+ let resultado = '';
68
127
  let informacoesDaVariavel = declaracao.declarations[0];
69
- let resultado = `var ${informacoesDaVariavel.id.name} = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
128
+ const identificador = informacoesDaVariavel.id;
129
+ if (identificador) {
130
+ resultado += `var ${identificador.name} = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
131
+ }
70
132
  return resultado;
71
133
  }
72
134
  logicaComumBlocoEscopo(declaracoes) {
73
135
  let resultado = '{\n';
74
136
  this.indentacao += 4;
75
- // if (typeof declaracoes[Symbol.iterator] === 'function') {
76
- for (const declaracaoOuConstruto of declaracoes.body.body) {
137
+ const corpo = declaracoes.body.body || declaracoes.body;
138
+ for (const declaracaoOuConstruto of corpo) {
77
139
  resultado += ' '.repeat(this.indentacao);
78
140
  const nomeConstrutor = declaracaoOuConstruto.constructor.name;
79
141
  if (this.dicionarioConstrutos.hasOwnProperty(nomeConstrutor)) {
80
142
  resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoOuConstruto);
81
143
  }
82
144
  else {
83
- resultado += this.dicionarioDeclaracoes[nomeConstrutor](declaracaoOuConstruto);
145
+ resultado += this.traduzirDeclaracao(declaracaoOuConstruto);
84
146
  }
85
147
  resultado += '\n';
86
148
  }
87
- // }
88
149
  this.indentacao -= 4;
89
150
  resultado += ' '.repeat(this.indentacao) + '}\n';
90
151
  return resultado;
91
152
  }
92
- traduzirDeclaracaoDeFuncao(declaracao) {
153
+ traduzirDeclaracaoPara(declaracao) {
154
+ let resultado = '';
155
+ resultado += 'para (';
156
+ resultado += this.traduzirDeclaracao(declaracao.init) + '; ';
157
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test) + '; ';
158
+ resultado += this.dicionarioConstrutos[declaracao.update.type](declaracao.update) + ') ';
159
+ resultado += this.logicaComumBlocoEscopo(declaracao);
160
+ return resultado;
161
+ }
162
+ traduzirDeclaracaoFuncao(declaracao) {
93
163
  let resultado = '';
94
- resultado += `funcao ${declaracao.id.name}(`;
164
+ const eFuncaoSeta = !declaracao.id;
165
+ resultado += eFuncaoSeta ? '(' : `funcao ${declaracao.id.name}(`;
95
166
  for (let parametro of declaracao.params) {
96
167
  resultado += parametro.name + ', ';
97
168
  }
98
169
  if (declaracao.params.length > 0) {
99
170
  resultado = resultado.slice(0, -2);
100
171
  }
101
- resultado += ') ';
172
+ resultado += eFuncaoSeta ? ') => ' : ') ';
173
+ resultado += this.logicaComumBlocoEscopo(declaracao);
174
+ return resultado;
175
+ }
176
+ //TODO: Refatorar esse método. @Samuel
177
+ traduzirDeclaracaoClasse(declaracao) {
178
+ let resultado = `classe ${declaracao.id.name} `;
179
+ if (declaracao.superClass) {
180
+ let identificador = declaracao.superClass;
181
+ resultado += `herda ${identificador.name} `;
182
+ }
183
+ resultado += '{\n';
184
+ this.indentacao += 4;
185
+ resultado += ' '.repeat(this.indentacao);
186
+ for (let corpo of declaracao.body.body) {
187
+ if (corpo.type === 'MethodDefinition') {
188
+ let _corpo = corpo;
189
+ if (_corpo.kind === 'constructor') {
190
+ resultado += 'construtor(';
191
+ for (let valor of _corpo.value.params) {
192
+ if (valor.type === 'Identifier') {
193
+ resultado += `${valor.name}, `;
194
+ }
195
+ }
196
+ if (_corpo.value.params.length > 0) {
197
+ resultado = resultado.slice(0, -2);
198
+ }
199
+ resultado += ')';
200
+ resultado += this.logicaComumBlocoEscopo(_corpo.value);
201
+ }
202
+ else if (_corpo.kind === 'method') {
203
+ resultado += ' '.repeat(this.indentacao);
204
+ let identificador = _corpo.key;
205
+ resultado += identificador.name + '(';
206
+ for (let valor of _corpo.value.params) {
207
+ if (valor.type === 'Identifier') {
208
+ resultado += `${valor.name}, `;
209
+ }
210
+ }
211
+ if (_corpo.value.params.length > 0) {
212
+ resultado = resultado.slice(0, -2);
213
+ }
214
+ resultado += ')';
215
+ resultado += this.logicaComumBlocoEscopo(_corpo.value);
216
+ }
217
+ }
218
+ else if (corpo.constructor.name === 'PropertyDefinition') {
219
+ }
220
+ else if (corpo.constructor.name === 'StaticBlock') {
221
+ }
222
+ }
223
+ this.indentacao -= 4;
224
+ resultado += ' '.repeat(this.indentacao) + '}\n';
225
+ return resultado;
226
+ }
227
+ traduzirDeclaracaoRetorna(declaracao) {
228
+ return `retorna ${this.dicionarioConstrutos[declaracao.argument.type](declaracao.argument)}`;
229
+ }
230
+ traduzirDeclaracaoEnquanto(declaracao) {
231
+ let resultado = 'enquanto(';
232
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
233
+ resultado += ')';
234
+ resultado += this.logicaComumBlocoEscopo(declaracao);
235
+ return resultado;
236
+ }
237
+ traduzirDeclaracaoFazerEnquanto(declaracao) {
238
+ let resultado = 'fazer';
102
239
  resultado += this.logicaComumBlocoEscopo(declaracao);
240
+ resultado += 'enquanto(';
241
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
242
+ resultado += ')';
103
243
  return resultado;
104
244
  }
105
- traduzirClasseDeclaracao(declaracao) {
245
+ traduzirDeclaracaoSe(declaracao) {
246
+ let resultado = 'se (';
247
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
248
+ resultado += ')';
249
+ resultado += this.logicaComumBlocoEscopo(declaracao.consequent);
250
+ if (declaracao === null || declaracao === void 0 ? void 0 : declaracao.alternate) {
251
+ resultado += 'senao ';
252
+ if (declaracao.alternate.constructor.name === 'BlockStatement') {
253
+ const bloco = declaracao.alternate;
254
+ resultado += this.logicaComumBlocoEscopo(bloco);
255
+ return resultado;
256
+ }
257
+ const se = declaracao.alternate;
258
+ resultado += this.traduzirDeclaracao(se);
259
+ }
260
+ return resultado;
261
+ }
262
+ traduzirDeclaracaoTente(declaracao) {
263
+ let resultado = 'tente ';
264
+ resultado += this.logicaComumBlocoEscopo(declaracao.block);
265
+ if (declaracao.handler) {
266
+ resultado += 'pegue';
267
+ if (declaracao.handler.param) {
268
+ const identificador = declaracao.handler.param;
269
+ resultado += `(${identificador.name})`;
270
+ }
271
+ resultado += this.logicaComumBlocoEscopo(declaracao.block);
272
+ }
273
+ if (declaracao.finalizer) {
274
+ resultado += 'finalmente';
275
+ resultado += this.logicaComumBlocoEscopo(declaracao.finalizer);
276
+ }
277
+ return resultado;
278
+ }
279
+ traduzirDeclaracaoEscolha(declaracao) {
106
280
  let resultado = '';
107
- console.log(declaracao);
108
- return '';
281
+ this.indentacao += 4;
282
+ resultado += `escolha(${this.dicionarioConstrutos[declaracao.discriminant.type](declaracao.discriminant)}) {`;
283
+ resultado += ' '.repeat(this.indentacao);
284
+ for (let caso of declaracao.cases) {
285
+ if (!caso.test) {
286
+ resultado += 'padrao:';
287
+ resultado += ' '.repeat(this.indentacao + 4);
288
+ for (let bloco of caso.consequent) {
289
+ if (bloco.type === 'BreakStatement')
290
+ continue;
291
+ resultado += this.traduzirDeclaracao(bloco) + '\n';
292
+ }
293
+ break;
294
+ }
295
+ resultado += `caso ${this.dicionarioConstrutos[caso.test.type](caso.test)}:`;
296
+ resultado += ' '.repeat(this.indentacao + 4);
297
+ for (let bloco of caso.consequent) {
298
+ if (bloco.type === 'BreakStatement')
299
+ continue;
300
+ resultado += this.traduzirDeclaracao(bloco) + '\n';
301
+ }
302
+ }
303
+ this.indentacao -= 4;
304
+ resultado += ' '.repeat(this.indentacao) + '}\n';
305
+ return resultado;
109
306
  }
110
307
  traduzirDeclaracao(declaracao) {
111
308
  switch (declaracao.type) {
112
309
  case 'ClassDeclaration':
113
- return this.traduzirClasseDeclaracao(declaracao);
310
+ return this.traduzirDeclaracaoClasse(declaracao);
311
+ case 'DoWhileStatement':
312
+ return this.traduzirDeclaracaoFazerEnquanto(declaracao);
114
313
  case 'ExpressionStatement':
115
314
  return this.traduzirExpressaoDeclaracao(declaracao);
315
+ case 'ForStatement':
316
+ return this.traduzirDeclaracaoPara(declaracao);
116
317
  case 'FunctionDeclaration':
117
- return this.traduzirDeclaracaoDeFuncao(declaracao);
318
+ return this.traduzirDeclaracaoFuncao(declaracao);
319
+ case 'IfStatement':
320
+ return this.traduzirDeclaracaoSe(declaracao);
321
+ case 'ReturnStatement':
322
+ return this.traduzirDeclaracaoRetorna(declaracao);
323
+ case 'SwitchStatement':
324
+ return this.traduzirDeclaracaoEscolha(declaracao);
325
+ case 'TryStatement':
326
+ return this.traduzirDeclaracaoTente(declaracao);
118
327
  case 'VariableDeclaration':
119
- return this.traduzirDeclaracaoDeVariavel(declaracao);
328
+ return this.traduzirDeclaracaoVariavel(declaracao);
329
+ case 'WhileStatement':
330
+ return this.traduzirDeclaracaoEnquanto(declaracao);
120
331
  }
121
332
  }
122
333
  traduzir(codigo) {
@@ -125,13 +336,8 @@ class TradutorReversoJavaScript {
125
336
  for (let declaracao of declaracoes.body) {
126
337
  resultado += `${this.traduzirDeclaracao(declaracao)} \n`;
127
338
  }
128
- console.log(resultado);
129
339
  return resultado;
130
340
  }
131
341
  }
132
342
  exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
133
- //cd ./fontes/tradutores
134
- //ts-node -T tradutor-reverso-javascript.ts
135
- // var tjs = new TradutorReversoJavaScript();
136
- // tjs.traduzir();
137
343
  //# 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.7",
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"