@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.
@@ -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
- if (typeof informacoesDaVariavel.init.value === 'string') {
14
- resultado += `'${informacoesDaVariavel.init.value}'`;
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
- else {
17
- resultado += `${informacoesDaVariavel.init.value}`;
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 programa = 'const a = 42\nconst b = \'a\'';
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;IAElC,gBAAe,CAAC;IAEhB,4BAA4B,CAAC,UAAe;QACxC,IAAI,qBAAqB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,SAAS,GAAG,OAAO,qBAAqB,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;QAC1D,IAAI,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAC;YACrD,SAAS,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;SACxD;aAAM;YACH,SAAS,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SACtD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,kBAAkB,CAAC,UAAe;QAC9B,QAAQ,UAAU,CAAC,IAAI,EAAE;YACrB,KAAK,qBAAqB;gBACtB,OAAO,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;SAC5D;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,+BAA+B,CAAC;QACjD,MAAM,WAAW,GAAG,IAAA,qBAAW,EAAC,QAAQ,CAAC,CAAC;QAE1C,KAAK,IAAI,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;YACrC,SAAS,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC;SAC5D;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAjCD,8DAiCC;AAED,wBAAwB;AACxB,2CAA2C;AAC3C,IAAI,GAAG,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAC1C,GAAG,CAAC,QAAQ,EAAE,CAAC"}
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.11.5",
3
+ "version": "0.11.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": {