@designliquido/lincones-sqlite 0.1.1 → 0.2.0

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 (117) hide show
  1. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +1 -1
  2. package/fontes/comum/babel.config.d.ts +5 -0
  3. package/fontes/comum/babel.config.js +7 -0
  4. package/fontes/comum/babel.config.js.map +1 -0
  5. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +8 -5
  6. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +81 -21
  7. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  8. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.d.ts +7 -0
  9. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js +12 -0
  10. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js.map +1 -0
  11. package/fontes/comum/fontes/avaliador-sintatico/index.d.ts +1 -0
  12. package/fontes/comum/fontes/avaliador-sintatico/index.js +1 -0
  13. package/fontes/comum/fontes/avaliador-sintatico/index.js.map +1 -1
  14. package/fontes/comum/fontes/comandos/atualizar.d.ts +3 -9
  15. package/fontes/comum/fontes/comandos/atualizar.js.map +1 -1
  16. package/fontes/comum/fontes/comandos/criar.d.ts +2 -1
  17. package/fontes/comum/fontes/comandos/criar.js +2 -1
  18. package/fontes/comum/fontes/comandos/criar.js.map +1 -1
  19. package/fontes/comum/fontes/comandos/excluir.d.ts +3 -2
  20. package/fontes/comum/fontes/comandos/excluir.js.map +1 -1
  21. package/fontes/comum/fontes/comandos/inserir.d.ts +3 -3
  22. package/fontes/comum/fontes/comandos/inserir.js.map +1 -1
  23. package/fontes/comum/fontes/construtos/coluna-e-valor.d.ts +8 -0
  24. package/fontes/comum/fontes/construtos/coluna-e-valor.js +16 -0
  25. package/fontes/comum/fontes/construtos/coluna-e-valor.js.map +1 -0
  26. package/fontes/comum/fontes/construtos/coluna.d.ts +3 -1
  27. package/fontes/comum/fontes/construtos/coluna.js +21 -1
  28. package/fontes/comum/fontes/construtos/coluna.js.map +1 -1
  29. package/fontes/comum/fontes/construtos/condicao.d.ts +6 -4
  30. package/fontes/comum/fontes/construtos/condicao.js +11 -1
  31. package/fontes/comum/fontes/construtos/condicao.js.map +1 -1
  32. package/fontes/comum/fontes/construtos/construto.d.ts +3 -0
  33. package/fontes/comum/fontes/construtos/construto.js +7 -0
  34. package/fontes/comum/fontes/construtos/construto.js.map +1 -0
  35. package/fontes/comum/fontes/construtos/index.d.ts +8 -0
  36. package/fontes/comum/fontes/construtos/index.js +8 -0
  37. package/fontes/comum/fontes/construtos/index.js.map +1 -1
  38. package/fontes/comum/fontes/construtos/literal.d.ts +7 -0
  39. package/fontes/comum/fontes/construtos/literal.js +16 -0
  40. package/fontes/comum/fontes/construtos/literal.js.map +1 -0
  41. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +3 -1
  42. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +6 -1
  43. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js.map +1 -1
  44. package/fontes/comum/fontes/construtos/parametro-anonimo.d.ts +4 -0
  45. package/fontes/comum/fontes/construtos/parametro-anonimo.js +11 -0
  46. package/fontes/comum/fontes/construtos/parametro-anonimo.js.map +1 -0
  47. package/fontes/comum/fontes/construtos/parametro-nomeado.d.ts +6 -0
  48. package/fontes/comum/fontes/construtos/parametro-nomeado.js +15 -0
  49. package/fontes/comum/fontes/construtos/parametro-nomeado.js.map +1 -0
  50. package/fontes/comum/fontes/construtos/referencia-coluna.d.ts +6 -0
  51. package/fontes/comum/fontes/construtos/referencia-coluna.js +15 -0
  52. package/fontes/comum/fontes/construtos/referencia-coluna.js.map +1 -0
  53. package/fontes/comum/fontes/construtos/restricao.d.ts +3 -1
  54. package/fontes/comum/fontes/construtos/restricao.js +24 -1
  55. package/fontes/comum/fontes/construtos/restricao.js.map +1 -1
  56. package/fontes/comum/fontes/index.d.ts +7 -0
  57. package/fontes/comum/{index.js → fontes/index.js} +7 -8
  58. package/fontes/comum/fontes/index.js.map +1 -0
  59. package/fontes/comum/fontes/lexador/index.d.ts +1 -0
  60. package/fontes/comum/fontes/lexador/index.js +1 -0
  61. package/fontes/comum/fontes/lexador/index.js.map +1 -1
  62. package/fontes/comum/fontes/lexador/lexador-base.d.ts +26 -0
  63. package/fontes/comum/fontes/lexador/lexador-base.js +211 -0
  64. package/fontes/comum/fontes/lexador/lexador-base.js.map +1 -0
  65. package/fontes/comum/fontes/lexador/lexador-sql-ansi.d.ts +11 -0
  66. package/fontes/comum/fontes/lexador/lexador-sql-ansi.js +47 -0
  67. package/fontes/comum/fontes/lexador/lexador-sql-ansi.js.map +1 -0
  68. package/fontes/comum/fontes/lexador/lexador.d.ts +2 -23
  69. package/fontes/comum/fontes/lexador/lexador.js +5 -198
  70. package/fontes/comum/fontes/lexador/lexador.js.map +1 -1
  71. package/fontes/comum/fontes/lexador/palavras-reservadas/index.d.ts +2 -0
  72. package/fontes/comum/fontes/lexador/palavras-reservadas/index.js +19 -0
  73. package/fontes/comum/fontes/lexador/palavras-reservadas/index.js.map +1 -0
  74. package/fontes/comum/fontes/{palavras-reservadas.d.ts → lexador/palavras-reservadas/lincones.d.ts} +1 -0
  75. package/fontes/comum/fontes/{palavras-reservadas.js → lexador/palavras-reservadas/lincones.js} +3 -2
  76. package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js.map +1 -0
  77. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.d.ts +37 -0
  78. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js +43 -0
  79. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js.map +1 -0
  80. package/fontes/comum/fontes/{tipos-de-simbolos.d.ts → tipos-de-simbolos/index.d.ts} +3 -0
  81. package/fontes/comum/fontes/{tipos-de-simbolos.js → tipos-de-simbolos/index.js} +4 -1
  82. package/fontes/comum/fontes/tipos-de-simbolos/index.js.map +1 -0
  83. package/fontes/comum/fontes/tradutor/index.d.ts +2 -32
  84. package/fontes/comum/fontes/tradutor/index.js +15 -235
  85. package/fontes/comum/fontes/tradutor/index.js.map +1 -1
  86. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.d.ts +7 -0
  87. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js +12 -0
  88. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js.map +1 -0
  89. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +33 -0
  90. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +246 -0
  91. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -0
  92. package/fontes/comum/testes/avaliador-sintatico.test.js +85 -14
  93. package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -1
  94. package/fontes/comum/testes/construtos.test.js +52 -0
  95. package/fontes/comum/testes/construtos.test.js.map +1 -0
  96. package/fontes/comum/testes/lexador-sql-ansi.test.d.ts +1 -0
  97. package/fontes/comum/testes/lexador-sql-ansi.test.js +83 -0
  98. package/fontes/comum/testes/lexador-sql-ansi.test.js.map +1 -0
  99. package/fontes/comum/testes/tradutor-sql-ansi.test.d.ts +1 -0
  100. package/fontes/comum/testes/{tradutor.test.js → tradutor-sql-ansi.test.js} +29 -25
  101. package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -0
  102. package/fontes/infraestrutura/cliente-sqlite.d.ts +1 -1
  103. package/fontes/infraestrutura/cliente-sqlite.js +10 -9
  104. package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
  105. package/fontes/lincones-sqlite.d.ts +4 -3
  106. package/fontes/lincones-sqlite.js +5 -4
  107. package/fontes/lincones-sqlite.js.map +1 -1
  108. package/fontes/tradutor/index.d.ts +2 -6
  109. package/fontes/tradutor/index.js +2 -87
  110. package/fontes/tradutor/index.js.map +1 -1
  111. package/package.json +1 -1
  112. package/fontes/comum/fontes/palavras-reservadas.js.map +0 -1
  113. package/fontes/comum/fontes/tipos-de-simbolos.js.map +0 -1
  114. package/fontes/comum/index.d.ts +0 -8
  115. package/fontes/comum/index.js.map +0 -1
  116. package/fontes/comum/testes/tradutor.test.js.map +0 -1
  117. /package/fontes/comum/testes/{tradutor.test.d.ts → construtos.test.d.ts} +0 -0
