@designliquido/lincones-sqlite 0.2.0 → 0.2.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.
- package/execucao.js +9 -7
- package/execucao.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/interfaces/index.d.ts +1 -1
- package/fontes/comum/fontes/interfaces/index.js +1 -1
- package/fontes/comum/fontes/interfaces/index.js.map +1 -1
- package/fontes/comum/fontes/interfaces/parametro-interface.d.ts +5 -0
- package/fontes/comum/fontes/interfaces/{lincones-interface.js → parametro-interface.js} +1 -1
- package/fontes/comum/fontes/interfaces/parametro-interface.js.map +1 -0
- package/fontes/comum/fontes/interfaces/retorno-comando-interface.d.ts +7 -0
- package/fontes/comum/fontes/interfaces/retorno-comando-interface.js +3 -0
- package/fontes/comum/fontes/interfaces/retorno-comando-interface.js.map +1 -0
- package/fontes/comum/fontes/interfaces/tecnologia-lincones-interface.d.ts +6 -0
- package/fontes/comum/fontes/interfaces/tecnologia-lincones-interface.js +3 -0
- package/fontes/comum/fontes/interfaces/tecnologia-lincones-interface.js.map +1 -0
- package/fontes/comum/testes/lexador.test.js +50 -10
- package/fontes/comum/testes/lexador.test.js.map +1 -1
- package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
- package/fontes/lincones-sqlite.d.ts +7 -3
- package/fontes/lincones-sqlite.js +27 -10
- package/fontes/lincones-sqlite.js.map +1 -1
- package/package.json +1 -1
- package/fontes/comum/fontes/interfaces/lincones-interface.d.ts +0 -3
- package/fontes/comum/fontes/interfaces/lincones-interface.js.map +0 -1
package/execucao.js
CHANGED
|
@@ -44,13 +44,15 @@ lincones.clienteSQLite.abrir().then(() => {
|
|
|
44
44
|
});
|
|
45
45
|
interfaceLeitura.prompt();
|
|
46
46
|
interfaceLeitura.on('line', (linha) => {
|
|
47
|
-
lincones.executar(null, linha).then(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
lincones.executar(null, linha).then(resultados => {
|
|
48
|
+
for (const resultado of resultados) {
|
|
49
|
+
if (resultado.linhasRetornadas.length > 0) {
|
|
50
|
+
console.table(resultado.linhasRetornadas);
|
|
51
|
+
}
|
|
52
|
+
console.log(resultado.mensagemExecucao);
|
|
53
|
+
if (resultado.ultimoId) {
|
|
54
|
+
console.log(`ID retornado pela operação: ${resultado.ultimoId}`);
|
|
55
|
+
}
|
|
54
56
|
}
|
|
55
57
|
return Promise.resolve();
|
|
56
58
|
}).then(() => {
|
package/execucao.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execucao.js","sourceRoot":"","sources":["../execucao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAE1C,8DAA0D;AAE1D,MAAM,QAAQ,GAAG,IAAI,gCAAc,EAAE,CAAC;AACtC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACrC,MAAM,gBAAgB,GAAG,aAAa,CAAC,eAAe,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,cAAc;KACzB,CAAC,CAAC;IAEH,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"execucao.js","sourceRoot":"","sources":["../execucao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAE1C,8DAA0D;AAE1D,MAAM,QAAQ,GAAG,IAAI,gCAAc,EAAE,CAAC;AACtC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACrC,MAAM,gBAAgB,GAAG,aAAa,CAAC,eAAe,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,cAAc;KACzB,CAAC,CAAC;IAEH,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,SAAS,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAExC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACT,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comando.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/comandos/comando.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"comando.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/comandos/comando.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAKhB,YAAY,KAAa;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAc;QACxB,OAAO,OAAO,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,sCAAsC,CAAC,CACpD,CAAC;IACN,CAAC;CACJ;AAhBD,0BAgBC"}
|
|
@@ -15,6 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./avaliador-sintatico-interface"), exports);
|
|
18
|
-
__exportStar(require("./lincones-interface"), exports);
|
|
19
18
|
__exportStar(require("./simbolo-interface"), exports);
|
|
19
|
+
__exportStar(require("./tecnologia-lincones-interface"), exports);
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,sDAAoC;AACpC,kEAAgD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parametro-interface.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/interfaces/parametro-interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retorno-comando-interface.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/interfaces/retorno-comando-interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Comando } from "../comandos";
|
|
2
|
+
import { RetornoComandoInterface } from "./retorno-comando-interface";
|
|
3
|
+
export interface TecnologiaLinconesInterface {
|
|
4
|
+
iniciar(caminho: string): void;
|
|
5
|
+
executarComando(comando: Comando): Promise<RetornoComandoInterface[]>;
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tecnologia-lincones-interface.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/interfaces/tecnologia-lincones-interface.ts"],"names":[],"mappings":""}
|
|
@@ -8,19 +8,19 @@ describe('Lexador', () => {
|
|
|
8
8
|
});
|
|
9
9
|
describe('mapear()', () => {
|
|
10
10
|
describe('Cenário de sucesso', () => {
|
|
11
|
-
it('
|
|
11
|
+
it('Código vazio', () => {
|
|
12
12
|
const codigo = [''];
|
|
13
13
|
const resultado = lexador.mapear(codigo);
|
|
14
14
|
expect(resultado).toBeTruthy();
|
|
15
15
|
expect(resultado.simbolos).toHaveLength(0);
|
|
16
16
|
});
|
|
17
|
-
it('
|
|
17
|
+
it('Código com apenas espaços', () => {
|
|
18
18
|
const codigo = [' '];
|
|
19
19
|
const resultado = lexador.mapear(codigo);
|
|
20
20
|
expect(resultado).toBeTruthy();
|
|
21
21
|
expect(resultado.simbolos).toHaveLength(0);
|
|
22
22
|
});
|
|
23
|
-
it('
|
|
23
|
+
it('Código repetindo instruções', () => {
|
|
24
24
|
const codigo = [
|
|
25
25
|
'((((((((((((((((((((((((((',
|
|
26
26
|
')))))))))))))))))))))))))',
|
|
@@ -30,20 +30,48 @@ describe('Lexador', () => {
|
|
|
30
30
|
expect(resultado).toBeTruthy();
|
|
31
31
|
expect(resultado.simbolos).toHaveLength(57);
|
|
32
32
|
});
|
|
33
|
-
it('
|
|
33
|
+
it('Números', () => {
|
|
34
|
+
const codigo = [
|
|
35
|
+
'12 ',
|
|
36
|
+
' 3.75'
|
|
37
|
+
];
|
|
38
|
+
const resultado = lexador.mapear(codigo);
|
|
39
|
+
expect(resultado).toBeTruthy();
|
|
40
|
+
expect(resultado.simbolos).toHaveLength(2);
|
|
41
|
+
});
|
|
42
|
+
it('Comparadores', () => {
|
|
43
|
+
const codigo = [
|
|
44
|
+
'12 > 18 ',
|
|
45
|
+
' 3.75 < 1',
|
|
46
|
+
' 123 >= 456',
|
|
47
|
+
'0 <= -1'
|
|
48
|
+
];
|
|
49
|
+
const resultado = lexador.mapear(codigo);
|
|
50
|
+
expect(resultado).toBeTruthy();
|
|
51
|
+
expect(resultado.simbolos).toHaveLength(12);
|
|
52
|
+
});
|
|
53
|
+
it('Literais', () => {
|
|
54
|
+
const codigo = [
|
|
55
|
+
"'123'"
|
|
56
|
+
];
|
|
57
|
+
const resultado = lexador.mapear(codigo);
|
|
58
|
+
expect(resultado).toBeTruthy();
|
|
59
|
+
expect(resultado.simbolos).toHaveLength(1);
|
|
60
|
+
});
|
|
61
|
+
it('CRIAR TABELA', () => {
|
|
34
62
|
const codigo = ['CRIAR TABELA usuarios'];
|
|
35
63
|
const resultado = lexador.mapear(codigo);
|
|
36
64
|
expect(resultado).toBeTruthy();
|
|
37
65
|
expect(resultado.simbolos).toHaveLength(3);
|
|
38
66
|
});
|
|
39
|
-
it('
|
|
67
|
+
it('ATUALIZAR', () => {
|
|
40
68
|
const codigo = ['ATUALIZAR usuarios'];
|
|
41
69
|
const resultado = lexador.mapear(codigo);
|
|
42
70
|
expect(resultado).toBeTruthy();
|
|
43
71
|
expect(resultado.simbolos).toHaveLength(2);
|
|
44
72
|
});
|
|
45
|
-
describe('
|
|
46
|
-
it('
|
|
73
|
+
describe('Comandos completos', () => {
|
|
74
|
+
it('Criar Tabela Clientes', () => {
|
|
47
75
|
const codigo = [
|
|
48
76
|
'CRIAR TABELA clientes(id INTEIRO NAO NULO CHAVE PRIMARIA AUTOINCREMENTO, nome TEXTO(100) NAO NULO, idade INTEIRO NAO NULO, email TEXTO(255) NAO NULO, ativo LOGICO NAO NULO)'
|
|
49
77
|
];
|
|
@@ -51,7 +79,7 @@ describe('Lexador', () => {
|
|
|
51
79
|
expect(resultado).toBeTruthy();
|
|
52
80
|
expect(resultado.simbolos).toHaveLength(38);
|
|
53
81
|
});
|
|
54
|
-
it('
|
|
82
|
+
it('CRUD', () => {
|
|
55
83
|
const codigo = [
|
|
56
84
|
'INSERIR EM clientes VALORES(1, "João", 20, "joao@gmail.com", VERDADEIRO)',
|
|
57
85
|
'INSERIR EM clientes VALORES(2, "Carlos", 23, "carlos@gmail.com", VERDADEIRO)',
|
|
@@ -62,13 +90,13 @@ describe('Lexador', () => {
|
|
|
62
90
|
expect(resultado).toBeTruthy();
|
|
63
91
|
expect(resultado.simbolos).toHaveLength(60);
|
|
64
92
|
});
|
|
65
|
-
it('
|
|
93
|
+
it('Selecionar', () => {
|
|
66
94
|
const codigo = ['SELECIONAR * DE clientes'];
|
|
67
95
|
const resultado = lexador.mapear(codigo);
|
|
68
96
|
expect(resultado).toBeTruthy();
|
|
69
97
|
expect(resultado.simbolos).toHaveLength(4);
|
|
70
98
|
});
|
|
71
|
-
it('
|
|
99
|
+
it('Criar Tabela Clientes', () => {
|
|
72
100
|
const codigo = [
|
|
73
101
|
'CRIAR TABELA clientes(id INTEIRO NAO NULO CHAVE PRIMARIA AUTOINCREMENTO, nome TEXTO(100) NAO NULO, idade INTEIRO NAO NULO, email TEXTO(255) NAO NULO, ativo LOGICO NAO NULO);'
|
|
74
102
|
];
|
|
@@ -78,6 +106,18 @@ describe('Lexador', () => {
|
|
|
78
106
|
});
|
|
79
107
|
});
|
|
80
108
|
});
|
|
109
|
+
describe('Cenários de falha', () => {
|
|
110
|
+
it('Texto não finalizado', () => {
|
|
111
|
+
const codigo = [
|
|
112
|
+
'"texto sem fim'
|
|
113
|
+
];
|
|
114
|
+
const resultado = lexador.mapear(codigo);
|
|
115
|
+
expect(resultado).toBeTruthy();
|
|
116
|
+
expect(resultado.erros.length).toBe(1);
|
|
117
|
+
const erro = resultado.erros[0];
|
|
118
|
+
expect(erro.mensagem).toBe('Texto não finalizado.');
|
|
119
|
+
});
|
|
120
|
+
});
|
|
81
121
|
});
|
|
82
122
|
});
|
|
83
123
|
//# sourceMappingURL=lexador.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexador.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/lexador.test.ts"],"names":[],"mappings":";;AAAA,+CAA4C;AAE5C,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lexador.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/lexador.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliente-sqlite.js","sourceRoot":"","sources":["../../../fontes/infraestrutura/cliente-sqlite.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAErC,+CAAiC;AACjC,sDAA8B;AAE9B,MAAa,aAAa;IAKtB,0DAA0D;IAC1D,oCAAoC;IACpC,4CAA4C;IAC5C,qDAAqD;IACrD,+CAA+C;IAC/C,YAAY,cAA6B,IAAI;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC;IACL,CAAC;
|
|
1
|
+
{"version":3,"file":"cliente-sqlite.js","sourceRoot":"","sources":["../../../fontes/infraestrutura/cliente-sqlite.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAErC,+CAAiC;AACjC,sDAA8B;AAE9B,MAAa,aAAa;IAKtB,0DAA0D;IAC1D,oCAAoC;IACpC,4CAA4C;IAC5C,qDAAqD;IACrD,+CAA+C;IAC/C,YAAY,cAA6B,IAAI;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,MAAM,EAAE,iBAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,aAAoB,EAAE;QACzD,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7D,qBAAqB;QACrB,cAAc;QACd,iCAAiC;QACjC,IAAI;QACR,MAAM;IACV,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAe,EAAE,aAAoB,EAAE;QACxE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;CACJ;AA9CD,sCA8CC"}
|
|
@@ -3,18 +3,22 @@ import { AvaliadorSintatico } from "./comum/fontes/avaliador-sintatico";
|
|
|
3
3
|
import { Lexador } from "./comum/fontes/lexador";
|
|
4
4
|
import { ClienteSQLite } from "./infraestrutura/cliente-sqlite";
|
|
5
5
|
import { RetornoComando } from "./infraestrutura";
|
|
6
|
-
|
|
6
|
+
import { Comando, TecnologiaLinconesInterface } from "./comum/fontes";
|
|
7
|
+
export declare class LinconesSQLite implements TecnologiaLinconesInterface {
|
|
7
8
|
lexador: Lexador;
|
|
8
9
|
avaliadorSintatico: AvaliadorSintatico;
|
|
9
10
|
tradutor: TradutorSqLite;
|
|
10
11
|
clienteSQLite: ClienteSQLite;
|
|
11
12
|
constructor();
|
|
13
|
+
iniciar(caminho: string): void;
|
|
14
|
+
executarComando(comando: Comando): Promise<RetornoComando[]>;
|
|
12
15
|
/**
|
|
13
16
|
* Traduz um comando de LinConEs para SQL e executa no banco de dados SQLite.
|
|
14
17
|
* @param _ Normalmente a instância do interpretador Delégua.
|
|
15
|
-
* @param
|
|
18
|
+
* @param sentencaLincones A sentença em LinConEs a ser traduzida e executada.
|
|
16
19
|
* @param parametros Parâmetros adicionais para o comando, se necessário.
|
|
17
20
|
* @returns
|
|
18
21
|
*/
|
|
19
|
-
executar(_: any,
|
|
22
|
+
executar(_: any, sentencaLincones: string, parametros?: any[]): Promise<RetornoComando[]>;
|
|
23
|
+
private executarInterno;
|
|
20
24
|
}
|
|
@@ -11,25 +11,42 @@ class LinconesSQLite {
|
|
|
11
11
|
this.lexador = new lexador_1.Lexador();
|
|
12
12
|
this.avaliadorSintatico = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
13
13
|
this.tradutor = new tradutor_1.TradutorSqLite();
|
|
14
|
-
|
|
14
|
+
}
|
|
15
|
+
iniciar(caminho) {
|
|
16
|
+
this.clienteSQLite = new cliente_sqlite_1.ClienteSQLite(caminho);
|
|
17
|
+
}
|
|
18
|
+
async executarComando(comando) {
|
|
19
|
+
return await this.executarInterno([comando], comando.parametros);
|
|
15
20
|
}
|
|
16
21
|
/**
|
|
17
22
|
* Traduz um comando de LinConEs para SQL e executa no banco de dados SQLite.
|
|
18
23
|
* @param _ Normalmente a instância do interpretador Delégua.
|
|
19
|
-
* @param
|
|
24
|
+
* @param sentencaLincones A sentença em LinConEs a ser traduzida e executada.
|
|
20
25
|
* @param parametros Parâmetros adicionais para o comando, se necessário.
|
|
21
26
|
* @returns
|
|
22
27
|
*/
|
|
23
|
-
async executar(_,
|
|
24
|
-
const
|
|
28
|
+
async executar(_, sentencaLincones, parametros = []) {
|
|
29
|
+
const parametrosNaoNulos = parametros || [];
|
|
30
|
+
const resultadoLexador = this.lexador.mapear([sentencaLincones]);
|
|
25
31
|
const resultadoAvaliacaoSintatica = this.avaliadorSintatico.analisar(resultadoLexador);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
if (resultadoAvaliacaoSintatica.erros.length > 0) {
|
|
33
|
+
throw new Error(`Erros encontrados na avaliação de comandos: ${resultadoAvaliacaoSintatica.erros.reduce((mensagens, erro) => mensagens += erro.message + '; ', '')}.`);
|
|
34
|
+
}
|
|
35
|
+
return await this.executarInterno(resultadoAvaliacaoSintatica.comandos, parametrosNaoNulos);
|
|
36
|
+
}
|
|
37
|
+
async executarInterno(comandos, parametros) {
|
|
38
|
+
if (comandos.length <= 0) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
const retornosComandos = [];
|
|
42
|
+
for (const comando of comandos) {
|
|
43
|
+
const resultadoTraducao = this.tradutor.traduzir([comando]);
|
|
44
|
+
// TODO: Parâmetros
|
|
45
|
+
const resultadoExecucao = await this.clienteSQLite.executarComando(resultadoTraducao, parametros);
|
|
46
|
+
const retorno = new infraestrutura_1.RetornoComando(resultadoExecucao);
|
|
47
|
+
retornosComandos.push(retorno);
|
|
29
48
|
}
|
|
30
|
-
|
|
31
|
-
const retorno = new infraestrutura_1.RetornoComando(resultadoExecucao);
|
|
32
|
-
return retorno;
|
|
49
|
+
return retornosComandos;
|
|
33
50
|
}
|
|
34
51
|
}
|
|
35
52
|
exports.LinconesSQLite = LinconesSQLite;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lincones-sqlite.js","sourceRoot":"","sources":["../../fontes/lincones-sqlite.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,4EAAwE;AACxE,oDAAiD;AACjD,oEAAgE;AAChE,qDAAkD;
|
|
1
|
+
{"version":3,"file":"lincones-sqlite.js","sourceRoot":"","sources":["../../fontes/lincones-sqlite.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,4EAAwE;AACxE,oDAAiD;AACjD,oEAAgE;AAChE,qDAAkD;AAGlD,MAAa,cAAc;IAMvB;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAc,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgB;QAClC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,gBAAwB,EAAE,aAAoB,EAAE;QACnE,MAAM,kBAAkB,GAAG,UAAU,IAAI,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjE,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAEvF,IAAI,2BAA2B,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,+CAA+C,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3K,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAChG,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAmB,EAAE,UAAiB;QAChE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAqB,EAAE,CAAC;QAE9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,mBAAmB;YACnB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAClG,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,iBAAiB,CAAC,CAAC;YACtD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ;AAxDD,wCAwDC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lincones-interface.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/interfaces/lincones-interface.ts"],"names":[],"mappings":""}
|