@designliquido/lincones-sqlite 0.1.2 → 0.2.1
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/execucao.js +9 -7
- package/execucao.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +1 -1
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +7 -4
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +63 -14
- 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 +7 -0
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js +12 -0
- package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js.map +1 -0
- package/fontes/comum/fontes/avaliador-sintatico/index.d.ts +1 -0
- package/fontes/comum/fontes/avaliador-sintatico/index.js +1 -0
- package/fontes/comum/fontes/avaliador-sintatico/index.js.map +1 -1
- package/fontes/comum/fontes/comandos/comando.d.ts +2 -0
- package/fontes/comum/fontes/comandos/comando.js +1 -0
- package/fontes/comum/fontes/comandos/comando.js.map +1 -1
- package/fontes/comum/fontes/comandos/criar.d.ts +2 -1
- package/fontes/comum/fontes/comandos/criar.js +2 -1
- package/fontes/comum/fontes/comandos/criar.js.map +1 -1
- package/fontes/comum/fontes/construtos/index.d.ts +2 -0
- package/fontes/comum/fontes/construtos/index.js +2 -0
- package/fontes/comum/fontes/construtos/index.js.map +1 -1
- package/fontes/comum/fontes/construtos/parametro-anonimo.d.ts +4 -0
- package/fontes/comum/fontes/construtos/parametro-anonimo.js +11 -0
- package/fontes/comum/fontes/construtos/parametro-anonimo.js.map +1 -0
- package/fontes/comum/fontes/construtos/parametro-nomeado.d.ts +6 -0
- package/fontes/comum/fontes/construtos/parametro-nomeado.js +15 -0
- package/fontes/comum/fontes/construtos/parametro-nomeado.js.map +1 -0
- package/fontes/comum/fontes/index.d.ts +0 -1
- package/fontes/comum/fontes/index.js +0 -1
- package/fontes/comum/fontes/index.js.map +1 -1
- package/fontes/comum/fontes/interfaces/parametro-interface.d.ts +5 -0
- package/fontes/comum/fontes/interfaces/parametro-interface.js +3 -0
- package/fontes/comum/fontes/interfaces/parametro-interface.js.map +1 -0
- package/fontes/comum/fontes/lexador/index.d.ts +1 -0
- package/fontes/comum/fontes/lexador/index.js +1 -0
- package/fontes/comum/fontes/lexador/index.js.map +1 -1
- package/fontes/comum/fontes/lexador/lexador-base.d.ts +26 -0
- package/fontes/comum/fontes/lexador/lexador-base.js +211 -0
- package/fontes/comum/fontes/lexador/lexador-base.js.map +1 -0
- package/fontes/comum/fontes/lexador/lexador-sql-ansi.d.ts +11 -0
- package/fontes/comum/fontes/lexador/lexador-sql-ansi.js +47 -0
- package/fontes/comum/fontes/lexador/lexador-sql-ansi.js.map +1 -0
- package/fontes/comum/fontes/lexador/lexador.d.ts +2 -23
- package/fontes/comum/fontes/lexador/lexador.js +5 -198
- package/fontes/comum/fontes/lexador/lexador.js.map +1 -1
- package/fontes/comum/fontes/lexador/palavras-reservadas/index.d.ts +2 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/index.js +19 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/index.js.map +1 -0
- package/fontes/comum/fontes/{palavras-reservadas.d.ts → lexador/palavras-reservadas/lincones.d.ts} +1 -0
- package/fontes/comum/fontes/{palavras-reservadas.js → lexador/palavras-reservadas/lincones.js} +3 -2
- package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js.map +1 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/sql.d.ts +37 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js +43 -0
- package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js.map +1 -0
- package/fontes/comum/fontes/{tipos-de-simbolos.d.ts → tipos-de-simbolos/index.d.ts} +3 -0
- package/fontes/comum/fontes/{tipos-de-simbolos.js → tipos-de-simbolos/index.js} +4 -1
- package/fontes/comum/fontes/tipos-de-simbolos/index.js.map +1 -0
- package/fontes/comum/fontes/tradutor/index.d.ts +1 -0
- package/fontes/comum/fontes/tradutor/index.js +1 -0
- package/fontes/comum/fontes/tradutor/index.js.map +1 -1
- package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.d.ts +7 -0
- package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js +12 -0
- package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js.map +1 -0
- package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +1 -1
- package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +11 -6
- package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -1
- package/fontes/comum/testes/avaliador-sintatico.test.js +85 -14
- package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -1
- package/fontes/comum/testes/construtos.test.d.ts +1 -0
- package/fontes/comum/testes/construtos.test.js +52 -0
- package/fontes/comum/testes/construtos.test.js.map +1 -0
- package/fontes/comum/testes/lexador-sql-ansi.test.d.ts +1 -0
- package/fontes/comum/testes/lexador-sql-ansi.test.js +83 -0
- package/fontes/comum/testes/lexador-sql-ansi.test.js.map +1 -0
- package/fontes/comum/testes/tradutor-sql-ansi.test.js +22 -21
- package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -1
- package/fontes/infraestrutura/cliente-sqlite.d.ts +1 -1
- package/fontes/infraestrutura/cliente-sqlite.js +10 -9
- package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
- package/fontes/lincones-sqlite.d.ts +7 -3
- package/fontes/lincones-sqlite.js +25 -10
- package/fontes/lincones-sqlite.js.map +1 -1
- package/fontes/tradutor/index.js.map +1 -1
- package/package.json +1 -1
- package/fontes/comum/fontes/palavras-reservadas.js.map +0 -1
- package/fontes/comum/fontes/tipos-de-simbolos.js.map +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
const tipos_de_simbolos_1 = __importDefault(require("../../tipos-de-simbolos"));
|
|
7
|
+
exports.default = {
|
|
8
|
+
add: tipos_de_simbolos_1.default.ADICIONAR,
|
|
9
|
+
alter: tipos_de_simbolos_1.default.ALTERAR,
|
|
10
|
+
and: tipos_de_simbolos_1.default.E,
|
|
11
|
+
auto: tipos_de_simbolos_1.default.AUTO,
|
|
12
|
+
between: tipos_de_simbolos_1.default.ENTRE,
|
|
13
|
+
column: tipos_de_simbolos_1.default.COLUNA,
|
|
14
|
+
constraint: tipos_de_simbolos_1.default.RESTRICAO,
|
|
15
|
+
create: tipos_de_simbolos_1.default.CRIAR,
|
|
16
|
+
delete: tipos_de_simbolos_1.default.EXCLUIR,
|
|
17
|
+
distinct: tipos_de_simbolos_1.default.DISTINTO,
|
|
18
|
+
false: tipos_de_simbolos_1.default.FALSO,
|
|
19
|
+
foreign: tipos_de_simbolos_1.default.ESTRANGEIRA,
|
|
20
|
+
from: tipos_de_simbolos_1.default.DE,
|
|
21
|
+
group: tipos_de_simbolos_1.default.AGRUPAR,
|
|
22
|
+
identity: tipos_de_simbolos_1.default.IDENTIDADE,
|
|
23
|
+
increment: tipos_de_simbolos_1.default.INCREMENTO,
|
|
24
|
+
insert: tipos_de_simbolos_1.default.INSERIR,
|
|
25
|
+
integer: tipos_de_simbolos_1.default.INTEIRO,
|
|
26
|
+
key: tipos_de_simbolos_1.default.CHAVE,
|
|
27
|
+
not: tipos_de_simbolos_1.default.NAO,
|
|
28
|
+
null: tipos_de_simbolos_1.default.NULO,
|
|
29
|
+
order: tipos_de_simbolos_1.default.ORDENAR,
|
|
30
|
+
primary: tipos_de_simbolos_1.default.PRIMARIA,
|
|
31
|
+
references: tipos_de_simbolos_1.default.REFERENCIA,
|
|
32
|
+
select: tipos_de_simbolos_1.default.SELECIONAR,
|
|
33
|
+
set: tipos_de_simbolos_1.default.DEFINIR,
|
|
34
|
+
string: tipos_de_simbolos_1.default.TEXTO,
|
|
35
|
+
table: tipos_de_simbolos_1.default.TABELA,
|
|
36
|
+
true: tipos_de_simbolos_1.default.VERDADEIRO,
|
|
37
|
+
unique: tipos_de_simbolos_1.default.UNICA,
|
|
38
|
+
update: tipos_de_simbolos_1.default.ATUALIZAR,
|
|
39
|
+
values: tipos_de_simbolos_1.default.VALORES,
|
|
40
|
+
view: tipos_de_simbolos_1.default.VISAO,
|
|
41
|
+
where: tipos_de_simbolos_1.default.ONDE
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=sql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../../../../fontes/comum/fontes/lexador/palavras-reservadas/sql.ts"],"names":[],"mappings":";;;;;AAAA,gFAAsD;AAEtD,kBAAe;IACX,GAAG,EAAE,2BAAe,CAAC,SAAS;IAC9B,KAAK,EAAE,2BAAe,CAAC,OAAO;IAC9B,GAAG,EAAE,2BAAe,CAAC,CAAC;IACtB,IAAI,EAAE,2BAAe,CAAC,IAAI;IAC1B,OAAO,EAAE,2BAAe,CAAC,KAAK;IAC9B,MAAM,EAAE,2BAAe,CAAC,MAAM;IAC9B,UAAU,EAAE,2BAAe,CAAC,SAAS;IACrC,MAAM,EAAE,2BAAe,CAAC,KAAK;IAC7B,MAAM,EAAE,2BAAe,CAAC,OAAO;IAC/B,QAAQ,EAAE,2BAAe,CAAC,QAAQ;IAClC,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,OAAO,EAAE,2BAAe,CAAC,WAAW;IACpC,IAAI,EAAE,2BAAe,CAAC,EAAE;IACxB,KAAK,EAAE,2BAAe,CAAC,OAAO;IAC9B,QAAQ,EAAE,2BAAe,CAAC,UAAU;IACpC,SAAS,EAAE,2BAAe,CAAC,UAAU;IACrC,MAAM,EAAE,2BAAe,CAAC,OAAO;IAC/B,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,GAAG,EAAE,2BAAe,CAAC,KAAK;IAC1B,GAAG,EAAE,2BAAe,CAAC,GAAG;IACxB,IAAI,EAAE,2BAAe,CAAC,IAAI;IAC1B,KAAK,EAAE,2BAAe,CAAC,OAAO;IAC9B,OAAO,EAAE,2BAAe,CAAC,QAAQ;IACjC,UAAU,EAAE,2BAAe,CAAC,UAAU;IACtC,MAAM,EAAE,2BAAe,CAAC,UAAU;IAClC,GAAG,EAAE,2BAAe,CAAC,OAAO;IAC5B,MAAM,EAAE,2BAAe,CAAC,KAAK;IAC7B,KAAK,EAAE,2BAAe,CAAC,MAAM;IAC7B,IAAI,EAAE,2BAAe,CAAC,UAAU;IAChC,MAAM,EAAE,2BAAe,CAAC,KAAK;IAC7B,MAAM,EAAE,2BAAe,CAAC,SAAS;IACjC,MAAM,EAAE,2BAAe,CAAC,OAAO;IAC/B,IAAI,EAAE,2BAAe,CAAC,KAAK;IAC3B,KAAK,EAAE,2BAAe,CAAC,IAAI;CAC9B,CAAA"}
|
|
@@ -10,11 +10,13 @@ declare const _default: {
|
|
|
10
10
|
DE: string;
|
|
11
11
|
DEFINIR: string;
|
|
12
12
|
DISTINTO: string;
|
|
13
|
+
DOIS_PONTOS: string;
|
|
13
14
|
E: string;
|
|
14
15
|
ENTRE: string;
|
|
15
16
|
EM: string;
|
|
16
17
|
ESTRANGEIRA: string;
|
|
17
18
|
EXCLUIR: string;
|
|
19
|
+
EXISTIR: string;
|
|
18
20
|
FALSO: string;
|
|
19
21
|
IDENTIDADE: string;
|
|
20
22
|
IDENTIFICADOR: string;
|
|
@@ -22,6 +24,7 @@ declare const _default: {
|
|
|
22
24
|
INCREMENTO: string;
|
|
23
25
|
INSERIR: string;
|
|
24
26
|
INTEIRO: string;
|
|
27
|
+
INTERROGACAO: string;
|
|
25
28
|
LOGICO: string;
|
|
26
29
|
MAIOR: string;
|
|
27
30
|
MAIOR_IGUAL: string;
|
|
@@ -12,11 +12,13 @@ exports.default = {
|
|
|
12
12
|
DE: 'DE',
|
|
13
13
|
DEFINIR: 'DEFINIR',
|
|
14
14
|
DISTINTO: 'DISTINTO',
|
|
15
|
+
DOIS_PONTOS: 'DOIS_PONTOS',
|
|
15
16
|
E: 'E',
|
|
16
17
|
ENTRE: 'ENTRE',
|
|
17
18
|
EM: 'EM',
|
|
18
19
|
ESTRANGEIRA: 'ESTRANGEIRA',
|
|
19
20
|
EXCLUIR: 'EXCLUIR',
|
|
21
|
+
EXISTIR: 'EXISTIR',
|
|
20
22
|
FALSO: 'FALSO',
|
|
21
23
|
IDENTIDADE: 'IDENTIDADE',
|
|
22
24
|
IDENTIFICADOR: 'IDENTIFICADOR',
|
|
@@ -24,6 +26,7 @@ exports.default = {
|
|
|
24
26
|
INCREMENTO: 'INCREMENTO',
|
|
25
27
|
INSERIR: 'INSERIR',
|
|
26
28
|
INTEIRO: 'INTEIRO',
|
|
29
|
+
INTERROGACAO: 'INTERROGACAO',
|
|
27
30
|
LOGICO: 'LOGICO',
|
|
28
31
|
MAIOR: 'MAIOR',
|
|
29
32
|
MAIOR_IGUAL: 'MAIOR_IGUAL',
|
|
@@ -56,4 +59,4 @@ exports.default = {
|
|
|
56
59
|
VIRGULA: 'VIRGULA',
|
|
57
60
|
VISAO: 'VISAO'
|
|
58
61
|
};
|
|
59
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tipos-de-simbolos/index.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,CAAC,EAAE,GAAG;IACN,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;IAC9B,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACjB,CAAC"}
|
|
@@ -14,5 +14,6 @@ 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("./tradutor-reverso-sql-ansi"), exports);
|
|
17
18
|
__exportStar(require("./tradutor-sql-ansi"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,sDAAoC"}
|
|
@@ -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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Alterar, Atualizar, Comando, Criar, Excluir, Inserir, Selecionar } from '../comandos';
|
|
2
2
|
import { Coluna, Construto } from '../construtos';
|
|
3
3
|
/**
|
|
4
|
-
* Este tradutor traduz
|
|
4
|
+
* Este tradutor traduz comandos de alto nível em SQL ANSI, e a ideia é poder
|
|
5
5
|
* utilizar para outros tradutores futuros, com pequenas nuances em
|
|
6
6
|
* alguns comandos quando for o caso.
|
|
7
7
|
*/
|
|
@@ -8,7 +8,7 @@ const construtos_1 = require("../construtos");
|
|
|
8
8
|
const restricao_1 = require("../construtos/restricao");
|
|
9
9
|
const tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
|
|
10
10
|
/**
|
|
11
|
-
* Este tradutor traduz
|
|
11
|
+
* Este tradutor traduz comandos de alto nível em SQL ANSI, e a ideia é poder
|
|
12
12
|
* utilizar para outros tradutores futuros, com pequenas nuances em
|
|
13
13
|
* alguns comandos quando for o caso.
|
|
14
14
|
*/
|
|
@@ -58,9 +58,6 @@ class TradutorSqlAnsi {
|
|
|
58
58
|
}
|
|
59
59
|
traduzirConstruto(construto) {
|
|
60
60
|
switch (construto.constructor.name) {
|
|
61
|
-
case 'ReferenciaColuna':
|
|
62
|
-
const construtoReferenciaColuna = construto;
|
|
63
|
-
return construtoReferenciaColuna.nomeColuna;
|
|
64
61
|
case 'Literal':
|
|
65
62
|
const construtoLiteral = construto;
|
|
66
63
|
switch (construtoLiteral.tipoPresumido) {
|
|
@@ -72,6 +69,14 @@ class TradutorSqlAnsi {
|
|
|
72
69
|
default:
|
|
73
70
|
return `${String(construtoLiteral.valor)}`;
|
|
74
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;
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
traduzirColunaComTipo(coluna) {
|
|
@@ -93,7 +98,7 @@ class TradutorSqlAnsi {
|
|
|
93
98
|
for (const valorAtualizacao of comandoAtualizar.colunasEValores) {
|
|
94
99
|
resultado += ` ${this.traduzirConstruto(valorAtualizacao.coluna)} = ${this.traduzirConstruto(valorAtualizacao.valor)}, \n`;
|
|
95
100
|
}
|
|
96
|
-
resultado = resultado.slice(0, -
|
|
101
|
+
resultado = resultado.slice(0, -3);
|
|
97
102
|
resultado += `\nWHERE`;
|
|
98
103
|
if (comandoAtualizar.condicoes.length > 0) {
|
|
99
104
|
for (const condicao of comandoAtualizar.condicoes) {
|
|
@@ -218,7 +223,7 @@ class TradutorSqlAnsi {
|
|
|
218
223
|
resultado += `ADD ${this.logicaManipulacaoColunas(operacao.elemento)}`;
|
|
219
224
|
break;
|
|
220
225
|
case 'ALTERAR':
|
|
221
|
-
resultado +=
|
|
226
|
+
resultado += `ALTER ${this.logicaManipulacaoColunas(operacao.elemento)}`;
|
|
222
227
|
break;
|
|
223
228
|
case 'EXCLUIR':
|
|
224
229
|
resultado += 'BIT';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tradutor-sql-ansi.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/tradutor-sql-ansi.ts"],"names":[],"mappings":";;;;;;AASA,
|
|
1
|
+
{"version":3,"file":"tradutor-sql-ansi.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/tradutor/tradutor-sql-ansi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const avaliador_sintatico_1 = require("../fontes/avaliador-sintatico");
|
|
4
|
+
const construtos_1 = require("../fontes/construtos");
|
|
4
5
|
const lexador_1 = require("../fontes/lexador");
|
|
5
6
|
describe('Avaliador Sintático', () => {
|
|
6
7
|
let lexador;
|
|
@@ -24,7 +25,7 @@ describe('Avaliador Sintático', () => {
|
|
|
24
25
|
});
|
|
25
26
|
it('Excluir em Tabela', () => {
|
|
26
27
|
const codigo = [
|
|
27
|
-
'EXCLUIR clientes ONDE ID = 3;'
|
|
28
|
+
'EXCLUIR EM clientes ONDE ID = 3;'
|
|
28
29
|
];
|
|
29
30
|
const resultadoLexador = lexador.mapear(codigo);
|
|
30
31
|
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador);
|
|
@@ -32,9 +33,75 @@ describe('Avaliador Sintático', () => {
|
|
|
32
33
|
expect(resultadoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
33
34
|
expect(resultadoAvaliadorSintatico.erros).toHaveLength(0);
|
|
34
35
|
});
|
|
35
|
-
|
|
36
|
+
describe('Inserir em Tabela', () => {
|
|
37
|
+
it('Trivial', () => {
|
|
38
|
+
const codigo = [
|
|
39
|
+
'INSERIR EM clientes (NOME) VALORES ("Pernalonga")'
|
|
40
|
+
];
|
|
41
|
+
const resultadoLexador = lexador.mapear(codigo);
|
|
42
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador);
|
|
43
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
44
|
+
expect(resultadoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
45
|
+
expect(resultadoAvaliadorSintatico.erros).toHaveLength(0);
|
|
46
|
+
});
|
|
47
|
+
it('Com parâmetros anônimos', () => {
|
|
48
|
+
const codigo = [
|
|
49
|
+
'INSERIR EM clientes (NOME) VALORES (?)'
|
|
50
|
+
];
|
|
51
|
+
const resultadoLexador = lexador.mapear(codigo);
|
|
52
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador);
|
|
53
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
54
|
+
expect(resultadoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
55
|
+
expect(resultadoAvaliadorSintatico.erros).toHaveLength(0);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('Selecionar em Tabela', () => {
|
|
59
|
+
it('Trivial', () => {
|
|
60
|
+
const codigo = [
|
|
61
|
+
'SELECIONAR NOME, EMAIL DE clientes ONDE IDADE = 18;'
|
|
62
|
+
];
|
|
63
|
+
const retornoLexador = lexador.mapear(codigo);
|
|
64
|
+
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
|
|
65
|
+
expect(retornoAvaliadorSintatico).toBeTruthy();
|
|
66
|
+
expect(retornoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
67
|
+
expect(retornoAvaliadorSintatico.erros).toHaveLength(0);
|
|
68
|
+
});
|
|
69
|
+
it('Com parâmetros nomeados', () => {
|
|
70
|
+
const codigo = [
|
|
71
|
+
'SELECIONAR NOME, EMAIL DE clientes ONDE IDADE = :idade;'
|
|
72
|
+
];
|
|
73
|
+
const retornoLexador = lexador.mapear(codigo);
|
|
74
|
+
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
|
|
75
|
+
expect(retornoAvaliadorSintatico).toBeTruthy();
|
|
76
|
+
expect(retornoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
77
|
+
expect(retornoAvaliadorSintatico.erros).toHaveLength(0);
|
|
78
|
+
const comando = retornoAvaliadorSintatico.comandos[0];
|
|
79
|
+
expect(comando.condicoes).toHaveLength(1);
|
|
80
|
+
const condicao = comando.condicoes[0];
|
|
81
|
+
expect(condicao.esquerda).toBeInstanceOf(construtos_1.ReferenciaColuna);
|
|
82
|
+
expect(condicao.direita).toBeInstanceOf(construtos_1.ParametroNomeado);
|
|
83
|
+
});
|
|
84
|
+
it('Com parâmetros anônimos', () => {
|
|
85
|
+
const codigo = [
|
|
86
|
+
'SELECIONAR NOME, EMAIL DE clientes ONDE IDADE = ?;'
|
|
87
|
+
];
|
|
88
|
+
const retornoLexador = lexador.mapear(codigo);
|
|
89
|
+
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
|
|
90
|
+
expect(retornoAvaliadorSintatico).toBeTruthy();
|
|
91
|
+
expect(retornoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
92
|
+
expect(retornoAvaliadorSintatico.erros).toHaveLength(0);
|
|
93
|
+
const comando = retornoAvaliadorSintatico.comandos[0];
|
|
94
|
+
expect(comando.condicoes).toHaveLength(1);
|
|
95
|
+
const condicao = comando.condicoes[0];
|
|
96
|
+
expect(condicao.esquerda).toBeInstanceOf(construtos_1.ReferenciaColuna);
|
|
97
|
+
expect(condicao.direita).toBeInstanceOf(construtos_1.ParametroAnonimo);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('Manipulação de esquemas de tabelas', () => {
|
|
102
|
+
it('Criar Tabela', () => {
|
|
36
103
|
const codigo = [
|
|
37
|
-
'
|
|
104
|
+
'CRIAR TABELA clientes(ID INTEIRO NAO NULO CHAVE PRIMARIA AUTO INCREMENTO, NOME TEXTO(100) NAO NULO, IDADE INTEIRO NAO NULO, EMAIL TEXTO(255) NAO NULO, ATIVO LOGICO NAO NULO);'
|
|
38
105
|
];
|
|
39
106
|
const resultadoLexador = lexador.mapear(codigo);
|
|
40
107
|
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador);
|
|
@@ -42,21 +109,25 @@ describe('Avaliador Sintático', () => {
|
|
|
42
109
|
expect(resultadoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
43
110
|
expect(resultadoAvaliadorSintatico.erros).toHaveLength(0);
|
|
44
111
|
});
|
|
45
|
-
it('
|
|
112
|
+
it('Criar Tabela se não existir', () => {
|
|
46
113
|
const codigo = [
|
|
47
|
-
'
|
|
114
|
+
'CRIAR TABELA SE NÃO EXISTIR clientes ( ',
|
|
115
|
+
' ID INTEIRO NAO NULO CHAVE PRIMARIA, ',
|
|
116
|
+
' NOME TEXTO(100) NAO NULO, ',
|
|
117
|
+
' IDADE INTEIRO NAO NULO, ',
|
|
118
|
+
' EMAIL TEXTO(255) NAO NULO, ',
|
|
119
|
+
' ATIVO LOGICO NAO NULO ',
|
|
120
|
+
');'
|
|
48
121
|
];
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
expect(
|
|
52
|
-
expect(
|
|
53
|
-
expect(
|
|
122
|
+
const resultadoLexador = lexador.mapear(codigo);
|
|
123
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador);
|
|
124
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
125
|
+
expect(resultadoAvaliadorSintatico.comandos).toHaveLength(1);
|
|
126
|
+
expect(resultadoAvaliadorSintatico.erros).toHaveLength(0);
|
|
54
127
|
});
|
|
55
|
-
|
|
56
|
-
describe('Manipulação de esquemas de tabelas', () => {
|
|
57
|
-
it('Criar Tabela', () => {
|
|
128
|
+
it('Criar Tabela se não existir', () => {
|
|
58
129
|
const codigo = [
|
|
59
|
-
'
|
|
130
|
+
'EXCLUIR TABELA clientes;'
|
|
60
131
|
];
|
|
61
132
|
const resultadoLexador = lexador.mapear(codigo);
|
|
62
133
|
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/avaliador-sintatico.test.ts"],"names":[],"mappings":";;AAAA,uEAAmE;
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/avaliador-sintatico.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const construtos_1 = require("../fontes/construtos");
|
|
4
|
+
const coluna_1 = require("../fontes/construtos/coluna");
|
|
5
|
+
describe('Construtos', () => {
|
|
6
|
+
describe('Coluna', () => {
|
|
7
|
+
it('toString, trivial', () => {
|
|
8
|
+
const coluna = new coluna_1.Coluna('nome', 'texto', undefined, true);
|
|
9
|
+
expect(coluna.toString()).toBe("<Coluna nome=nome tipo=TEXTO nulo=Sim>");
|
|
10
|
+
});
|
|
11
|
+
it('toString, chave primária', () => {
|
|
12
|
+
const coluna = new coluna_1.Coluna('nome', 'texto', undefined, false, true);
|
|
13
|
+
expect(coluna.toString()).toBe("<Coluna nome=nome tipo=TEXTO nulo=Não chave primária;>");
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
describe('ColunaEValor', () => {
|
|
17
|
+
it('toString, trivial', () => {
|
|
18
|
+
const colunaEValor = new construtos_1.ColunaEValor(new coluna_1.Coluna('nome', 'texto', undefined, false, true), new construtos_1.Literal('valor'));
|
|
19
|
+
expect(colunaEValor.toString()).toBe("<ColunaEValor coluna=nome valor=<Literal valor=valor tipo presumido=TEXTO>>");
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('Condicao', () => {
|
|
23
|
+
it('toString, trivial', () => {
|
|
24
|
+
const condicao = new construtos_1.Condicao(new coluna_1.Coluna('nome', 'texto', undefined, false, true), 'IGUAL', new construtos_1.Literal('teste'));
|
|
25
|
+
expect(condicao.toString()).toBe("<Condição operando esquerdo=<Coluna nome=nome tipo=TEXTO nulo=Não chave primária;> operador=IGUAL operando direito=<Literal valor=teste tipo presumido=TEXTO>>");
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('OperacaoAlteracaoTabela', () => {
|
|
29
|
+
it('construtor, tipo inválido', () => {
|
|
30
|
+
expect(() => {
|
|
31
|
+
new construtos_1.OperacaoAlteracaoTabela('INVALIDO', new coluna_1.Coluna('coluna', 'texto'));
|
|
32
|
+
}).toThrow('Tipo de operação de alteração de tabela inválido: INVALIDO');
|
|
33
|
+
});
|
|
34
|
+
it('toString, trivial', () => {
|
|
35
|
+
const operacaoAlteracaoTabela = new construtos_1.OperacaoAlteracaoTabela('ADICIONAR', new coluna_1.Coluna('nova_coluna', 'texto'));
|
|
36
|
+
expect(operacaoAlteracaoTabela.toString()).toBe("<OperaçãoAlteraçãoTabela tipo=ADICIONAR elemento=<Coluna nome=nova_coluna tipo=TEXTO nulo=Não>>");
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('Restricao', () => {
|
|
40
|
+
it('toString, trivial', () => {
|
|
41
|
+
const restricao = new construtos_1.Restricao('teste_restricao', 'ÚNICA', 'teste_tabela', [
|
|
42
|
+
'coluna1',
|
|
43
|
+
'coluna2'
|
|
44
|
+
], 'outra_tabela', [
|
|
45
|
+
'coluna3',
|
|
46
|
+
'coluna4'
|
|
47
|
+
]);
|
|
48
|
+
expect(restricao.toString()).toBe("<Restrição nome=teste_restricao tabela=teste_tabela colunas=[coluna1, coluna2] tabela referenciada=outra_tabela colunas referenciadas=[coluna3, coluna4]>");
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=construtos.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"construtos.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/construtos.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lexador_1 = require("../fontes/lexador");
|
|
4
|
+
describe('Lexador SQL ANSI', () => {
|
|
5
|
+
let lexador;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
lexador = new lexador_1.LexadorSqlAnsi();
|
|
8
|
+
});
|
|
9
|
+
describe('mapear()', () => {
|
|
10
|
+
describe('Cenário de sucesso', () => {
|
|
11
|
+
it('Sucesso com código vazio', () => {
|
|
12
|
+
const codigo = [''];
|
|
13
|
+
const resultado = lexador.mapear(codigo);
|
|
14
|
+
expect(resultado).toBeTruthy();
|
|
15
|
+
expect(resultado.simbolos).toHaveLength(0);
|
|
16
|
+
});
|
|
17
|
+
it('Sucesso com código com apenas espaços', () => {
|
|
18
|
+
const codigo = [' '];
|
|
19
|
+
const resultado = lexador.mapear(codigo);
|
|
20
|
+
expect(resultado).toBeTruthy();
|
|
21
|
+
expect(resultado.simbolos).toHaveLength(0);
|
|
22
|
+
});
|
|
23
|
+
it('Sucesso com código repetindo instruções', () => {
|
|
24
|
+
const codigo = [
|
|
25
|
+
'((((((((((((((((((((((((((',
|
|
26
|
+
')))))))))))))))))))))))))',
|
|
27
|
+
'CREATE CREATE CREATE CREATE CREATE CREATE'
|
|
28
|
+
];
|
|
29
|
+
const resultado = lexador.mapear(codigo);
|
|
30
|
+
expect(resultado).toBeTruthy();
|
|
31
|
+
expect(resultado.simbolos).toHaveLength(57);
|
|
32
|
+
});
|
|
33
|
+
it('CREATE TABLE', () => {
|
|
34
|
+
const codigo = ['CREATE TABLE usuarios'];
|
|
35
|
+
const resultado = lexador.mapear(codigo);
|
|
36
|
+
expect(resultado).toBeTruthy();
|
|
37
|
+
expect(resultado.simbolos).toHaveLength(3);
|
|
38
|
+
});
|
|
39
|
+
it('UPDATE', () => {
|
|
40
|
+
const codigo = ['UPDATE usuarios'];
|
|
41
|
+
const resultado = lexador.mapear(codigo);
|
|
42
|
+
expect(resultado).toBeTruthy();
|
|
43
|
+
expect(resultado.simbolos).toHaveLength(2);
|
|
44
|
+
});
|
|
45
|
+
describe('Casos concretos', () => {
|
|
46
|
+
it('CREATE TABLE Clientes', () => {
|
|
47
|
+
const codigo = [
|
|
48
|
+
'CREATE TABLE clientes(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, nome VARCHAR(100) NOT NULL, idade INTEIRO NAO NULO, email VARCHAR(255) NOT NULL, ativo BOOLEAN NOT NULL)'
|
|
49
|
+
];
|
|
50
|
+
const resultado = lexador.mapear(codigo);
|
|
51
|
+
expect(resultado).toBeTruthy();
|
|
52
|
+
expect(resultado.simbolos).toHaveLength(38);
|
|
53
|
+
});
|
|
54
|
+
it('CRUD', () => {
|
|
55
|
+
const codigo = [
|
|
56
|
+
'INSERT INTO clientes VALUES(1, "João", 20, "joao@gmail.com", TRUE)',
|
|
57
|
+
'INSERT INTO clientes VALUES(2, "Carlos", 23, "carlos@gmail.com", TRUE)',
|
|
58
|
+
'INSERT INTO clientes VALUES(3, "Thiago", 40, "thiago@gmail.com", TRUE)',
|
|
59
|
+
'INSERT INTO clientes VALUES(4, "Jose", 44, "jose@gmail.com", TRUE)'
|
|
60
|
+
];
|
|
61
|
+
const resultado = lexador.mapear(codigo);
|
|
62
|
+
expect(resultado).toBeTruthy();
|
|
63
|
+
expect(resultado.simbolos).toHaveLength(60);
|
|
64
|
+
});
|
|
65
|
+
it('Selecionar', () => {
|
|
66
|
+
const codigo = ['SELECT * FROM clientes'];
|
|
67
|
+
const resultado = lexador.mapear(codigo);
|
|
68
|
+
expect(resultado).toBeTruthy();
|
|
69
|
+
expect(resultado.simbolos).toHaveLength(4);
|
|
70
|
+
});
|
|
71
|
+
it('Criar Tabela Clientes', () => {
|
|
72
|
+
const codigo = [
|
|
73
|
+
'CREATE TABLE clientes(id INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(100) NOT NULL, idade INTEGER NOT NULL, email VARCHAR(255) NOT NULL, ativo BOOLEAN NOT NULL);'
|
|
74
|
+
];
|
|
75
|
+
const resultado = lexador.mapear(codigo);
|
|
76
|
+
expect(resultado).toBeTruthy();
|
|
77
|
+
expect(resultado.simbolos).toHaveLength(38);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=lexador-sql-ansi.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexador-sql-ansi.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/lexador-sql-ansi.test.ts"],"names":[],"mappings":"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"}
|