@@ -1,239 +1,19 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TradutorSqlAnsi = void 0;
7
- const construtos_1 = require("../construtos");
8
- const restricao_1 = require("../construtos/restricao");
9
- const tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
10
- /**
11
- * Este tradutor traduz sentenças em SQL ANSI, e a ideia é poder
12
- * utilizar para outros tradutores futuros, com pequenas nuances em
13
- * alguns comandos quando for o caso.
14
- */
15
- class TradutorSqlAnsi {
16
- constructor(tamanhoIndentacao = 4) {
17
- this.dicionarioComandos = {
18
- Alterar: this.traduzirComandoAlterar.bind(this),
19
- Atualizar: this.traduzirComandoAtualizar.bind(this),
20
- Criar: this.traduzirComandoCriar.bind(this),
21
- Excluir: this.traduzirComandoExcluir.bind(this),
22
- Inserir: this.traduzirComandoInserir.bind(this),
23
- Selecionar: this.traduzirComandoSelecionar.bind(this)
24
- };
25
- this.tamanhoIndentacao = tamanhoIndentacao;
26
- }
27
- traduzirOperador(operador) {
28
- switch (operador) {
29
- case tipos_de_simbolos_1.default.IGUAL:
30
- return '=';
31
- case tipos_de_simbolos_1.default.VERDADEIRO:
32
- return true;
33
- case tipos_de_simbolos_1.default.FALSO:
34
- return false;
35
- }
36
- }
37
- traduzirTipoDeDados(tipo) {
38
- switch (tipo) {
39
- case 'INTEIRO':
40
- return 'INTEGER';
41
- case 'LOGICO':
42
- return 'BOOLEAN';
43
- case 'NUMERO':
44
- return 'INT';
45
- case 'TEXTO':
46
- return 'VARCHAR';
47
- }
48
- }
49
- traduzirTipoDeRestricao(tipo) {
50
- switch (tipo) {
51
- case 'CHAVE_PRIMARIA':
52
- return 'PRIMARY KEY';
53
- case 'CHAVE_ESTRANGEIRA':
54
- return 'FOREIGN KEY';
55
- case 'ÚNICA':
56
- return 'UNIQUE';
57
- }
58
- }
59
- traduzirColunaComTipo(coluna) {
60
- let resultado = `${' '.repeat(this.tamanhoIndentacao)}${coluna.nomeColuna} ${this.traduzirTipoDeDados(coluna.tipo)}`;
61
- if (coluna.tamanho) {
62
- resultado += `(${coluna.tamanho.lexema}) `;
63
- }
64
- if (coluna.nulo) {
65
- resultado += `NULL `;
66
- }
67
- else {
68
- resultado += `NOT NULL `;
69
- }
70
- return resultado;
71
- }
72
- traduzirComandoAtualizar(comandoAtualizar) {
73
- let resultado = 'UPDATE ';
74
- resultado += `${comandoAtualizar.tabela}\nSET `;
75
- for (const valorAtualizacao of comandoAtualizar.colunasEValores) {
76
- if (valorAtualizacao.direita.tipo === tipos_de_simbolos_1.default.TEXTO) {
77
- resultado += `${valorAtualizacao.esquerda.lexema} = '${valorAtualizacao.direita.lexema}', `;
78
- continue;
79
- }
80
- if ([tipos_de_simbolos_1.default.VERDADEIRO, tipos_de_simbolos_1.default.FALSO].includes(valorAtualizacao.direita.tipo)) {
81
- resultado += `${valorAtualizacao.esquerda.lexema} = ${this.traduzirOperador(valorAtualizacao.direita.tipo)}, `;
82
- continue;
83
- }
84
- resultado += `${valorAtualizacao.esquerda.lexema} = ${valorAtualizacao.direita.lexema}, `;
85
- }
86
- resultado = resultado.slice(0, -2);
87
- resultado += `\nWHERE `;
88
- if (comandoAtualizar.condicoes.length > 0) {
89
- for (const condicao of comandoAtualizar.condicoes) {
90
- resultado += `${condicao.esquerda.lexema} ${this.traduzirOperador(condicao.operador)} ${condicao.direita} AND `;
91
- }
92
- resultado = resultado.slice(0, -5);
93
- }
94
- return resultado;
95
- }
96
- traduzirComandoCriar(comandoCriar) {
97
- let resultado = 'CREATE TABLE ';
98
- resultado += `${comandoCriar.nomeEntidade} (\n`;
99
- for (const coluna of comandoCriar.colunas) {
100
- resultado += this.traduzirColunaComTipo(coluna);
101
- if (coluna.chavePrimaria) {
102
- resultado += 'PRIMARY KEY ';
103
- if (coluna.autoIncremento) {
104
- resultado += 'AUTOINCREMENT ';
105
- }
106
- }
107
- resultado = resultado.slice(0, -1);
108
- resultado += ',\n';
109
- }
110
- resultado = resultado.slice(0, -2);
111
- resultado += `\n)`;
112
- return resultado;
113
- }
114
- traduzirComandoExcluir(comandoExcluir) {
115
- let resultado = 'DELETE FROM ';
116
- resultado += `${comandoExcluir.tabela}`;
117
- // Condições
118
- if (comandoExcluir.condicoes.length > 0) {
119
- resultado += '\nWHERE ';
120
- for (const condicao of comandoExcluir.condicoes) {
121
- resultado += `${condicao.esquerda.lexema} ${this.traduzirOperador(condicao.operador)} ${condicao.direita} AND `;
122
- }
123
- resultado = resultado.slice(0, -5);
124
- }
125
- return resultado;
126
- }
127
- traduzirComandoInserir(comandoInserir) {
128
- let resultado = 'INSERT INTO ';
129
- resultado += `${comandoInserir.tabela} (`;
130
- for (const coluna of comandoInserir.colunas) {
131
- resultado += `${coluna}, `;
132
- }
133
- resultado = resultado.slice(0, -2);
134
- resultado += `)\nVALUES (`;
135
- for (const valor of comandoInserir.valores) {
136
- switch (valor.tipo) {
137
- case tipos_de_simbolos_1.default.FALSO:
138
- resultado += 'FALSE, ';
139
- break;
140
- case tipos_de_simbolos_1.default.TEXTO:
141
- resultado += `'${valor.literal}', `;
142
- break;
143
- case tipos_de_simbolos_1.default.VERDADEIRO:
144
- resultado += 'TRUE, ';
145
- break;
146
- default:
147
- resultado += `${valor.literal}, `;
148
- break;
149
- }
150
- }
151
- resultado = resultado.slice(0, -2);
152
- resultado += `)`;
153
- return resultado;
154
- }
155
- traduzirComandoSelecionar(comandoSelecionar) {
156
- let resultado = 'SELECT ';
157
- // Colunas
158
- if (comandoSelecionar.tudo) {
159
- resultado += '*';
160
- }
161
- else {
162
- for (const coluna of comandoSelecionar.colunas) {
163
- resultado += coluna + ', ';
164
- }
165
- resultado = resultado.slice(0, -2);
166
- }
167
- resultado += `\nFROM ${comandoSelecionar.tabela}`;
168
- // Condições
169
- if (comandoSelecionar.condicoes.length > 0) {
170
- resultado += '\nWHERE ';
171
- for (const condicao of comandoSelecionar.condicoes) {
172
- resultado += `${condicao.esquerda.lexema} ${this.traduzirOperador(condicao.operador)} ${condicao.direita} AND `;
173
- }
174
- resultado = resultado.slice(0, -5);
175
- }
176
- return resultado;
177
- }
178
- logicaManipulacaoColunas(elemento) {
179
- if (elemento instanceof construtos_1.Coluna) {
180
- let formatacaoColuna = `COLUMN ${elemento.nomeColuna} ${this.traduzirTipoDeDados(elemento.tipo)}`;
181
- if (elemento.tipo === 'TEXTO') {
182
- formatacaoColuna += `(${elemento.tamanho.lexema})`;
183
- }
184
- formatacaoColuna += ` `;
185
- return formatacaoColuna;
186
- }
187
- if (elemento instanceof restricao_1.Restricao) {
188
- let formatacaoRestricao = `CONSTRAINT ${elemento.nome} ${this.traduzirTipoDeRestricao(elemento.tipo)} (`;
189
- for (const coluna of elemento.colunas) {
190
- formatacaoRestricao += coluna + ', ';
191
- }
192
- formatacaoRestricao = formatacaoRestricao.slice(0, -2);
193
- formatacaoRestricao += `) REFERENCES ${elemento.tabelaReferenciada} (`;
194
- for (const colunaReferenciada of elemento.colunasReferenciadas) {
195
- formatacaoRestricao += colunaReferenciada + ', ';
196
- }
197
- formatacaoRestricao = formatacaoRestricao.slice(0, -2);
198
- formatacaoRestricao += `) `;
199
- return formatacaoRestricao;
200
- }
201
- }
202
- traduzirTipoEntidade(tipoEntidade) {
203
- switch (tipoEntidade.toUpperCase()) {
204
- case 'TABELA':
205
- return 'TABLE';
206
- case 'VISÃO':
207
- case 'VISAO':
208
- return 'VIEW';
209
- }
210
- }
211
- traduzirComandoAlterar(comandoAlterar) {
212
- let resultado = `ALTER ${this.traduzirTipoEntidade(comandoAlterar.tipoEntidade)} ${comandoAlterar.nomeEntidade} `;
213
- for (const operacao of comandoAlterar.operacoes) {
214
- switch (operacao.tipo) {
215
- case 'ADICIONAR':
216
- resultado += `ADD ${this.logicaManipulacaoColunas(operacao.elemento)}`;
217
- break;
218
- case 'ALTERAR':
219
- resultado += 'INTEGER';
220
- break;
221
- case 'EXCLUIR':
222
- resultado += 'BIT';
223
- break;
224
- case 'RENOMEAR':
225
- break;
226
- }
227
- }
228
- return resultado;
229
- }
230
- traduzir(comandos) {
231
- let resultado = '';
232
- for (const comando of comandos.filter((c) => c)) {
233
- resultado += `${this.dicionarioComandos[comando.constructor.name](comando)} \n`;
234
- }
235
- return resultado;
236
- }
237
- }
238
- exports.TradutorSqlAnsi = TradutorSqlAnsi;
17
+ __exportStar(require("./tradutor-reverso-sql-ansi"), exports);
18
+ __exportStar(require("./tradutor-sql-ansi"), exports);
239
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,sDAAoC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Este tradutor traduz comandos de alto nível em LinConEs,
3
+ * normalmente lendo um arquivo em SQL ANSI e produzindo estruturas de alto
4
+ * nível sobre eles.
5
+ */
6
+ export declare class TradutorReversoSqlAnsi {
7
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TradutorReversoSqlAnsi = void 0;
4
+ /**
5
+ * Este tradutor traduz comandos de alto nível em LinConEs,
6
+ * normalmente lendo um arquivo em SQL ANSI e produzindo estruturas de alto
7
+ * nível sobre eles.
8
+ */
9
+ class TradutorReversoSqlAnsi {
10
+ }
11
+ exports.TradutorReversoSqlAnsi = TradutorReversoSqlAnsi;
12
+ //# sourceMappingURL=tradutor-reverso-sql-ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tradutor-reverso-sql-ansi.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAa,sBAAsB;CAElC;AAFD,wDAEC"}
@@ -0,0 +1,33 @@
1
+ import { Alterar, Atualizar, Comando, Criar, Excluir, Inserir, Selecionar } from '../comandos';
2
+ import { Coluna, Construto } from '../construtos';
3
+ /**
4
+ * Este tradutor traduz comandos de alto nível em SQL ANSI, e a ideia é poder
5
+ * utilizar para outros tradutores futuros, com pequenas nuances em
6
+ * alguns comandos quando for o caso.
7
+ */
8
+ export declare class TradutorSqlAnsi {
9
+ tamanhoIndentacao: number;
10
+ constructor(tamanhoIndentacao?: number);
11
+ protected traduzirOperador(operador: string): boolean | "=";
12
+ protected traduzirTipoDeDados(tipo: string): "INTEGER" | "BOOLEAN" | "INT" | "VARCHAR";
13
+ protected traduzirTipoDeRestricao(tipo: string): "PRIMARY KEY" | "FOREIGN KEY" | "UNIQUE";
14
+ protected traduzirConstruto(construto: Construto): string;
15
+ protected traduzirColunaComTipo(coluna: Coluna): string;
16
+ protected traduzirComandoAtualizar(comandoAtualizar: Atualizar): string;
17
+ protected traduzirComandoCriar(comandoCriar: Criar): string;
18
+ protected traduzirComandoExcluir(comandoExcluir: Excluir): string;
19
+ protected traduzirComandoInserir(comandoInserir: Inserir): string;
20
+ protected traduzirComandoSelecionar(comandoSelecionar: Selecionar): string;
21
+ private logicaManipulacaoColunas;
22
+ private traduzirTipoEntidade;
23
+ protected traduzirComandoAlterar(comandoAlterar: Alterar): string;
24
+ dicionarioComandos: {
25
+ Alterar: any;
26
+ Atualizar: any;
27
+ Criar: any;
28
+ Excluir: any;
29
+ Inserir: any;
30
+ Selecionar: any;
31
+ };
32
+ traduzir(comandos: Comando[]): string;
33
+ }
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TradutorSqlAnsi = void 0;
7
+ const construtos_1 = require("../construtos");
8
+ const restricao_1 = require("../construtos/restricao");
9
+ const tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
10
+ /**
11
+ * Este tradutor traduz comandos de alto nível em SQL ANSI, e a ideia é poder
12
+ * utilizar para outros tradutores futuros, com pequenas nuances em
13
+ * alguns comandos quando for o caso.
14
+ */
15
+ class TradutorSqlAnsi {
16
+ constructor(tamanhoIndentacao = 4) {
17
+ this.dicionarioComandos = {
18
+ Alterar: this.traduzirComandoAlterar.bind(this),
19
+ Atualizar: this.traduzirComandoAtualizar.bind(this),
20
+ Criar: this.traduzirComandoCriar.bind(this),
21
+ Excluir: this.traduzirComandoExcluir.bind(this),
22
+ Inserir: this.traduzirComandoInserir.bind(this),
23
+ Selecionar: this.traduzirComandoSelecionar.bind(this)
24
+ };
25
+ this.tamanhoIndentacao = tamanhoIndentacao;
26
+ }
27
+ traduzirOperador(operador) {
28
+ switch (operador) {
29
+ case tipos_de_simbolos_1.default.IGUAL:
30
+ return '=';
31
+ case tipos_de_simbolos_1.default.VERDADEIRO:
32
+ return true;
33
+ case tipos_de_simbolos_1.default.FALSO:
34
+ return false;
35
+ }
36
+ }
37
+ traduzirTipoDeDados(tipo) {
38
+ switch (tipo) {
39
+ case 'INTEIRO':
40
+ return 'INTEGER';
41
+ case 'LOGICO':
42
+ return 'BOOLEAN';
43
+ case 'NUMERO':
44
+ return 'INT';
45
+ case 'TEXTO':
46
+ return 'VARCHAR';
47
+ }
48
+ }
49
+ traduzirTipoDeRestricao(tipo) {
50
+ switch (tipo) {
51
+ case 'CHAVE_PRIMARIA':
52
+ return 'PRIMARY KEY';
53
+ case 'CHAVE_ESTRANGEIRA':
54
+ return 'FOREIGN KEY';
55
+ case 'ÚNICA':
56
+ return 'UNIQUE';
57
+ }
58
+ }
59
+ traduzirConstruto(construto) {
60
+ switch (construto.constructor.name) {
61
+ case 'Literal':
62
+ const construtoLiteral = construto;
63
+ switch (construtoLiteral.tipoPresumido) {
64
+ case tipos_de_simbolos_1.default.LOGICO:
65
+ return construtoLiteral.valor.toUpperCase() === 'VERDADEIRO' ? 'TRUE' : 'FALSE';
66
+ case tipos_de_simbolos_1.default.TEXTO:
67
+ return `'${construtoLiteral.valor}'`;
68
+ case tipos_de_simbolos_1.default.INTEIRO:
69
+ default:
70
+ return `${String(construtoLiteral.valor)}`;
71
+ }
72
+ case 'ParametroAnonimo':
73
+ return `?`;
74
+ case 'ParametroNomeado':
75
+ const construtoParametroNomeado = construto;
76
+ return `:${construtoParametroNomeado.nome}`;
77
+ case 'ReferenciaColuna':
78
+ const construtoReferenciaColuna = construto;
79
+ return construtoReferenciaColuna.nomeColuna;
80
+ }
81
+ }
82
+ traduzirColunaComTipo(coluna) {
83
+ let resultado = `${' '.repeat(this.tamanhoIndentacao)}${coluna.nomeColuna} ${this.traduzirTipoDeDados(coluna.tipo)}`;
84
+ if (coluna.tamanho) {
85
+ resultado += `(${coluna.tamanho.lexema}) `;
86
+ }
87
+ if (coluna.nulo) {
88
+ resultado += `NULL `;
89
+ }
90
+ else {
91
+ resultado += `NOT NULL `;
92
+ }
93
+ return resultado;
94
+ }
95
+ traduzirComandoAtualizar(comandoAtualizar) {
96
+ let resultado = `UPDATE ${comandoAtualizar.tabela}\n`;
97
+ resultado += `SET`;
98
+ for (const valorAtualizacao of comandoAtualizar.colunasEValores) {
99
+ resultado += ` ${this.traduzirConstruto(valorAtualizacao.coluna)} = ${this.traduzirConstruto(valorAtualizacao.valor)}, \n`;
100
+ }
101
+ resultado = resultado.slice(0, -3);
102
+ resultado += `\nWHERE`;
103
+ if (comandoAtualizar.condicoes.length > 0) {
104
+ for (const condicao of comandoAtualizar.condicoes) {
105
+ resultado += ` ${this.traduzirConstruto(condicao.esquerda)} ${this.traduzirOperador(condicao.operador)} ${this.traduzirConstruto(condicao.direita)}\nAND`;
106
+ }
107
+ resultado = resultado.slice(0, -4);
108
+ }
109
+ return resultado;
110
+ }
111
+ traduzirComandoCriar(comandoCriar) {
112
+ let resultado = 'CREATE TABLE ';
113
+ resultado += `${comandoCriar.nomeEntidade} (\n`;
114
+ for (const coluna of comandoCriar.colunas) {
115
+ resultado += this.traduzirColunaComTipo(coluna);
116
+ if (coluna.chavePrimaria) {
117
+ resultado += 'PRIMARY KEY ';
118
+ if (coluna.autoIncremento) {
119
+ resultado += 'AUTOINCREMENT ';
120
+ }
121
+ }
122
+ resultado = resultado.slice(0, -1);
123
+ resultado += ',\n';
124
+ }
125
+ resultado = resultado.slice(0, -2);
126
+ resultado += `\n)`;
127
+ return resultado;
128
+ }
129
+ traduzirComandoExcluir(comandoExcluir) {
130
+ let resultado = 'DELETE FROM ';
131
+ resultado += `${comandoExcluir.tabela}`;
132
+ // Condições
133
+ if (comandoExcluir.condicoes.length > 0) {
134
+ resultado += '\nWHERE ';
135
+ for (const condicao of comandoExcluir.condicoes) {
136
+ resultado += ` ${this.traduzirConstruto(condicao.esquerda)} ${this.traduzirOperador(condicao.operador)} ${this.traduzirConstruto(condicao.direita)}\nAND`;
137
+ }
138
+ resultado = resultado.slice(0, -4);
139
+ }
140
+ return resultado;
141
+ }
142
+ traduzirComandoInserir(comandoInserir) {
143
+ let resultado = 'INSERT INTO ';
144
+ resultado += `${comandoInserir.tabela} (`;
145
+ for (const coluna of comandoInserir.colunas) {
146
+ resultado += `${coluna}, `;
147
+ }
148
+ resultado = resultado.slice(0, -2);
149
+ resultado += `)\nVALUES (`;
150
+ for (const valor of comandoInserir.valores) {
151
+ resultado += `${this.traduzirConstruto(valor)}, `;
152
+ }
153
+ resultado = resultado.slice(0, -2);
154
+ resultado += `)`;
155
+ return resultado;
156
+ }
157
+ traduzirComandoSelecionar(comandoSelecionar) {
158
+ let resultado = 'SELECT ';
159
+ // Colunas
160
+ if (comandoSelecionar.tudo) {
161
+ resultado += '*';
162
+ }
163
+ else {
164
+ for (const coluna of comandoSelecionar.colunas) {
165
+ resultado += coluna + ', ';
166
+ }
167
+ resultado = resultado.slice(0, -2);
168
+ }
169
+ resultado += `\nFROM ${comandoSelecionar.tabela}`;
170
+ // Condições
171
+ if (comandoSelecionar.condicoes.length > 0) {
172
+ resultado += '\nWHERE ';
173
+ for (const condicao of comandoSelecionar.condicoes) {
174
+ resultado += ` ${this.traduzirConstruto(condicao.esquerda)} ${this.traduzirOperador(condicao.operador)} ${this.traduzirConstruto(condicao.direita)}\nAND`;
175
+ /* resultado += `${
176
+ condicao.esquerda.lexema
177
+ } ${this.traduzirOperador(condicao.operador)} ${
178
+ condicao.direita
179
+ } AND `; */
180
+ }
181
+ resultado = resultado.slice(0, -4);
182
+ }
183
+ return resultado;
184
+ }
185
+ logicaManipulacaoColunas(elemento) {
186
+ if (elemento instanceof construtos_1.Coluna) {
187
+ let formatacaoColuna = `COLUMN ${elemento.nomeColuna} ${this.traduzirTipoDeDados(elemento.tipo)}`;
188
+ if (elemento.tipo === 'TEXTO') {
189
+ formatacaoColuna += `(${elemento.tamanho.lexema})`;
190
+ }
191
+ formatacaoColuna += ` `;
192
+ return formatacaoColuna;
193
+ }
194
+ if (elemento instanceof restricao_1.Restricao) {
195
+ let formatacaoRestricao = `CONSTRAINT ${elemento.nome} ${this.traduzirTipoDeRestricao(elemento.tipo)} (`;
196
+ for (const coluna of elemento.colunas) {
197
+ formatacaoRestricao += coluna + ', ';
198
+ }
199
+ formatacaoRestricao = formatacaoRestricao.slice(0, -2);
200
+ formatacaoRestricao += `) REFERENCES ${elemento.tabelaReferenciada} (`;
201
+ for (const colunaReferenciada of elemento.colunasReferenciadas) {
202
+ formatacaoRestricao += colunaReferenciada + ', ';
203
+ }
204
+ formatacaoRestricao = formatacaoRestricao.slice(0, -2);
205
+ formatacaoRestricao += `) `;
206
+ return formatacaoRestricao;
207
+ }
208
+ }
209
+ traduzirTipoEntidade(tipoEntidade) {
210
+ switch (tipoEntidade.toUpperCase()) {
211
+ case 'TABELA':
212
+ return 'TABLE';
213
+ case 'VISÃO':
214
+ case 'VISAO':
215
+ return 'VIEW';
216
+ }
217
+ }
218
+ traduzirComandoAlterar(comandoAlterar) {
219
+ let resultado = `ALTER ${this.traduzirTipoEntidade(comandoAlterar.tipoEntidade)} ${comandoAlterar.nomeEntidade} `;
220
+ for (const operacao of comandoAlterar.operacoes) {
221
+ switch (operacao.tipo) {
222
+ case 'ADICIONAR':
223
+ resultado += `ADD ${this.logicaManipulacaoColunas(operacao.elemento)}`;
224
+ break;
225
+ case 'ALTERAR':
226
+ resultado += `ALTER ${this.logicaManipulacaoColunas(operacao.elemento)}`;
227
+ break;
228
+ case 'EXCLUIR':
229
+ resultado += 'BIT';
230
+ break;
231
+ case 'RENOMEAR':
232
+ break;
233
+ }
234
+ }
235
+ return resultado;
236
+ }
237
+ traduzir(comandos) {
238
+ let resultado = '';
239
+ for (const comando of comandos.filter((c) => c)) {
240
+ resultado += `${this.dicionarioComandos[comando.constructor.name](comando)} \n`;
241
+ }
242
+ return resultado;
243
+ }
244
+ }
245
+ exports.TradutorSqlAnsi = TradutorSqlAnsi;
246
+ //# sourceMappingURL=tradutor-sql-ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tradutor-sql-ansi.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/tradutor-sql-ansi.ts"],"names":[],"mappings":"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"}