@designliquido/lincones-sqlite 0.2.5 → 0.3.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.
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +3 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +23 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +19 -12
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +93 -67
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.d.ts +18 -2
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js +341 -2
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js.map +1 -1
- package/fontes/comum/fontes/comandos/index.d.ts +1 -1
- package/fontes/comum/fontes/comandos/index.js +1 -1
- package/fontes/comum/fontes/comandos/{excluir-entidade.d.ts → remover-entidade.d.ts} +1 -1
- package/fontes/comum/fontes/comandos/{excluir-entidade.js → remover-entidade.js} +4 -4
- package/fontes/comum/fontes/comandos/{excluir-entidade.js.map → remover-entidade.js.map} +1 -1
- package/fontes/comum/fontes/comandos/selecionar.d.ts +3 -2
- package/fontes/comum/fontes/comandos/selecionar.js +2 -1
- package/fontes/comum/fontes/comandos/selecionar.js.map +1 -1
- package/fontes/comum/fontes/construtos/coluna.d.ts +2 -2
- package/fontes/comum/fontes/construtos/coluna.js +6 -4
- package/fontes/comum/fontes/construtos/coluna.js.map +1 -1
- package/fontes/comum/fontes/construtos/index.d.ts +1 -0
- package/fontes/comum/fontes/construtos/index.js +1 -0
- package/fontes/comum/fontes/construtos/index.js.map +1 -1
- package/fontes/comum/fontes/construtos/juncao.d.ts +11 -0
- package/fontes/comum/fontes/construtos/juncao.js +20 -0
- package/fontes/comum/fontes/construtos/juncao.js.map +1 -0
- package/fontes/comum/fontes/construtos/literal.d.ts +2 -2
- package/fontes/comum/fontes/construtos/literal.js +1 -1
- package/fontes/comum/fontes/construtos/literal.js.map +1 -1
- package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +1 -1
- package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +1 -1
- package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.d.ts +1 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js +1 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js.map +1 -1
- package/fontes/comum/fontes/lexador/palavras-reservadas/sql.d.ts +10 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js +10 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js.map +1 -1
- package/fontes/comum/fontes/tipos-de-simbolos/index.d.ts +2 -0
- package/fontes/comum/fontes/tipos-de-simbolos/index.js +2 -0
- package/fontes/comum/fontes/tipos-de-simbolos/index.js.map +1 -1
- package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.d.ts +31 -0
- package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js +306 -0
- package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js.map +1 -1
- package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +10 -5
- package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +75 -8
- package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -1
- package/fontes/comum/testes/avaliador-sintatico-sql-ansi.test.d.ts +1 -0
- package/fontes/comum/testes/avaliador-sintatico-sql-ansi.test.js +360 -0
- package/fontes/comum/testes/avaliador-sintatico-sql-ansi.test.js.map +1 -0
- package/fontes/comum/testes/avaliador-sintatico.test.js +0 -10
- package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -1
- package/fontes/comum/testes/construtos.test.js +2 -2
- package/fontes/comum/testes/construtos.test.js.map +1 -1
- package/fontes/comum/testes/tradutor-reverso-sql-ansi.test.d.ts +1 -0
- package/fontes/comum/testes/tradutor-reverso-sql-ansi.test.js +278 -0
- package/fontes/comum/testes/tradutor-reverso-sql-ansi.test.js.map +1 -0
- package/fontes/comum/testes/tradutor-sql-ansi.test.js +3 -3
- package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -1
- package/fontes/lincones-sqlite.js +6 -1
- package/fontes/lincones-sqlite.js.map +1 -1
- package/fontes/palavras-reservadas.d.ts +3 -0
- package/fontes/palavras-reservadas.js +3 -0
- package/fontes/palavras-reservadas.js.map +1 -1
- package/fontes/tradutor/index.d.ts +0 -8
- package/fontes/tradutor/index.js +0 -11
- package/fontes/tradutor/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,351 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.AvaliadorSintaticoSqlAnsi = void 0;
|
|
4
7
|
const avaliador_sintatico_base_1 = require("./avaliador-sintatico-base");
|
|
8
|
+
const comandos_1 = require("../comandos");
|
|
9
|
+
const construtos_1 = require("../construtos");
|
|
10
|
+
const tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
|
|
5
11
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
12
|
+
* O Avaliador Sintático SQL ANSI analisa _tokens_ em inglês (CREATE, SELECT, etc.)
|
|
13
|
+
* e produz as mesmas estruturas de comando que o avaliador sintático base.
|
|
8
14
|
*/
|
|
9
15
|
class AvaliadorSintaticoSqlAnsi extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
|
|
16
|
+
traduzirTipoDeDados(tipoSql) {
|
|
17
|
+
const tipoUpper = tipoSql.toUpperCase();
|
|
18
|
+
switch (tipoUpper) {
|
|
19
|
+
case 'INTEGER':
|
|
20
|
+
case 'INT':
|
|
21
|
+
return 'INTEIRO';
|
|
22
|
+
case 'BOOLEAN':
|
|
23
|
+
case 'BOOL':
|
|
24
|
+
return 'LOGICO';
|
|
25
|
+
case 'VARCHAR':
|
|
26
|
+
case 'CHAR':
|
|
27
|
+
return 'CARACTERES';
|
|
28
|
+
case 'TEXT':
|
|
29
|
+
return 'TEXTO';
|
|
30
|
+
case 'NUMBER':
|
|
31
|
+
case 'NUMERIC':
|
|
32
|
+
case 'DECIMAL':
|
|
33
|
+
return 'NUMERO';
|
|
34
|
+
default:
|
|
35
|
+
return tipoSql;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
logicaAdicionarOuAlterarColuna(simboloNomeDaColuna) {
|
|
39
|
+
// Tipo de dados
|
|
40
|
+
const simboloTipoElemento = this.avancarEDevolverAnterior();
|
|
41
|
+
let tamanhoElemento = null;
|
|
42
|
+
if (![
|
|
43
|
+
tipos_de_simbolos_1.default.CARACTERES,
|
|
44
|
+
tipos_de_simbolos_1.default.INTEIRO,
|
|
45
|
+
tipos_de_simbolos_1.default.LOGICO,
|
|
46
|
+
tipos_de_simbolos_1.default.NUMERO,
|
|
47
|
+
tipos_de_simbolos_1.default.TEXTO
|
|
48
|
+
].includes(simboloTipoElemento.tipo)) {
|
|
49
|
+
throw this.erro(simboloTipoElemento, `Tipo de coluna inválido para operação de adição ou alteração de coluna. Tipos válidos: inteiro, lógico ou texto. Obtido: ${simboloTipoElemento.tipo}.`);
|
|
50
|
+
}
|
|
51
|
+
if (simboloTipoElemento.tipo === tipos_de_simbolos_1.default.CARACTERES) {
|
|
52
|
+
if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO)) {
|
|
53
|
+
tamanhoElemento = this.consumir(tipos_de_simbolos_1.default.NUMERO, 'Esperado tamanho de texto de coluna em comando de criação de tabela.');
|
|
54
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após declaração de tamanho de coluna em comando de criação de tabela.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Nulo/Não Nulo
|
|
58
|
+
let nulo = true;
|
|
59
|
+
if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.NAO, tipos_de_simbolos_1.default.NULO)) {
|
|
60
|
+
const simboloAnterior = this.simbolos[this.atual - 1];
|
|
61
|
+
switch (simboloAnterior.tipo) {
|
|
62
|
+
case tipos_de_simbolos_1.default.NAO:
|
|
63
|
+
this.consumir(tipos_de_simbolos_1.default.NULO, 'Esperado palavra reservada "NULO" após palavra reservada "NÃO" em declaração de coluna em comando de criação de tabela.');
|
|
64
|
+
nulo = false;
|
|
65
|
+
break;
|
|
66
|
+
case tipos_de_simbolos_1.default.NULO:
|
|
67
|
+
default:
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Chave primária?
|
|
72
|
+
const [chavePrimaria, autoIncremento] = this.logicaChavePrimaria();
|
|
73
|
+
return new construtos_1.Coluna(simboloNomeDaColuna.lexema, simboloTipoElemento.tipo, tamanhoElemento ? tamanhoElemento : undefined, nulo, chavePrimaria, false, autoIncremento);
|
|
74
|
+
}
|
|
75
|
+
logicaChavePrimaria() {
|
|
76
|
+
let chavePrimaria = false;
|
|
77
|
+
const autoIncremento = false;
|
|
78
|
+
if (this.verificarTipoSimboloAtual(tipos_de_simbolos_1.default.PRIMARIA)) {
|
|
79
|
+
this.avancar();
|
|
80
|
+
switch (this.simbolos[this.atual].tipo) {
|
|
81
|
+
case tipos_de_simbolos_1.default.CHAVE:
|
|
82
|
+
chavePrimaria = true;
|
|
83
|
+
this.avancar();
|
|
84
|
+
// TODO: Aparentemente, SQL ANSI não é padronizado na questão de
|
|
85
|
+
// auto incremento.
|
|
86
|
+
/* if (
|
|
87
|
+
this.verificarSeSimboloAtualEIgualA(
|
|
88
|
+
tiposDeSimbolos.AUTO
|
|
89
|
+
)
|
|
90
|
+
) {
|
|
91
|
+
this.consumir(
|
|
92
|
+
tiposDeSimbolos.INCREMENTO,
|
|
93
|
+
'Esperado palavra reservada "INCREMENTO" após palavra reservada "AUTO" em declaração de coluna em comando de criação de tabela.'
|
|
94
|
+
);
|
|
95
|
+
autoIncremento = true;
|
|
96
|
+
} */
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
throw this.erro(this.simbolos[this.atual], 'Esperado palavra reservada "PRIMARIA" após palavra reservada "CHAVE" na definição de coluna em comando de criação de tabela.');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return [chavePrimaria, autoIncremento];
|
|
103
|
+
}
|
|
104
|
+
logicaComumOperando() {
|
|
105
|
+
const simboloOperando = this.avancarEDevolverAnterior();
|
|
106
|
+
switch (simboloOperando.tipo) {
|
|
107
|
+
case tipos_de_simbolos_1.default.IDENTIFICADOR:
|
|
108
|
+
return new construtos_1.ReferenciaColuna(simboloOperando.lexema);
|
|
109
|
+
case tipos_de_simbolos_1.default.CARACTERES:
|
|
110
|
+
case tipos_de_simbolos_1.default.NUMERO:
|
|
111
|
+
case tipos_de_simbolos_1.default.TEXTO:
|
|
112
|
+
return new construtos_1.Literal(simboloOperando.literal || simboloOperando.lexema, this.inferirTipoOperando(simboloOperando.tipo));
|
|
113
|
+
case tipos_de_simbolos_1.default.VERDADEIRO:
|
|
114
|
+
case tipos_de_simbolos_1.default.FALSO:
|
|
115
|
+
return new construtos_1.Literal(simboloOperando.lexema === 'TRUE' ? 'VERDADEIRO' : 'FALSO', this.inferirTipoOperando(simboloOperando.tipo));
|
|
116
|
+
case tipos_de_simbolos_1.default.INTERROGACAO:
|
|
117
|
+
return new construtos_1.ParametroAnonimo();
|
|
118
|
+
case tipos_de_simbolos_1.default.DOIS_PONTOS:
|
|
119
|
+
if (!this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.IDENTIFICADOR)) {
|
|
120
|
+
throw this.erro(simboloOperando, 'Esperado identificador após dois pontos em condição, para definição de parâmetro.');
|
|
121
|
+
}
|
|
122
|
+
const simboloParametro = this.simbolos[this.atual - 1];
|
|
123
|
+
return new construtos_1.ParametroNomeado(simboloParametro.lexema);
|
|
124
|
+
default:
|
|
125
|
+
throw this.erro(simboloOperando, `Esperado identificador, número, texto, verdadeiro, falso ou parâmetro anônimo após operador em condição. Obtido: ${simboloOperando.tipo}.`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
comandoCriacaoColuna() {
|
|
129
|
+
// Nome da coluna
|
|
130
|
+
const nomeDaColuna = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de coluna em comando de criação de tabela.');
|
|
131
|
+
// Tipo de dados - pode vir como IDENTIFICADOR (VARCHAR, INTEGER, etc.)
|
|
132
|
+
const simboloTipo = this.avancarEDevolverAnterior();
|
|
133
|
+
const tipoColuna = this.traduzirTipoDeDados(simboloTipo.lexema);
|
|
134
|
+
let tamanhoColuna = null;
|
|
135
|
+
// Tamanho (VARCHAR(120), CHAR(50), etc.)
|
|
136
|
+
if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO)) {
|
|
137
|
+
tamanhoColuna = this.consumir(tipos_de_simbolos_1.default.NUMERO, 'Esperado tamanho de texto de coluna em comando de criação de tabela.');
|
|
138
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após declaração de tamanho de coluna em comando de criação de tabela.');
|
|
139
|
+
}
|
|
140
|
+
// NOT NULL / NULL
|
|
141
|
+
let nulo = true;
|
|
142
|
+
if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.NAO, tipos_de_simbolos_1.default.NULO)) {
|
|
143
|
+
const simboloAnterior = this.simbolos[this.atual - 1];
|
|
144
|
+
switch (simboloAnterior.tipo) {
|
|
145
|
+
case tipos_de_simbolos_1.default.NAO:
|
|
146
|
+
this.consumir(tipos_de_simbolos_1.default.NULO, 'Esperado palavra reservada "NULO" após palavra reservada "NÃO" em declaração de coluna em comando de criação de tabela.');
|
|
147
|
+
nulo = false;
|
|
148
|
+
break;
|
|
149
|
+
case tipos_de_simbolos_1.default.NULO:
|
|
150
|
+
default:
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Chave primária?
|
|
155
|
+
const [chavePrimaria, autoIncremento] = this.logicaChavePrimaria();
|
|
156
|
+
return new construtos_1.Coluna(nomeDaColuna.lexema, tipoColuna, tamanhoColuna, nulo, chavePrimaria, false, autoIncremento);
|
|
157
|
+
}
|
|
158
|
+
comandoCriar() {
|
|
159
|
+
// CREATE
|
|
160
|
+
this.consumir(tipos_de_simbolos_1.default.CRIAR, 'Esperado palavra reservada "CREATE".');
|
|
161
|
+
// TABLE
|
|
162
|
+
const simboloTabela = this.consumir(tipos_de_simbolos_1.default.TABELA, 'Esperado palavra reservada "TABLE".');
|
|
163
|
+
// IF NOT EXISTS (opcional)
|
|
164
|
+
let seNaoExistir = false;
|
|
165
|
+
if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.SE)) {
|
|
166
|
+
this.consumir(tipos_de_simbolos_1.default.NAO, 'Esperado palavra "NOT" após palavra "IF".');
|
|
167
|
+
this.consumir(tipos_de_simbolos_1.default.EXISTIR, 'Esperado palavra "EXISTS" após palavra "NOT".');
|
|
168
|
+
seNaoExistir = true;
|
|
169
|
+
}
|
|
170
|
+
const nomeDaTabela = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavra reservada "TABLE".');
|
|
171
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO, 'Esperado abertura de parênteses após nome da tabela');
|
|
172
|
+
const colunas = [];
|
|
173
|
+
do {
|
|
174
|
+
colunas.push(this.comandoCriacaoColuna());
|
|
175
|
+
} while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA));
|
|
176
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_DIREITO, 'Esperado fechamento de parênteses após definição das colunas');
|
|
177
|
+
this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
|
|
178
|
+
return new comandos_1.Criar(simboloTabela.linha, nomeDaTabela.lexema, colunas, seNaoExistir);
|
|
179
|
+
}
|
|
180
|
+
comandoInserir() {
|
|
181
|
+
// INSERT
|
|
182
|
+
const simboloInserir = this.consumir(tipos_de_simbolos_1.default.INSERIR, 'Esperado palavra reservada "INSERT".');
|
|
183
|
+
// INTO
|
|
184
|
+
this.consumir(tipos_de_simbolos_1.default.EM, 'Esperado palavra reservada "INTO" após palavra reservada "INSERT".');
|
|
185
|
+
const nomeDaTabela = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavra reservada "INTO" em declaração "INSERT".');
|
|
186
|
+
// Colunas
|
|
187
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO, 'Esperado abertura de parênteses após identificador de nome de tabela em comando "INSERT".');
|
|
188
|
+
const colunas = [];
|
|
189
|
+
do {
|
|
190
|
+
const nomeDaColuna = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de coluna após identificador de nome de tabela em comando "INSERT".');
|
|
191
|
+
colunas.push(nomeDaColuna.lexema);
|
|
192
|
+
} while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA));
|
|
193
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_DIREITO, 'Esperado fechamento de parênteses após declaração de colunas em comando "INSERT".');
|
|
194
|
+
this.consumir(tipos_de_simbolos_1.default.VALORES, 'Esperado palavra reservada "VALUES" após primeiro fechamento de parênteses em comando "INSERT".');
|
|
195
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO, 'Esperado abertura de parênteses após palavra reservada "VALUES" em comando "INSERT".');
|
|
196
|
+
// Valores
|
|
197
|
+
const valores = [];
|
|
198
|
+
do {
|
|
199
|
+
if (![
|
|
200
|
+
tipos_de_simbolos_1.default.IDENTIFICADOR,
|
|
201
|
+
tipos_de_simbolos_1.default.FALSO,
|
|
202
|
+
tipos_de_simbolos_1.default.NUMERO,
|
|
203
|
+
tipos_de_simbolos_1.default.TEXTO,
|
|
204
|
+
tipos_de_simbolos_1.default.VERDADEIRO,
|
|
205
|
+
tipos_de_simbolos_1.default.INTERROGACAO,
|
|
206
|
+
tipos_de_simbolos_1.default.DOIS_PONTOS
|
|
207
|
+
].includes(this.simbolos[this.atual].tipo)) {
|
|
208
|
+
throw this.erro(this.simbolos[this.atual], `Esperado valor válido para inserção em comando "INSERT".`);
|
|
209
|
+
}
|
|
210
|
+
const operando = this.logicaComumOperando();
|
|
211
|
+
valores.push(operando);
|
|
212
|
+
} while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA));
|
|
213
|
+
this.consumir(tipos_de_simbolos_1.default.PARENTESE_DIREITO, 'Esperado fechamento de parênteses após declaração de valores em comando "INSERT".');
|
|
214
|
+
if (valores.length !== colunas.length) {
|
|
215
|
+
throw this.erro(simboloInserir, 'Número de colunas não correspondente ao número de valores em comando "INSERT".');
|
|
216
|
+
}
|
|
217
|
+
this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
|
|
218
|
+
return new comandos_1.Inserir(simboloInserir.linha, nomeDaTabela.lexema, colunas, valores);
|
|
219
|
+
}
|
|
220
|
+
comandoAtualizar() {
|
|
221
|
+
// UPDATE
|
|
222
|
+
const simboloAtualizar = this.consumir(tipos_de_simbolos_1.default.ATUALIZAR, 'Esperado palavra reservada "UPDATE".');
|
|
223
|
+
const nomeDaTabela = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavra reservada "UPDATE".');
|
|
224
|
+
// SET
|
|
225
|
+
this.consumir(tipos_de_simbolos_1.default.DEFINIR, 'Esperado palavra reservada "SET" após palavra reservada "UPDATE".');
|
|
226
|
+
// Relação de colunas para atualização
|
|
227
|
+
const colunasAtualizacao = [];
|
|
228
|
+
do {
|
|
229
|
+
const esquerda = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, `Esperado nome de coluna ou literal em descrição de atualização.`);
|
|
230
|
+
this.consumir(tipos_de_simbolos_1.default.IGUAL, 'Esperado operador válido após identificador em descrição de atualização.');
|
|
231
|
+
if (![
|
|
232
|
+
tipos_de_simbolos_1.default.DOIS_PONTOS,
|
|
233
|
+
tipos_de_simbolos_1.default.IDENTIFICADOR,
|
|
234
|
+
tipos_de_simbolos_1.default.INTERROGACAO,
|
|
235
|
+
tipos_de_simbolos_1.default.NUMERO,
|
|
236
|
+
tipos_de_simbolos_1.default.TEXTO,
|
|
237
|
+
tipos_de_simbolos_1.default.VERDADEIRO,
|
|
238
|
+
tipos_de_simbolos_1.default.FALSO
|
|
239
|
+
].includes(this.simbolos[this.atual].tipo)) {
|
|
240
|
+
throw this.erro(this.simbolos[this.atual], `Esperado operador válido após identificador em descrição de atualização.`);
|
|
241
|
+
}
|
|
242
|
+
const direita = this.logicaComumOperando();
|
|
243
|
+
colunasAtualizacao.push(new construtos_1.ColunaEValor(new construtos_1.ReferenciaColuna(esquerda.lexema), direita));
|
|
244
|
+
} while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA));
|
|
245
|
+
// WHERE
|
|
246
|
+
const condicoes = this.logicaComumCondicoes('atualização');
|
|
247
|
+
// Ponto-e-vírgula opcional
|
|
248
|
+
this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
|
|
249
|
+
return new comandos_1.Atualizar(simboloAtualizar.linha, nomeDaTabela.lexema, colunasAtualizacao, condicoes);
|
|
250
|
+
}
|
|
251
|
+
comandoRemoverEntidade() {
|
|
252
|
+
// Essa linha nunca deve retornar erro.
|
|
253
|
+
this.consumir(tipos_de_simbolos_1.default.REMOVER, 'Esperado palavra reservada "REMOVER".');
|
|
254
|
+
if (!this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.TABELA, tipos_de_simbolos_1.default.VISAO)) {
|
|
255
|
+
throw this.erro(this.simbolos[this.atual], `Esperado palavras reservadas "TABELA" ou "VISÃO" após palavra reservada "REMOVER".`);
|
|
256
|
+
}
|
|
257
|
+
const simboloTipoEntidade = this.simbolos[this.atual - 1];
|
|
258
|
+
const nomeDaEntidade = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavras reservadas "TABELA" ou "VISÃO".');
|
|
259
|
+
this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
|
|
260
|
+
return new comandos_1.RemoverEntidade(nomeDaEntidade.linha, nomeDaEntidade.lexema, simboloTipoEntidade.tipo.toUpperCase());
|
|
261
|
+
}
|
|
262
|
+
comandoSelecionar() {
|
|
263
|
+
// SELECT
|
|
264
|
+
const simboloSelecionar = this.consumir(tipos_de_simbolos_1.default.SELECIONAR, 'Esperado palavra reservada "SELECT".');
|
|
265
|
+
// Colunas
|
|
266
|
+
let tudo = false;
|
|
267
|
+
const colunas = [];
|
|
268
|
+
if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.TUDO)) {
|
|
269
|
+
tudo = true;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
do {
|
|
273
|
+
colunas.push(this.simbolos[this.atual].lexema);
|
|
274
|
+
this.avancar();
|
|
275
|
+
} while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA));
|
|
276
|
+
}
|
|
277
|
+
// FROM
|
|
278
|
+
this.consumir(tipos_de_simbolos_1.default.DE, 'Esperado palavra reservada "FROM" após definição das colunas em comando de seleção.');
|
|
279
|
+
const nomeTabela = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado nome de tabela após palavra reservada "FROM".');
|
|
280
|
+
// WHERE
|
|
281
|
+
const condicoes = this.logicaComumCondicoes('seleção');
|
|
282
|
+
// Ponto-e-vírgula opcional.
|
|
283
|
+
this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
|
|
284
|
+
return new comandos_1.Selecionar(simboloSelecionar.linha, nomeTabela.lexema, colunas, condicoes, tudo);
|
|
285
|
+
}
|
|
286
|
+
logicaManipulacaoColunaOuRestricao(simboloOperacao, simboloDaTabelaOuVisao) {
|
|
287
|
+
switch (this.simbolos[this.atual].tipo) {
|
|
288
|
+
case tipos_de_simbolos_1.default.COLUNA:
|
|
289
|
+
this.avancar();
|
|
290
|
+
return this.logicaManipulacaoColuna(simboloOperacao);
|
|
291
|
+
case tipos_de_simbolos_1.default.RESTRICAO:
|
|
292
|
+
this.avancar();
|
|
293
|
+
return this.logicaManipulacaoRestricao(simboloDaTabelaOuVisao, simboloOperacao);
|
|
294
|
+
default:
|
|
295
|
+
throw this.erro(this.simbolos[this.atual], `Tipo de elemento de tabela ou visão inválido para operação "${simboloOperacao.lexema}": ${this.simbolos[this.atual].lexema}.`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
comandoAlterar() {
|
|
299
|
+
// ALTER
|
|
300
|
+
const simboloAlterar = this.consumir(tipos_de_simbolos_1.default.ALTERAR, 'Esperado palavra reservada "ALTER".');
|
|
301
|
+
// TABLE ou VIEW
|
|
302
|
+
if (!this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.TABELA, tipos_de_simbolos_1.default.VISAO)) {
|
|
303
|
+
throw this.erro(this.simbolos[this.atual], 'Esperado palavra reservada "TABLE" ou "VIEW".');
|
|
304
|
+
}
|
|
305
|
+
const simboloTipoEntidade = this.simbolos[this.atual - 1];
|
|
306
|
+
const nomeDaEntidade = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, `Esperado identificador de nome de tabela ou visão após palavra reservada '${simboloTipoEntidade.lexema}'.`);
|
|
307
|
+
const operacoes = [];
|
|
308
|
+
// Processar operações em SQL: ADD, DROP, ALTER COLUMN, RENAME COLUMN
|
|
309
|
+
while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.ADICIONAR, tipos_de_simbolos_1.default.ALTERAR, tipos_de_simbolos_1.default.REMOVER, tipos_de_simbolos_1.default.RENOMEAR)) {
|
|
310
|
+
const simboloOperacao = this.simbolos[this.atual - 1];
|
|
311
|
+
const elemento = this.logicaManipulacaoColunaOuRestricao(simboloOperacao, nomeDaEntidade);
|
|
312
|
+
if (elemento) {
|
|
313
|
+
operacoes.push(new construtos_1.OperacaoAlteracaoTabela(simboloOperacao.tipo, elemento));
|
|
314
|
+
}
|
|
315
|
+
this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA);
|
|
316
|
+
}
|
|
317
|
+
if (operacoes.length <= 0) {
|
|
318
|
+
throw this.erro(this.simbolos[this.atual - 1], `Esperado pelo menos uma operação em um comando de alteração de tabela.`);
|
|
319
|
+
}
|
|
320
|
+
return new comandos_1.Alterar(simboloAlterar.linha, nomeDaEntidade.lexema, simboloTipoEntidade.lexema, operacoes);
|
|
321
|
+
}
|
|
322
|
+
declaracao() {
|
|
323
|
+
try {
|
|
324
|
+
switch (this.simbolos[this.atual].tipo) {
|
|
325
|
+
case tipos_de_simbolos_1.default.ALTERAR:
|
|
326
|
+
return this.comandoAlterar();
|
|
327
|
+
case tipos_de_simbolos_1.default.ATUALIZAR:
|
|
328
|
+
return this.comandoAtualizar();
|
|
329
|
+
case tipos_de_simbolos_1.default.CRIAR:
|
|
330
|
+
return this.comandoCriar();
|
|
331
|
+
case tipos_de_simbolos_1.default.EXCLUIR:
|
|
332
|
+
return this.comandoExcluir();
|
|
333
|
+
case tipos_de_simbolos_1.default.INSERIR:
|
|
334
|
+
return this.comandoInserir();
|
|
335
|
+
case tipos_de_simbolos_1.default.REMOVER:
|
|
336
|
+
return this.comandoRemoverEntidade();
|
|
337
|
+
case tipos_de_simbolos_1.default.SELECIONAR:
|
|
338
|
+
return this.comandoSelecionar();
|
|
339
|
+
default:
|
|
340
|
+
this.avancar();
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
catch (erro) {
|
|
345
|
+
this.erros.push(erro);
|
|
346
|
+
return null;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
10
349
|
}
|
|
11
350
|
exports.AvaliadorSintaticoSqlAnsi = AvaliadorSintaticoSqlAnsi;
|
|
12
351
|
//# sourceMappingURL=avaliador-sintatico-sql-ansi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-sql-ansi.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.ts"],"names":[],"mappings":";;;AAAA,yEAAoE;AAEpE;;;GAGG;AACH,MAAa,yBAA0B,SAAQ,iDAAsB;CAEpE;AAFD,8DAEC"}
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-sql-ansi.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ __exportStar(require("./atualizar"), exports);
|
|
|
19
19
|
__exportStar(require("./comando"), exports);
|
|
20
20
|
__exportStar(require("./criar"), exports);
|
|
21
21
|
__exportStar(require("./excluir"), exports);
|
|
22
|
-
__exportStar(require("./
|
|
22
|
+
__exportStar(require("./remover-entidade"), exports);
|
|
23
23
|
__exportStar(require("./inserir"), exports);
|
|
24
24
|
__exportStar(require("./selecionar"), exports);
|
|
25
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Comando } from "./comando";
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class RemoverEntidade extends Comando {
|
|
3
3
|
tipoEntidade: 'TABELA' | 'VISÃO';
|
|
4
4
|
nomeEntidade: string;
|
|
5
5
|
constructor(linha: number, nomeEntidade: string, tipoEntidade: string);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.RemoverEntidade = void 0;
|
|
4
4
|
const comando_1 = require("./comando");
|
|
5
|
-
class
|
|
5
|
+
class RemoverEntidade extends comando_1.Comando {
|
|
6
6
|
constructor(linha, nomeEntidade, tipoEntidade) {
|
|
7
7
|
super(linha);
|
|
8
8
|
this.nomeEntidade = nomeEntidade;
|
|
9
9
|
this.tipoEntidade = tipoEntidade;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
exports.
|
|
13
|
-
//# sourceMappingURL=
|
|
12
|
+
exports.RemoverEntidade = RemoverEntidade;
|
|
13
|
+
//# sourceMappingURL=remover-entidade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"remover-entidade.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/comandos/remover-entidade.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAEpC,MAAa,eAAgB,SAAQ,iBAAO;IAIxC,YACI,KAAa,EACb,YAAoB,EACpB,YAAoB;QAEpB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAkC,CAAC;IAC3D,CAAC;CACJ;AAbD,0CAaC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Condicao } from "../construtos";
|
|
1
|
+
import { Condicao, Juncao } from "../construtos";
|
|
2
2
|
import { Comando } from "./comando";
|
|
3
3
|
export declare class Selecionar extends Comando {
|
|
4
4
|
tabela: string;
|
|
5
5
|
colunas: string[];
|
|
6
6
|
tudo: boolean;
|
|
7
7
|
condicoes: Condicao[];
|
|
8
|
-
|
|
8
|
+
juncoes: Juncao[];
|
|
9
|
+
constructor(linha: number, tabela: string, colunas: string[], condicoes: Condicao[], tudo?: boolean, juncoes?: Juncao[]);
|
|
9
10
|
}
|
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Selecionar = void 0;
|
|
4
4
|
const comando_1 = require("./comando");
|
|
5
5
|
class Selecionar extends comando_1.Comando {
|
|
6
|
-
constructor(linha, tabela, colunas, condicoes, tudo = false) {
|
|
6
|
+
constructor(linha, tabela, colunas, condicoes, tudo = false, juncoes = []) {
|
|
7
7
|
super(linha);
|
|
8
8
|
this.tabela = tabela;
|
|
9
9
|
this.tudo = tudo;
|
|
10
10
|
this.colunas = colunas;
|
|
11
11
|
this.condicoes = condicoes;
|
|
12
|
+
this.juncoes = juncoes;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
exports.Selecionar = Selecionar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selecionar.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/comandos/selecionar.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAEpC,MAAa,UAAW,SAAQ,iBAAO;
|
|
1
|
+
{"version":3,"file":"selecionar.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/comandos/selecionar.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAEpC,MAAa,UAAW,SAAQ,iBAAO;IAOnC,YACI,KAAa,EACb,MAAc,EACd,OAAiB,EACjB,SAAqB,EACrB,IAAI,GAAG,KAAK,EACZ,UAAoB,EAAE;QAEtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAtBD,gCAsBC"}
|
|
@@ -2,12 +2,12 @@ import { Simbolo } from "../lexador/simbolo";
|
|
|
2
2
|
import { Construto } from "./construto";
|
|
3
3
|
export declare class Coluna extends Construto {
|
|
4
4
|
nomeColuna: string;
|
|
5
|
-
tipo
|
|
5
|
+
tipo?: 'CARACTERES' | 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO';
|
|
6
6
|
tamanho: Simbolo | undefined;
|
|
7
7
|
nulo: boolean;
|
|
8
8
|
chavePrimaria: boolean;
|
|
9
9
|
chaveEstrangeira: boolean;
|
|
10
10
|
autoIncremento: boolean;
|
|
11
|
-
constructor(nomeColuna: string, tipo
|
|
11
|
+
constructor(nomeColuna: string, tipo?: string, tamanho?: Simbolo, nulo?: boolean, chavePrimaria?: boolean, chaveEstrangeira?: boolean, autoIncremento?: boolean);
|
|
12
12
|
toString(): string;
|
|
13
13
|
}
|
|
@@ -6,11 +6,13 @@ class Coluna extends construto_1.Construto {
|
|
|
6
6
|
constructor(nomeColuna, tipo, tamanho, nulo, chavePrimaria, chaveEstrangeira, autoIncremento) {
|
|
7
7
|
super();
|
|
8
8
|
this.nomeColuna = nomeColuna;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if (tipo) {
|
|
10
|
+
const tipoColunaResolvido = tipo.toUpperCase();
|
|
11
|
+
if (!['CARACTERES', 'INTEIRO', 'LOGICO', 'NUMERO', 'TEXTO'].includes(tipoColunaResolvido)) {
|
|
12
|
+
throw new Error(`Tipo de dados de coluna inválido: ${tipoColunaResolvido}`);
|
|
13
|
+
}
|
|
14
|
+
this.tipo = tipoColunaResolvido;
|
|
12
15
|
}
|
|
13
|
-
this.tipo = tipoColunaResolvido;
|
|
14
16
|
this.tamanho = tamanho;
|
|
15
17
|
this.nulo = nulo === true ? true : false;
|
|
16
18
|
this.chavePrimaria = chavePrimaria || false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coluna.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/coluna.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,MAAO,SAAQ,qBAAS;IASjC,YACI,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"coluna.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/coluna.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,MAAO,SAAQ,qBAAS;IASjC,YACI,UAAkB,EAClB,IAAa,EACb,OAAiB,EACjB,IAAc,EACd,aAAuB,EACvB,gBAA0B,EAC1B,cAAwB;QAExB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACxF,MAAM,IAAI,KAAK,CAAC,qCAAqC,mBAAmB,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,mBAA+E,CAAC;QAChG,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,KAAK,CAAC;IAClD,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,gBAAgB,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEhD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,IAAI,kBAAkB,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO,IAAI,qBAAqB,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,IAAI,mBAAmB,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,GAAG,CAAC;QACf,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AA7DD,wBA6DC"}
|
|
@@ -18,6 +18,7 @@ __exportStar(require("./coluna"), exports);
|
|
|
18
18
|
__exportStar(require("./coluna-e-valor"), exports);
|
|
19
19
|
__exportStar(require("./condicao"), exports);
|
|
20
20
|
__exportStar(require("./construto"), exports);
|
|
21
|
+
__exportStar(require("./juncao"), exports);
|
|
21
22
|
__exportStar(require("./literal"), exports);
|
|
22
23
|
__exportStar(require("./operacao-alteracao-tabela"), exports);
|
|
23
24
|
__exportStar(require("./parametro-anonimo"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,mDAAiC;AACjC,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,8DAA4C;AAC5C,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,mDAAiC;AACjC,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,8DAA4C;AAC5C,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Condicao } from "./condicao";
|
|
2
|
+
import { Construto } from "./construto";
|
|
3
|
+
export type TipoJuncao = "INTERNA" | "ESQUERDA" | "DIREITA" | "COMPLETA" | "CRUZADA";
|
|
4
|
+
export declare class Juncao extends Construto {
|
|
5
|
+
tipo: TipoJuncao;
|
|
6
|
+
tabela: string;
|
|
7
|
+
alias?: string;
|
|
8
|
+
condicoes: Condicao[];
|
|
9
|
+
constructor(tipo: TipoJuncao, tabela: string, condicoes?: Condicao[], alias?: string);
|
|
10
|
+
toString(): string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Juncao = void 0;
|
|
4
|
+
const construto_1 = require("./construto");
|
|
5
|
+
class Juncao extends construto_1.Construto {
|
|
6
|
+
constructor(tipo, tabela, condicoes = [], alias) {
|
|
7
|
+
super();
|
|
8
|
+
this.tipo = tipo;
|
|
9
|
+
this.tabela = tabela;
|
|
10
|
+
this.condicoes = condicoes;
|
|
11
|
+
this.alias = alias;
|
|
12
|
+
}
|
|
13
|
+
toString() {
|
|
14
|
+
const condicoes = this.condicoes.map((c) => c.toString()).join(", ");
|
|
15
|
+
const alias = this.alias ? ` alias=${this.alias}` : "";
|
|
16
|
+
return `<Juncao tipo=${this.tipo} tabela=${this.tabela}${alias} condicoes=[${condicoes}]>`;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.Juncao = Juncao;
|
|
20
|
+
//# sourceMappingURL=juncao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"juncao.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/juncao.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAIxC,MAAa,MAAO,SAAQ,qBAAS;IAMjC,YAAY,IAAgB,EAAE,MAAc,EAAE,YAAwB,EAAE,EAAE,KAAc;QACpF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,gBAAgB,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,MAAM,GAAG,KAAK,eAAe,SAAS,IAAI,CAAC;IAC/F,CAAC;CACJ;AAnBD,wBAmBC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Construto } from "./construto";
|
|
2
2
|
export declare class Literal extends Construto {
|
|
3
3
|
valor: any;
|
|
4
|
-
tipoPresumido: 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO';
|
|
5
|
-
constructor(valor: any, tipoPresumido?: 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO');
|
|
4
|
+
tipoPresumido: 'CARACTERES' | 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO';
|
|
5
|
+
constructor(valor: any, tipoPresumido?: 'CARACTERES' | 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO');
|
|
6
6
|
toString(): string;
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Literal = void 0;
|
|
4
4
|
const construto_1 = require("./construto");
|
|
5
5
|
class Literal extends construto_1.Construto {
|
|
6
|
-
constructor(valor, tipoPresumido = '
|
|
6
|
+
constructor(valor, tipoPresumido = 'CARACTERES') {
|
|
7
7
|
super();
|
|
8
8
|
this.valor = valor;
|
|
9
9
|
this.tipoPresumido = tipoPresumido;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/literal.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,MAAa,OAAQ,SAAQ,qBAAS;IAIlC,YAAY,KAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/construtos/literal.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,MAAa,OAAQ,SAAQ,qBAAS;IAIlC,YAAY,KAAU,EAAE,gBAA0E,YAAY;QAC1G,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED,QAAQ;QACJ,OAAO,kBAAkB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,aAAa,GAAG,CAAC;IACxF,CAAC;CACJ;AAbD,0BAaC"}
|
|
@@ -2,7 +2,7 @@ import { Coluna } from "./coluna";
|
|
|
2
2
|
import { Construto } from "./construto";
|
|
3
3
|
import { Restricao } from "./restricao";
|
|
4
4
|
export declare class OperacaoAlteracaoTabela extends Construto {
|
|
5
|
-
tipo: 'ADICIONAR' | 'ALTERAR' | '
|
|
5
|
+
tipo: 'ADICIONAR' | 'ALTERAR' | 'REMOVER' | 'RENOMEAR';
|
|
6
6
|
elemento: Coluna | Restricao;
|
|
7
7
|
constructor(tipo: string, elemento: Coluna | Restricao);
|
|
8
8
|
toString(): string;
|
|
@@ -6,7 +6,7 @@ class OperacaoAlteracaoTabela extends construto_1.Construto {
|
|
|
6
6
|
constructor(tipo, elemento) {
|
|
7
7
|
super();
|
|
8
8
|
const tipoOperacaoResolvido = tipo.toUpperCase();
|
|
9
|
-
if (!['ADICIONAR', 'ALTERAR', '
|
|
9
|
+
if (!['ADICIONAR', 'ALTERAR', 'REMOVER', 'RENOMEAR'].includes(tipoOperacaoResolvido)) {
|
|
10
10
|
throw new Error(`Tipo de operação de alteração de tabela inválido: ${tipoOperacaoResolvido}`);
|
|
11
11
|
}
|
|
12
12
|
this.tipo = tipoOperacaoResolvido;
|