@designliquido/lincones-sqlite 0.1.1 → 0.1.2

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 (58) hide show
  1. package/fontes/comum/babel.config.d.ts +5 -0
  2. package/fontes/comum/babel.config.js +7 -0
  3. package/fontes/comum/babel.config.js.map +1 -0
  4. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +2 -2
  5. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +24 -13
  6. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  7. package/fontes/comum/fontes/comandos/atualizar.d.ts +3 -9
  8. package/fontes/comum/fontes/comandos/atualizar.js.map +1 -1
  9. package/fontes/comum/fontes/comandos/excluir.d.ts +3 -2
  10. package/fontes/comum/fontes/comandos/excluir.js.map +1 -1
  11. package/fontes/comum/fontes/comandos/inserir.d.ts +3 -3
  12. package/fontes/comum/fontes/comandos/inserir.js.map +1 -1
  13. package/fontes/comum/fontes/construtos/coluna-e-valor.d.ts +8 -0
  14. package/fontes/comum/fontes/construtos/coluna-e-valor.js +16 -0
  15. package/fontes/comum/fontes/construtos/coluna-e-valor.js.map +1 -0
  16. package/fontes/comum/fontes/construtos/coluna.d.ts +3 -1
  17. package/fontes/comum/fontes/construtos/coluna.js +21 -1
  18. package/fontes/comum/fontes/construtos/coluna.js.map +1 -1
  19. package/fontes/comum/fontes/construtos/condicao.d.ts +6 -4
  20. package/fontes/comum/fontes/construtos/condicao.js +11 -1
  21. package/fontes/comum/fontes/construtos/condicao.js.map +1 -1
  22. package/fontes/comum/fontes/construtos/construto.d.ts +3 -0
  23. package/fontes/comum/fontes/construtos/construto.js +7 -0
  24. package/fontes/comum/fontes/construtos/construto.js.map +1 -0
  25. package/fontes/comum/fontes/construtos/index.d.ts +6 -0
  26. package/fontes/comum/fontes/construtos/index.js +6 -0
  27. package/fontes/comum/fontes/construtos/index.js.map +1 -1
  28. package/fontes/comum/fontes/construtos/literal.d.ts +7 -0
  29. package/fontes/comum/fontes/construtos/literal.js +16 -0
  30. package/fontes/comum/fontes/construtos/literal.js.map +1 -0
  31. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +3 -1
  32. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +6 -1
  33. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js.map +1 -1
  34. package/fontes/comum/fontes/construtos/referencia-coluna.d.ts +6 -0
  35. package/fontes/comum/fontes/construtos/referencia-coluna.js +15 -0
  36. package/fontes/comum/fontes/construtos/referencia-coluna.js.map +1 -0
  37. package/fontes/comum/fontes/construtos/restricao.d.ts +3 -1
  38. package/fontes/comum/fontes/construtos/restricao.js +24 -1
  39. package/fontes/comum/fontes/construtos/restricao.js.map +1 -1
  40. package/fontes/comum/fontes/index.d.ts +8 -0
  41. package/fontes/comum/{index.js → fontes/index.js} +8 -8
  42. package/fontes/comum/fontes/index.js.map +1 -0
  43. package/fontes/comum/fontes/tradutor/index.d.ts +1 -32
  44. package/fontes/comum/fontes/tradutor/index.js +14 -235
  45. package/fontes/comum/fontes/tradutor/index.js.map +1 -1
  46. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +33 -0
  47. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +241 -0
  48. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -0
  49. package/fontes/comum/testes/{tradutor.test.js → tradutor-sql-ansi.test.js} +7 -4
  50. package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -0
  51. package/fontes/tradutor/index.d.ts +2 -6
  52. package/fontes/tradutor/index.js +2 -87
  53. package/fontes/tradutor/index.js.map +1 -1
  54. package/package.json +1 -1
  55. package/fontes/comum/index.d.ts +0 -8
  56. package/fontes/comum/index.js.map +0 -1
  57. package/fontes/comum/testes/tradutor.test.js.map +0 -1
  58. /package/fontes/comum/testes/{tradutor.test.d.ts → tradutor-sql-ansi.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"restricao.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/restricao.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,SAAS;IAQlB,YACI,IAAY,EACZ,IAAsD,EACtD,MAAc,EACd,OAAiB,EACjB,kBAA2B,EAC3B,oBAA+B;QAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;CACJ;AAvBD,8BAuBC"}
