@designliquido/lincones-sqlite 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +1 -1
  2. package/fontes/comum/babel.config.d.ts +5 -0
  3. package/fontes/comum/babel.config.js +7 -0
  4. package/fontes/comum/babel.config.js.map +1 -0
  5. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +8 -5
  6. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +81 -21
  7. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  8. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.d.ts +7 -0
  9. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js +12 -0
  10. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js.map +1 -0
  11. package/fontes/comum/fontes/avaliador-sintatico/index.d.ts +1 -0
  12. package/fontes/comum/fontes/avaliador-sintatico/index.js +1 -0
  13. package/fontes/comum/fontes/avaliador-sintatico/index.js.map +1 -1
  14. package/fontes/comum/fontes/comandos/atualizar.d.ts +3 -9
  15. package/fontes/comum/fontes/comandos/atualizar.js.map +1 -1
  16. package/fontes/comum/fontes/comandos/criar.d.ts +2 -1
  17. package/fontes/comum/fontes/comandos/criar.js +2 -1
  18. package/fontes/comum/fontes/comandos/criar.js.map +1 -1
  19. package/fontes/comum/fontes/comandos/excluir.d.ts +3 -2
  20. package/fontes/comum/fontes/comandos/excluir.js.map +1 -1
  21. package/fontes/comum/fontes/comandos/inserir.d.ts +3 -3
  22. package/fontes/comum/fontes/comandos/inserir.js.map +1 -1
  23. package/fontes/comum/fontes/construtos/coluna-e-valor.d.ts +8 -0
  24. package/fontes/comum/fontes/construtos/coluna-e-valor.js +16 -0
  25. package/fontes/comum/fontes/construtos/coluna-e-valor.js.map +1 -0
  26. package/fontes/comum/fontes/construtos/coluna.d.ts +3 -1
  27. package/fontes/comum/fontes/construtos/coluna.js +21 -1
  28. package/fontes/comum/fontes/construtos/coluna.js.map +1 -1
  29. package/fontes/comum/fontes/construtos/condicao.d.ts +6 -4
  30. package/fontes/comum/fontes/construtos/condicao.js +11 -1
  31. package/fontes/comum/fontes/construtos/condicao.js.map +1 -1
  32. package/fontes/comum/fontes/construtos/construto.d.ts +3 -0
  33. package/fontes/comum/fontes/construtos/construto.js +7 -0
  34. package/fontes/comum/fontes/construtos/construto.js.map +1 -0
  35. package/fontes/comum/fontes/construtos/index.d.ts +8 -0
  36. package/fontes/comum/fontes/construtos/index.js +8 -0
  37. package/fontes/comum/fontes/construtos/index.js.map +1 -1
  38. package/fontes/comum/fontes/construtos/literal.d.ts +7 -0
  39. package/fontes/comum/fontes/construtos/literal.js +16 -0
  40. package/fontes/comum/fontes/construtos/literal.js.map +1 -0
  41. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +3 -1
  42. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +6 -1
  43. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js.map +1 -1
  44. package/fontes/comum/fontes/construtos/parametro-anonimo.d.ts +4 -0
  45. package/fontes/comum/fontes/construtos/parametro-anonimo.js +11 -0
  46. package/fontes/comum/fontes/construtos/parametro-anonimo.js.map +1 -0
  47. package/fontes/comum/fontes/construtos/parametro-nomeado.d.ts +6 -0
  48. package/fontes/comum/fontes/construtos/parametro-nomeado.js +15 -0
  49. package/fontes/comum/fontes/construtos/parametro-nomeado.js.map +1 -0
  50. package/fontes/comum/fontes/construtos/referencia-coluna.d.ts +6 -0
  51. package/fontes/comum/fontes/construtos/referencia-coluna.js +15 -0
  52. package/fontes/comum/fontes/construtos/referencia-coluna.js.map +1 -0
  53. package/fontes/comum/fontes/construtos/restricao.d.ts +3 -1
  54. package/fontes/comum/fontes/construtos/restricao.js +24 -1
  55. package/fontes/comum/fontes/construtos/restricao.js.map +1 -1
  56. package/fontes/comum/fontes/index.d.ts +7 -0
  57. package/fontes/comum/{index.js → fontes/index.js} +7 -8
  58. package/fontes/comum/fontes/index.js.map +1 -0
  59. package/fontes/comum/fontes/lexador/index.d.ts +1 -0
  60. package/fontes/comum/fontes/lexador/index.js +1 -0
  61. package/fontes/comum/fontes/lexador/index.js.map +1 -1
  62. package/fontes/comum/fontes/lexador/lexador-base.d.ts +26 -0
  63. package/fontes/comum/fontes/lexador/lexador-base.js +211 -0
  64. package/fontes/comum/fontes/lexador/lexador-base.js.map +1 -0
  65. package/fontes/comum/fontes/lexador/lexador-sql-ansi.d.ts +11 -0
  66. package/fontes/comum/fontes/lexador/lexador-sql-ansi.js +47 -0
  67. package/fontes/comum/fontes/lexador/lexador-sql-ansi.js.map +1 -0
  68. package/fontes/comum/fontes/lexador/lexador.d.ts +2 -23
  69. package/fontes/comum/fontes/lexador/lexador.js +5 -198
  70. package/fontes/comum/fontes/lexador/lexador.js.map +1 -1
  71. package/fontes/comum/fontes/lexador/palavras-reservadas/index.d.ts +2 -0
  72. package/fontes/comum/fontes/lexador/palavras-reservadas/index.js +19 -0
  73. package/fontes/comum/fontes/lexador/palavras-reservadas/index.js.map +1 -0
  74. package/fontes/comum/fontes/{palavras-reservadas.d.ts → lexador/palavras-reservadas/lincones.d.ts} +1 -0
  75. package/fontes/comum/fontes/{palavras-reservadas.js → lexador/palavras-reservadas/lincones.js} +3 -2
  76. package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js.map +1 -0
  77. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.d.ts +37 -0
  78. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js +43 -0
  79. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js.map +1 -0
  80. package/fontes/comum/fontes/{tipos-de-simbolos.d.ts → tipos-de-simbolos/index.d.ts} +3 -0
  81. package/fontes/comum/fontes/{tipos-de-simbolos.js → tipos-de-simbolos/index.js} +4 -1
  82. package/fontes/comum/fontes/tipos-de-simbolos/index.js.map +1 -0
  83. package/fontes/comum/fontes/tradutor/index.d.ts +2 -32
  84. package/fontes/comum/fontes/tradutor/index.js +15 -235
  85. package/fontes/comum/fontes/tradutor/index.js.map +1 -1
  86. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.d.ts +7 -0
  87. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js +12 -0
  88. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js.map +1 -0
  89. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +33 -0
  90. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +246 -0
  91. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -0
  92. package/fontes/comum/testes/avaliador-sintatico.test.js +85 -14
  93. package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -1
  94. package/fontes/comum/testes/construtos.test.js +52 -0
  95. package/fontes/comum/testes/construtos.test.js.map +1 -0
  96. package/fontes/comum/testes/lexador-sql-ansi.test.d.ts +1 -0
  97. package/fontes/comum/testes/lexador-sql-ansi.test.js +83 -0
  98. package/fontes/comum/testes/lexador-sql-ansi.test.js.map +1 -0
  99. package/fontes/comum/testes/tradutor-sql-ansi.test.d.ts +1 -0
  100. package/fontes/comum/testes/{tradutor.test.js → tradutor-sql-ansi.test.js} +29 -25
  101. package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -0
  102. package/fontes/infraestrutura/cliente-sqlite.d.ts +1 -1
  103. package/fontes/infraestrutura/cliente-sqlite.js +10 -9
  104. package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
  105. package/fontes/lincones-sqlite.d.ts +4 -3
  106. package/fontes/lincones-sqlite.js +5 -4
  107. package/fontes/lincones-sqlite.js.map +1 -1
  108. package/fontes/tradutor/index.d.ts +2 -6
  109. package/fontes/tradutor/index.js +2 -87
  110. package/fontes/tradutor/index.js.map +1 -1
  111. package/package.json +1 -1
  112. package/fontes/comum/fontes/palavras-reservadas.js.map +0 -1
  113. package/fontes/comum/fontes/tipos-de-simbolos.js.map +0 -1
  114. package/fontes/comum/index.d.ts +0 -8
  115. package/fontes/comum/index.js.map +0 -1
  116. package/fontes/comum/testes/tradutor.test.js.map +0 -1
  117. /package/fontes/comum/testes/{tradutor.test.d.ts → construtos.test.d.ts} +0 -0
