@designliquido/delegua 0.11.5 → 0.11.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.
- package/bin/package.json +1 -1
- package/execucao.js +4 -4
- package/execucao.js.map +1 -1
- package/fontes/declaracoes/se.d.ts +3 -3
- package/fontes/declaracoes/se.js.map +1 -1
- package/fontes/delegua.d.ts +10 -2
- package/fontes/delegua.js +37 -14
- package/fontes/delegua.js.map +1 -1
- package/fontes/importador/importador.d.ts +1 -1
- package/fontes/importador/importador.js +8 -1
- package/fontes/importador/importador.js.map +1 -1
- package/fontes/importador/retorno-importador.d.ts +1 -0
- package/fontes/interfaces/importador-interface.d.ts +1 -1
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +6 -3
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
- package/fontes/interpretador/interpretador.js +10 -1
- package/fontes/interpretador/interpretador.js.map +1 -1
- package/fontes/lexador/lexador.js +4 -7
- package/fontes/lexador/lexador.js.map +1 -1
- package/fontes/tradutores/index.d.ts +2 -0
- package/fontes/tradutores/index.js +19 -0
- package/fontes/tradutores/index.js.map +1 -0
- package/fontes/tradutores/tradutor-javascript.d.ts +10 -7
- package/fontes/tradutores/tradutor-javascript.js +61 -45
- package/fontes/tradutores/tradutor-javascript.js.map +1 -1
- package/fontes/tradutores/tradutor-reverso-javascript.d.ts +19 -2
- package/fontes/tradutores/tradutor-reverso-javascript.js +106 -12
- package/fontes/tradutores/tradutor-reverso-javascript.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,31 +3,125 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TradutorReversoJavaScript = void 0;
|
|
4
4
|
const esprima_1 = require("esprima");
|
|
5
5
|
/**
|
|
6
|
-
* Esse tradutor traduz de JavaScript para Delégua
|
|
6
|
+
* Esse tradutor traduz de JavaScript para Delégua.
|
|
7
7
|
*/
|
|
8
8
|
class TradutorReversoJavaScript {
|
|
9
|
-
constructor() {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.indentacao = 0;
|
|
11
|
+
this.dicionarioConstrutos = {
|
|
12
|
+
ArrowFunctionExpression: this.traduzirDeclaracaoFuncao.bind(this),
|
|
13
|
+
// Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
|
|
14
|
+
// Atribuir: this.traduzirConstrutoAtribuir.bind(this),
|
|
15
|
+
BinaryExpression: this.traduzirConstrutoBinario.bind(this),
|
|
16
|
+
// Chamada: this.traduzirConstrutoChamada.bind(this),
|
|
17
|
+
// DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
|
|
18
|
+
// Isto: this.traduzirConstrutoIsto.bind(this),
|
|
19
|
+
Literal: this.traduzirConstrutoLiteral.bind(this),
|
|
20
|
+
// Variavel: this.traduzirConstrutoVariavel.bind(this),
|
|
21
|
+
};
|
|
22
|
+
this.dicionarioDeclaracoes = {
|
|
23
|
+
ExpressionStatement: this.traduzirExpressaoDeclaracao.bind(this),
|
|
24
|
+
// traduzirDeclaracaoEscreva
|
|
25
|
+
};
|
|
26
|
+
// Qualquer coisa pro ESLint ficar feliz.
|
|
27
|
+
}
|
|
28
|
+
traduzirSimboloOperador(operador) {
|
|
29
|
+
switch (operador) {
|
|
30
|
+
case '==':
|
|
31
|
+
case '===':
|
|
32
|
+
return '==';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
traduzirExpressaoDeclaracao(declaracao) {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
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
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return resultado;
|
|
47
|
+
}
|
|
48
|
+
traduzirDeclaracaoFuncao(funcao) {
|
|
49
|
+
console.log(funcao);
|
|
50
|
+
return '';
|
|
51
|
+
}
|
|
52
|
+
traduzirConstrutoLiteral(literal) {
|
|
53
|
+
let resultado = '';
|
|
54
|
+
if (typeof literal.value === 'string')
|
|
55
|
+
resultado += `'${literal.value}'`;
|
|
56
|
+
else
|
|
57
|
+
resultado += `${literal.value}`;
|
|
58
|
+
return resultado;
|
|
59
|
+
}
|
|
60
|
+
traduzirConstrutoBinario(binario) {
|
|
61
|
+
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;
|
|
64
|
+
resultado += `${esquerda} ${this.traduzirSimboloOperador(binario.operator)} ${direita}`;
|
|
65
|
+
return resultado;
|
|
66
|
+
}
|
|
10
67
|
traduzirDeclaracaoDeVariavel(declaracao) {
|
|
11
68
|
let informacoesDaVariavel = declaracao.declarations[0];
|
|
12
|
-
let resultado = `var ${informacoesDaVariavel.id.name} = `;
|
|
13
|
-
|
|
14
|
-
|
|
69
|
+
let resultado = `var ${informacoesDaVariavel.id.name} = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
|
|
70
|
+
return resultado;
|
|
71
|
+
}
|
|
72
|
+
logicaComumBlocoEscopo(declaracoes) {
|
|
73
|
+
let resultado = '{\n';
|
|
74
|
+
this.indentacao += 4;
|
|
75
|
+
// if (typeof declaracoes[Symbol.iterator] === 'function') {
|
|
76
|
+
for (const declaracaoOuConstruto of declaracoes.body.body) {
|
|
77
|
+
resultado += ' '.repeat(this.indentacao);
|
|
78
|
+
const nomeConstrutor = declaracaoOuConstruto.constructor.name;
|
|
79
|
+
if (this.dicionarioConstrutos.hasOwnProperty(nomeConstrutor)) {
|
|
80
|
+
resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoOuConstruto);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
resultado += this.dicionarioDeclaracoes[nomeConstrutor](declaracaoOuConstruto);
|
|
84
|
+
}
|
|
85
|
+
resultado += '\n';
|
|
15
86
|
}
|
|
16
|
-
|
|
17
|
-
|
|
87
|
+
// }
|
|
88
|
+
this.indentacao -= 4;
|
|
89
|
+
resultado += ' '.repeat(this.indentacao) + '}\n';
|
|
90
|
+
return resultado;
|
|
91
|
+
}
|
|
92
|
+
traduzirDeclaracaoDeFuncao(declaracao) {
|
|
93
|
+
let resultado = '';
|
|
94
|
+
resultado += `funcao ${declaracao.id.name}(`;
|
|
95
|
+
for (let parametro of declaracao.params) {
|
|
96
|
+
resultado += parametro.name + ', ';
|
|
97
|
+
}
|
|
98
|
+
if (declaracao.params.length > 0) {
|
|
99
|
+
resultado = resultado.slice(0, -2);
|
|
18
100
|
}
|
|
101
|
+
resultado += ') ';
|
|
102
|
+
resultado += this.logicaComumBlocoEscopo(declaracao);
|
|
19
103
|
return resultado;
|
|
20
104
|
}
|
|
105
|
+
traduzirClasseDeclaracao(declaracao) {
|
|
106
|
+
let resultado = '';
|
|
107
|
+
console.log(declaracao);
|
|
108
|
+
return '';
|
|
109
|
+
}
|
|
21
110
|
traduzirDeclaracao(declaracao) {
|
|
22
111
|
switch (declaracao.type) {
|
|
112
|
+
case 'ClassDeclaration':
|
|
113
|
+
return this.traduzirClasseDeclaracao(declaracao);
|
|
114
|
+
case 'ExpressionStatement':
|
|
115
|
+
return this.traduzirExpressaoDeclaracao(declaracao);
|
|
116
|
+
case 'FunctionDeclaration':
|
|
117
|
+
return this.traduzirDeclaracaoDeFuncao(declaracao);
|
|
23
118
|
case 'VariableDeclaration':
|
|
24
119
|
return this.traduzirDeclaracaoDeVariavel(declaracao);
|
|
25
120
|
}
|
|
26
121
|
}
|
|
27
|
-
traduzir() {
|
|
122
|
+
traduzir(codigo) {
|
|
28
123
|
let resultado = '';
|
|
29
|
-
const
|
|
30
|
-
const declaracoes = (0, esprima_1.parseScript)(programa);
|
|
124
|
+
const declaracoes = (0, esprima_1.parseScript)(codigo);
|
|
31
125
|
for (let declaracao of declaracoes.body) {
|
|
32
126
|
resultado += `${this.traduzirDeclaracao(declaracao)} \n`;
|
|
33
127
|
}
|
|
@@ -38,6 +132,6 @@ class TradutorReversoJavaScript {
|
|
|
38
132
|
exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
|
|
39
133
|
//cd ./fontes/tradutores
|
|
40
134
|
//ts-node -T tradutor-reverso-javascript.ts
|
|
41
|
-
var tjs = new TradutorReversoJavaScript();
|
|
42
|
-
tjs.traduzir();
|
|
135
|
+
// var tjs = new TradutorReversoJavaScript();
|
|
136
|
+
// tjs.traduzir();
|
|
43
137
|
//# 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":";;;AAAA,qCAAsC;AAEtC;;GAEG;AACH,MAAa,yBAAyB;
|
|
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