1
+ {"version":3,"file":"restricao.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/restricao.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC;;;GAGG;AACH,MAAa,SAAU,SAAQ,qBAAS;IAQpC,YACI,IAAY,EACZ,IAAsD,EACtD,MAAc,EACd,OAAiB,EACjB,kBAA2B,EAC3B,oBAA+B;QAE/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,mBAAmB,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,MAAM,YAAY,CAAC;QAE7E,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,GAAG,CAAC;QAEf,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,IAAI,wBAAwB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjE,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,IAAI,0BAA0B,CAAC;YACtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC7C,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,GAAG,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,GAAG,CAAC;QACf,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AApDD,8BAoDC"}
@@ -0,0 +1,8 @@
1
+ export * from './avaliador-sintatico';
2
+ export * from './comandos';
3
+ export * from './construtos';
4
+ export * from './interfaces';
5
+ export * from './lexador';
6
+ export * from './palavras-reservadas';
7
+ export * from './tipos-de-simbolos';
8
+ export * from './tradutor';
@@ -14,12 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./fontes/avaliador-sintatico"), exports);
18
- __exportStar(require("./fontes/comandos"), exports);
19
- __exportStar(require("./fontes/construtos"), exports);
20
- __exportStar(require("./fontes/interfaces"), exports);
21
- __exportStar(require("./fontes/lexador"), exports);
22
- __exportStar(require("./fontes/palavras-reservadas"), exports);
23
- __exportStar(require("./fontes/tipos-de-simbolos"), exports);
24
- __exportStar(require("./fontes/tradutor"), exports);
17
+ __exportStar(require("./avaliador-sintatico"), exports);
18
+ __exportStar(require("./comandos"), exports);
19
+ __exportStar(require("./construtos"), exports);
20
+ __exportStar(require("./interfaces"), exports);
21
+ __exportStar(require("./lexador"), exports);
22
+ __exportStar(require("./palavras-reservadas"), exports);
23
+ __exportStar(require("./tipos-de-simbolos"), exports);
24
+ __exportStar(require("./tradutor"), exports);
25
25
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/comum/fontes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,wDAAsC;AACtC,sDAAoC;AACpC,6CAA2B"}
@@ -1,32 +1 @@
1
- import { Alterar, Atualizar, Comando, Criar, Excluir, Inserir, Selecionar } from '../comandos';
2
- import { Coluna } from '../construtos';
3
- /**
4
- * Este tradutor traduz sentenças 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 traduzirColunaComTipo(coluna: Coluna): string;
15
- protected traduzirComandoAtualizar(comandoAtualizar: Atualizar): string;
16
- protected traduzirComandoCriar(comandoCriar: Criar): string;
17
- protected traduzirComandoExcluir(comandoExcluir: Excluir): string;
18
- protected traduzirComandoInserir(comandoInserir: Inserir): string;
19
- protected traduzirComandoSelecionar(comandoSelecionar: Selecionar): string;
20
- private logicaManipulacaoColunas;
21
- private traduzirTipoEntidade;
22
- protected traduzirComandoAlterar(comandoAlterar: Alterar): string;
23
- dicionarioComandos: {
24
- Alterar: any;
25
- Atualizar: any;
26
- Criar: any;
27
- Excluir: any;
28
- Inserir: any;
29
- Selecionar: any;
30
- };
31
- traduzir(comandos: Comando[]): string;
32
- }
1
+ export * from './tradutor-sql-ansi';
@@ -1,239 +1,18 @@
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-sql-ansi"), exports);
239
18
  //# 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,sDAAoC"}
@@ -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 sentenças 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,241 @@
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 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
+ traduzirConstruto(construto) {
60
+ switch (construto.constructor.name) {
61
+ case 'ReferenciaColuna':
62
+ const construtoReferenciaColuna = construto;
63
+ return construtoReferenciaColuna.nomeColuna;
64
+ case 'Literal':
65
+ const construtoLiteral = construto;
66
+ switch (construtoLiteral.tipoPresumido) {
67
+ case tipos_de_simbolos_1.default.LOGICO:
68
+ return construtoLiteral.valor.toUpperCase() === 'VERDADEIRO' ? 'TRUE' : 'FALSE';
69
+ case tipos_de_simbolos_1.default.TEXTO:
70
+ return `'${construtoLiteral.valor}'`;
71
+ case tipos_de_simbolos_1.default.INTEIRO:
72
+ default:
73
+ return `${String(construtoLiteral.valor)}`;
74
+ }
75
+ }
76
+ }
77
+ traduzirColunaComTipo(coluna) {
78
+ let resultado = `${' '.repeat(this.tamanhoIndentacao)}${coluna.nomeColuna} ${this.traduzirTipoDeDados(coluna.tipo)}`;
79
+ if (coluna.tamanho) {
80
+ resultado += `(${coluna.tamanho.lexema}) `;
81
+ }
82
+ if (coluna.nulo) {
83
+ resultado += `NULL `;
84
+ }
85
+ else {
86
+ resultado += `NOT NULL `;
87
+ }
88
+ return resultado;
89
+ }
90
+ traduzirComandoAtualizar(comandoAtualizar) {
91
+ let resultado = `UPDATE ${comandoAtualizar.tabela}\n`;
92
+ resultado += `SET`;
93
+ for (const valorAtualizacao of comandoAtualizar.colunasEValores) {
94
+ resultado += ` ${this.traduzirConstruto(valorAtualizacao.coluna)} = ${this.traduzirConstruto(valorAtualizacao.valor)}, \n`;
95
+ }
96
+ resultado = resultado.slice(0, -2);
97
+ resultado += `\nWHERE`;
98
+ if (comandoAtualizar.condicoes.length > 0) {
99
+ for (const condicao of comandoAtualizar.condicoes) {
100
+ resultado += ` ${this.traduzirConstruto(condicao.esquerda)} ${this.traduzirOperador(condicao.operador)} ${this.traduzirConstruto(condicao.direita)}\nAND`;
101
+ }
102
+ resultado = resultado.slice(0, -4);
103
+ }
104
+ return resultado;
105
+ }
106
+ traduzirComandoCriar(comandoCriar) {
107
+ let resultado = 'CREATE TABLE ';
108
+ resultado += `${comandoCriar.nomeEntidade} (\n`;
109
+ for (const coluna of comandoCriar.colunas) {
110
+ resultado += this.traduzirColunaComTipo(coluna);
111
+ if (coluna.chavePrimaria) {
112
+ resultado += 'PRIMARY KEY ';
113
+ if (coluna.autoIncremento) {
114
+ resultado += 'AUTOINCREMENT ';
115
+ }
116
+ }
117
+ resultado = resultado.slice(0, -1);
118
+ resultado += ',\n';
119
+ }
120
+ resultado = resultado.slice(0, -2);
121
+ resultado += `\n)`;
122
+ return resultado;
123
+ }
124
+ traduzirComandoExcluir(comandoExcluir) {
125
+ let resultado = 'DELETE FROM ';
126
+ resultado += `${comandoExcluir.tabela}`;
127
+ // Condições
128
+ if (comandoExcluir.condicoes.length > 0) {
129
+ resultado += '\nWHERE ';
130
+ for (const condicao of comandoExcluir.condicoes) {
131
+ resultado += ` ${this.traduzirConstruto(condicao.esquerda)} ${this.traduzirOperador(condicao.operador)} ${this.traduzirConstruto(condicao.direita)}\nAND`;
132
+ }
133
+ resultado = resultado.slice(0, -4);
134
+ }
135
+ return resultado;
136
+ }
137
+ traduzirComandoInserir(comandoInserir) {
138
+ let resultado = 'INSERT INTO ';
139
+ resultado += `${comandoInserir.tabela} (`;
140
+ for (const coluna of comandoInserir.colunas) {
141
+ resultado += `${coluna}, `;
142
+ }
143
+ resultado = resultado.slice(0, -2);
144
+ resultado += `)\nVALUES (`;
145
+ for (const valor of comandoInserir.valores) {
146
+ resultado += `${this.traduzirConstruto(valor)}, `;
147
+ }
148
+ resultado = resultado.slice(0, -2);
149
+ resultado += `)`;
150
+ return resultado;
151
+ }
152
+ traduzirComandoSelecionar(comandoSelecionar) {
153
+ let resultado = 'SELECT ';
154
+ // Colunas
155
+ if (comandoSelecionar.tudo) {
156
+ resultado += '*';
157
+ }
158
+ else {
159
+ for (const coluna of comandoSelecionar.colunas) {
160
+ resultado += coluna + ', ';
161
+ }
162
+ resultado = resultado.slice(0, -2);
163
+ }
164
+ resultado += `\nFROM ${comandoSelecionar.tabela}`;
165
+ // Condições
166
+ if (comandoSelecionar.condicoes.length > 0) {
167
+ resultado += '\nWHERE ';
168
+ for (const condicao of comandoSelecionar.condicoes) {
169
+ resultado += ` ${this.traduzirConstruto(condicao.esquerda)} ${this.traduzirOperador(condicao.operador)} ${this.traduzirConstruto(condicao.direita)}\nAND`;
170
+ /* resultado += `${
171
+ condicao.esquerda.lexema
172
+ } ${this.traduzirOperador(condicao.operador)} ${
173
+ condicao.direita
174
+ } AND `; */
175
+ }
176
+ resultado = resultado.slice(0, -4);
177
+ }
178
+ return resultado;
179
+ }
180
+ logicaManipulacaoColunas(elemento) {
181
+ if (elemento instanceof construtos_1.Coluna) {
182
+ let formatacaoColuna = `COLUMN ${elemento.nomeColuna} ${this.traduzirTipoDeDados(elemento.tipo)}`;
183
+ if (elemento.tipo === 'TEXTO') {
184
+ formatacaoColuna += `(${elemento.tamanho.lexema})`;
185
+ }
186
+ formatacaoColuna += ` `;
187
+ return formatacaoColuna;
188
+ }
189
+ if (elemento instanceof restricao_1.Restricao) {
190
+ let formatacaoRestricao = `CONSTRAINT ${elemento.nome} ${this.traduzirTipoDeRestricao(elemento.tipo)} (`;
191
+ for (const coluna of elemento.colunas) {
192
+ formatacaoRestricao += coluna + ', ';
193
+ }
194
+ formatacaoRestricao = formatacaoRestricao.slice(0, -2);
195
+ formatacaoRestricao += `) REFERENCES ${elemento.tabelaReferenciada} (`;
196
+ for (const colunaReferenciada of elemento.colunasReferenciadas) {
197
+ formatacaoRestricao += colunaReferenciada + ', ';
198
+ }
199
+ formatacaoRestricao = formatacaoRestricao.slice(0, -2);
200
+ formatacaoRestricao += `) `;
201
+ return formatacaoRestricao;
202
+ }
203
+ }
204
+ traduzirTipoEntidade(tipoEntidade) {
205
+ switch (tipoEntidade.toUpperCase()) {
206
+ case 'TABELA':
207
+ return 'TABLE';
208
+ case 'VISÃO':
209
+ case 'VISAO':
210
+ return 'VIEW';
211
+ }
212
+ }
213
+ traduzirComandoAlterar(comandoAlterar) {
214
+ let resultado = `ALTER ${this.traduzirTipoEntidade(comandoAlterar.tipoEntidade)} ${comandoAlterar.nomeEntidade} `;
215
+ for (const operacao of comandoAlterar.operacoes) {
216
+ switch (operacao.tipo) {
217
+ case 'ADICIONAR':
218
+ resultado += `ADD ${this.logicaManipulacaoColunas(operacao.elemento)}`;
219
+ break;
220
+ case 'ALTERAR':
221
+ resultado += 'INTEGER';
222
+ break;
223
+ case 'EXCLUIR':
224
+ resultado += 'BIT';
225
+ break;
226
+ case 'RENOMEAR':
227
+ break;
228
+ }
229
+ }
230
+ return resultado;
231
+ }
232
+ traduzir(comandos) {
233
+ let resultado = '';
234
+ for (const comando of comandos.filter((c) => c)) {
235
+ resultado += `${this.dicionarioComandos[comando.constructor.name](comando)} \n`;
236
+ }
237
+ return resultado;
238
+ }
239
+ }
240
+ exports.TradutorSqlAnsi = TradutorSqlAnsi;
241
+ //# 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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"}