@@ -1,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
- it('Inserir em Tabela', () => {
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
- 'INSERIR EM clientes (NOME) VALORES ("Pernalonga")'
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('Selecionar em tabela', () => {
112
+ it('Criar Tabela se não existir', () => {
46
113
  const codigo = [
47
- 'SELECIONAR NOME, EMAIL DE clientes ONDE IDADE = 18;'
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 retornoLexador = lexador.mapear(codigo);
50
- const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
51
- expect(retornoAvaliadorSintatico).toBeTruthy();
52
- expect(retornoAvaliadorSintatico.comandos).toHaveLength(1);
53
- expect(retornoAvaliadorSintatico.erros).toHaveLength(0);
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
- '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);'
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":"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"}
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,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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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -22,9 +22,7 @@ describe('Tradutor (SQL ANSI)', () => {
22
22
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
23
23
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
24
24
  expect(resultado).toBeTruthy();
25
- expect(resultado).toContain('CREATE');
26
- expect(resultado).toContain('TABLE');
27
- expect(resultado).toContain('clientes');
25
+ expect(resultado).toContain('CREATE TABLE clientes');
28
26
  expect(resultado).toContain('email');
29
27
  expect(resultado).toContain('VARCHAR');
30
28
  });
@@ -37,11 +35,8 @@ describe('Tradutor (SQL ANSI)', () => {
37
35
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
38
36
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
39
37
  expect(resultado).toBeTruthy();
40
- expect(resultado).toContain('ALTER');
41
- expect(resultado).toContain('TABLE');
42
- expect(resultado).toContain('clientes');
43
- expect(resultado).toContain('ADD');
44
- expect(resultado).toContain('COLUMN');
38
+ expect(resultado).toContain('ALTER TABLE clientes');
39
+ expect(resultado).toContain('ADD COLUMN');
45
40
  expect(resultado).toContain('email');
46
41
  expect(resultado).toContain('VARCHAR(120)');
47
42
  });
@@ -56,14 +51,23 @@ describe('Tradutor (SQL ANSI)', () => {
56
51
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
57
52
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
58
53
  expect(resultado).toBeTruthy();
59
- expect(resultado).toContain('ALTER');
60
- expect(resultado).toContain('TABLE');
61
- expect(resultado).toContain('pedidos');
62
- expect(resultado).toContain('ADD');
63
- expect(resultado).toContain('CONSTRAINT');
64
- expect(resultado).toContain('chave_estrang');
54
+ expect(resultado).toContain('ALTER TABLE pedidos');
55
+ expect(resultado).toContain('ADD CONSTRAINT chave_estrang');
65
56
  expect(resultado).toContain('FOREIGN KEY');
66
57
  });
58
+ it('Alteração de coluna', () => {
59
+ const codigo = [
60
+ 'ALTERAR TABELA clientes ALTERAR COLUNA email TEXTO(120)'
61
+ ];
62
+ const retornoLexador = lexador.mapear(codigo);
63
+ const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
64
+ const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
65
+ expect(resultado).toBeTruthy();
66
+ expect(resultado).toContain('ALTER TABLE clientes');
67
+ expect(resultado).toContain('ALTER COLUMN');
68
+ expect(resultado).toContain('email');
69
+ expect(resultado).toContain('VARCHAR(120)');
70
+ });
67
71
  });
68
72
  it('Atualizar', () => {
69
73
  const codigo = [
@@ -73,17 +77,16 @@ describe('Tradutor (SQL ANSI)', () => {
73
77
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
74
78
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
75
79
  expect(resultado).toBeTruthy();
76
- expect(resultado).toContain('UPDATE');
77
- expect(resultado).toContain('clientes');
80
+ expect(resultado).toContain('UPDATE clientes');
78
81
  expect(resultado).toContain('SET');
79
82
  expect(resultado).toContain('NOME');
80
83
  expect(resultado).toContain('Pernalonga');
81
84
  expect(resultado).toContain('IDADE');
82
85
  expect(resultado).toContain('18');
83
86
  expect(resultado).toContain('ATIVO');
84
- expect(resultado).toContain('true');
87
+ expect(resultado).toContain('TRUE');
85
88
  expect(resultado).toContain('CASADO');
86
- expect(resultado).toContain('false');
89
+ expect(resultado).toContain('FALSE');
87
90
  expect(resultado).toContain('WHERE');
88
91
  expect(resultado).toContain('ID');
89
92
  expect(resultado).toContain('=');
@@ -91,26 +94,27 @@ describe('Tradutor (SQL ANSI)', () => {
91
94
  });
92
95
  it('Inserir', () => {
93
96
  const codigo = [
94
- 'INSERIR EM clientes (NOME) VALORES ("Pernalonga")'
97
+ 'INSERIR EM clientes (NOME, IDADE, ATIVO, EMAIL) VALORES ("Pernalonga", 18, verdadeiro, "pernalonga@warnerbros.com")'
95
98
  ];
96
99
  const retornoLexador = lexador.mapear(codigo);
97
100
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
98
101
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
99
102
  expect(resultado).toBeTruthy();
100
- expect(resultado).toContain('INSERT');
101
- expect(resultado).toContain('INTO');
103
+ expect(resultado).toContain('INSERT INTO');
102
104
  expect(resultado).toContain('VALUES');
105
+ expect(resultado).toContain('Pernalonga');
106
+ expect(resultado).toContain('18');
107
+ expect(resultado).toContain('TRUE');
103
108
  });
104
109
  it('Excluir', () => {
105
110
  const codigo = [
106
- 'EXCLUIR clientes ONDE ID = 2'
111
+ 'EXCLUIR EM clientes ONDE ID = 2'
107
112
  ];
108
113
  const retornoLexador = lexador.mapear(codigo);
109
114
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
110
115
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
111
116
  expect(resultado).toBeTruthy();
112
- expect(resultado).toContain('DELETE');
113
- expect(resultado).toContain('FROM');
117
+ expect(resultado).toContain('DELETE FROM');
114
118
  expect(resultado).toContain('clientes');
115
119
  expect(resultado).toContain('WHERE');
116
120
  expect(resultado).toContain('ID = 2');
@@ -130,4 +134,4 @@ describe('Tradutor (SQL ANSI)', () => {
130
134
  });
131
135
  });
132
136
  });
133
- //# sourceMappingURL=tradutor.test.js.map
137
+ //# sourceMappingURL=tradutor-sql-ansi.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tradutor-sql-ansi.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/tradutor-sql-ansi.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ export declare class ClienteSQLite {
5
5
  origemDados: string;
6
6
  constructor(origemDados?: string | null);
7
7
  abrir(): Promise<void>;
8
- executarComando(comando: string): Promise<any>;
8
+ executarComando(comando: string, parametros?: any[]): Promise<any>;
9
9
  private executarComandoSelecao;
10
10
  }
@@ -64,18 +64,19 @@ class ClienteSQLite {
64
64
  this.instanciaBancoDeDados = database;
65
65
  console.log('Conectado ao banco de dados SQLite.');
66
66
  }
67
- async executarComando(comando) {
67
+ async executarComando(comando, parametros = []) {
68
68
  if (comando.startsWith('SELECT')) {
69
- return await this.executarComandoSelecao(comando);
69
+ return await this.executarComandoSelecao(comando, parametros);
70
70
  }
71
- return await this.instanciaBancoDeDados.run(comando, (erro) => {
72
- if (erro) {
73
- console.log(erro.message);
74
- }
75
- });
71
+ return await this.instanciaBancoDeDados.run(comando, parametros);
72
+ // (erro: Error) => {
73
+ // if (erro) {
74
+ // console.log(erro.message);
75
+ // }
76
+ // });
76
77
  }
77
- async executarComandoSelecao(comando) {
78
- return await this.instanciaBancoDeDados.all(comando);
78
+ async executarComandoSelecao(comando, parametros = []) {
79
+ return await this.instanciaBancoDeDados.all(comando, parametros);
79
80
  }
80
81
  }
81
82
  exports.ClienteSQLite = ClienteSQLite;
@@ -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;IAEM,KAAK,CAAC,KAAK;QACd,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;IAEM,KAAK,CAAC,eAAe,CAAC,OAAe;QACxC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAW,EAAE,EAAE;YACjE,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAChD,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACJ;AA7CD,sCA6CC"}
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;IAEM,KAAK,CAAC,KAAK;QACd,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;IAEM,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,aAAoB,EAAE;QAChE,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"}
@@ -10,10 +10,11 @@ export declare class LinconesSQLite {
10
10
  clienteSQLite: ClienteSQLite;
11
11
  constructor();
12
12
  /**
13
- *
13
+ * Traduz um comando de LinConEs para SQL e executa no banco de dados SQLite.
14
14
  * @param _ Normalmente a instância do interpretador Delégua.
15
- * @param comando
15
+ * @param comando O comando em LinConEs a ser traduzido e executado.
16
+ * @param parametros Parâmetros adicionais para o comando, se necessário.
16
17
  * @returns
17
18
  */
18
- executar(_: any, comando: string): Promise<RetornoComando>;
19
+ executar(_: any, comando: string, parametros?: any[]): Promise<RetornoComando>;
19
20
  }
@@ -14,19 +14,20 @@ class LinconesSQLite {
14
14
  this.clienteSQLite = new cliente_sqlite_1.ClienteSQLite();
15
15
  }
16
16
  /**
17
- *
17
+ * Traduz um comando de LinConEs para SQL e executa no banco de dados SQLite.
18
18
  * @param _ Normalmente a instância do interpretador Delégua.
19
- * @param comando
19
+ * @param comando O comando em LinConEs a ser traduzido e executado.
20
+ * @param parametros Parâmetros adicionais para o comando, se necessário.
20
21
  * @returns
21
22
  */
22
- async executar(_, comando) {
23
+ async executar(_, comando, parametros = []) {
23
24
  const resultadoLexador = this.lexador.mapear([comando]);
24
25
  const resultadoAvaliacaoSintatica = this.avaliadorSintatico.analisar(resultadoLexador);
25
26
  const resultadoTraducao = this.tradutor.traduzir(resultadoAvaliacaoSintatica.comandos);
26
27
  if (resultadoAvaliacaoSintatica.comandos.length <= 0) {
27
28
  return new infraestrutura_1.RetornoComando(null);
28
29
  }
29
- const resultadoExecucao = await this.clienteSQLite.executarComando(resultadoTraducao);
30
+ const resultadoExecucao = await this.clienteSQLite.executarComando(resultadoTraducao, parametros);
30
31
  const retorno = new infraestrutura_1.RetornoComando(resultadoExecucao);
31
32
  return retorno;
32
33
  }
@@ -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;AAElD,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;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,OAAe;QAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvF,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAEvF,IAAI,2BAA2B,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,iBAAiB,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAjCD,wCAiCC"}
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;AAElD,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;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,OAAe,EAAE,aAAoB,EAAE;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvF,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAEvF,IAAI,2BAA2B,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,iBAAiB,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAlCD,wCAkCC"}
@@ -1,14 +1,10 @@
1
1
  import { Coluna } from '../comum/fontes/construtos';
2
- import { Atualizar, Comando, Criar, Excluir, Inserir, Selecionar } from '../comum/fontes/comandos';
3
- import { TradutorSqlAnsi } from '../comum';
2
+ import { Comando, Criar } from '../comum/fontes/comandos';
3
+ import { TradutorSqlAnsi } from '../comum/fontes/tradutor/tradutor-sql-ansi';
4
4
  export declare class TradutorSqLite extends TradutorSqlAnsi {
5
5
  traduzirOperador(operador: string): boolean | "=";
6
- traduzirComandoAtualizar(comandoAtualizar: Atualizar): string;
7
6
  traduzirColuna(coluna: Coluna): string;
8
7
  traduzirComandoCriar(comandoCriar: Criar): string;
9
- traduzirComandoExcluir(comandoExcluir: Excluir): string;
10
- traduzirComandoInserir(comandoInserir: Inserir): string;
11
- traduzirComandoSelecionar(comandoSelecionar: Selecionar): string;
12
8
  dicionarioComandos: {
13
9
  Alterar: any;
14
10
  Atualizar: any;