@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.
Files changed (67) hide show
  1. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +3 -1
  2. package/fontes/avaliador-sintatico/avaliador-sintatico.js +23 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  4. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +19 -12
  5. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +93 -67
  6. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  7. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.d.ts +18 -2
  8. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js +341 -2
  9. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js.map +1 -1
  10. package/fontes/comum/fontes/comandos/index.d.ts +1 -1
  11. package/fontes/comum/fontes/comandos/index.js +1 -1
  12. package/fontes/comum/fontes/comandos/{excluir-entidade.d.ts → remover-entidade.d.ts} +1 -1
  13. package/fontes/comum/fontes/comandos/{excluir-entidade.js → remover-entidade.js} +4 -4
  14. package/fontes/comum/fontes/comandos/{excluir-entidade.js.map → remover-entidade.js.map} +1 -1
  15. package/fontes/comum/fontes/comandos/selecionar.d.ts +3 -2
  16. package/fontes/comum/fontes/comandos/selecionar.js +2 -1
  17. package/fontes/comum/fontes/comandos/selecionar.js.map +1 -1
  18. package/fontes/comum/fontes/construtos/coluna.d.ts +2 -2
  19. package/fontes/comum/fontes/construtos/coluna.js +6 -4
  20. package/fontes/comum/fontes/construtos/coluna.js.map +1 -1
  21. package/fontes/comum/fontes/construtos/index.d.ts +1 -0
  22. package/fontes/comum/fontes/construtos/index.js +1 -0
  23. package/fontes/comum/fontes/construtos/index.js.map +1 -1
  24. package/fontes/comum/fontes/construtos/juncao.d.ts +11 -0
  25. package/fontes/comum/fontes/construtos/juncao.js +20 -0
  26. package/fontes/comum/fontes/construtos/juncao.js.map +1 -0
  27. package/fontes/comum/fontes/construtos/literal.d.ts +2 -2
  28. package/fontes/comum/fontes/construtos/literal.js +1 -1
  29. package/fontes/comum/fontes/construtos/literal.js.map +1 -1
  30. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +1 -1
  31. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +1 -1
  32. package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.d.ts +1 -0
  33. package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js +1 -0
  34. package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js.map +1 -1
  35. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.d.ts +10 -0
  36. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js +10 -0
  37. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js.map +1 -1
  38. package/fontes/comum/fontes/tipos-de-simbolos/index.d.ts +2 -0
  39. package/fontes/comum/fontes/tipos-de-simbolos/index.js +2 -0
  40. package/fontes/comum/fontes/tipos-de-simbolos/index.js.map +1 -1
  41. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.d.ts +31 -0
  42. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js +306 -0
  43. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js.map +1 -1
  44. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +10 -5
  45. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +75 -8
  46. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -1
  47. package/fontes/comum/testes/avaliador-sintatico-sql-ansi.test.d.ts +1 -0
  48. package/fontes/comum/testes/avaliador-sintatico-sql-ansi.test.js +360 -0
  49. package/fontes/comum/testes/avaliador-sintatico-sql-ansi.test.js.map +1 -0
  50. package/fontes/comum/testes/avaliador-sintatico.test.js +0 -10
  51. package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -1
  52. package/fontes/comum/testes/construtos.test.js +2 -2
  53. package/fontes/comum/testes/construtos.test.js.map +1 -1
  54. package/fontes/comum/testes/tradutor-reverso-sql-ansi.test.d.ts +1 -0
  55. package/fontes/comum/testes/tradutor-reverso-sql-ansi.test.js +278 -0
  56. package/fontes/comum/testes/tradutor-reverso-sql-ansi.test.js.map +1 -0
  57. package/fontes/comum/testes/tradutor-sql-ansi.test.js +3 -3
  58. package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -1
  59. package/fontes/lincones-sqlite.js +6 -1
  60. package/fontes/lincones-sqlite.js.map +1 -1
  61. package/fontes/palavras-reservadas.d.ts +3 -0
  62. package/fontes/palavras-reservadas.js +3 -0
  63. package/fontes/palavras-reservadas.js.map +1 -1
  64. package/fontes/tradutor/index.d.ts +0 -8
  65. package/fontes/tradutor/index.js +0 -11
  66. package/fontes/tradutor/index.js.map +1 -1
  67. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
+ import { Criar } from '../comum/fontes/comandos';
1
2
  import { RetornoAvaliadorSintatico, RetornoLexador } from '../comum/fontes/interfaces/retornos';
2
3
  import { AvaliadorSintaticoBase } from '../comum/fontes/avaliador-sintatico/avaliador-sintatico-base';
3
4
  export declare class AvaliadorSintatico extends AvaliadorSintaticoBase {
4
- declaracao(): import("../comum/fontes/comandos").Atualizar | import("../comum/fontes/comandos").Criar | import("../comum/fontes/comandos").Excluir | import("../comum/fontes/comandos").ExcluirEntidade | import("../comum/fontes/comandos").Inserir | import("../comum/fontes/comandos").Selecionar;
5
+ declaracao(): import("../comum/fontes/comandos").Atualizar | Criar | import("../comum/fontes/comandos").Excluir | import("../comum/fontes/comandos").Inserir | import("../comum/fontes/comandos").Selecionar;
6
+ comandoCriar(): Criar;
5
7
  analisar(retornoLexador: RetornoLexador): RetornoAvaliadorSintatico;
6
8
  }
@@ -4,8 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AvaliadorSintatico = void 0;
7
- const tipos_de_simbolos_1 = __importDefault(require("../comum/fontes/tipos-de-simbolos"));
7
+ const comandos_1 = require("../comum/fontes/comandos");
8
8
  const avaliador_sintatico_base_1 = require("../comum/fontes/avaliador-sintatico/avaliador-sintatico-base");
9
+ const tipos_de_simbolos_1 = __importDefault(require("../comum/fontes/tipos-de-simbolos"));
9
10
  class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
10
11
  declaracao() {
11
12
  switch (this.simbolos[this.atual].tipo) {
@@ -24,6 +25,27 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
24
25
  return null;
25
26
  }
26
27
  }
28
+ comandoCriar() {
29
+ // Essa linha nunca deve retornar erro.
30
+ this.consumir(tipos_de_simbolos_1.default.CRIAR, 'Esperado palavra reservada "CRIAR".');
31
+ // Essa linha nunca deve retornar erro.
32
+ const simboloTabela = this.consumir(tipos_de_simbolos_1.default.TABELA, 'Esperado palavra reservada "TABELA".');
33
+ let seNaoExistir = false;
34
+ if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.SE)) {
35
+ this.consumir(tipos_de_simbolos_1.default.NAO, 'Esperado palavra reservada "NÃO" após palavra reservada "SE".');
36
+ this.consumir(tipos_de_simbolos_1.default.EXISTIR, 'Esperado palavra reservada "EXISTIR" após palavra reservada "NÃO".');
37
+ seNaoExistir = true;
38
+ }
39
+ const nomeDaTabela = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavra reservada "TABELA".');
40
+ this.consumir(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO, 'Esperado abertura de parênteses após nome da tabela');
41
+ const colunas = [];
42
+ do {
43
+ colunas.push(this.comandoCriacaoColuna());
44
+ } while (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VIRGULA));
45
+ this.consumir(tipos_de_simbolos_1.default.PARENTESE_DIREITO, 'Esperado fechamento de parênteses após nome da tabela');
46
+ this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
47
+ return new comandos_1.Criar(simboloTabela.linha, nomeDaTabela.lexema, colunas, seNaoExistir);
48
+ }
27
49
  analisar(retornoLexador) {
28
50
  this.erros = [];
29
51
  this.atual = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":";;;;;;AAKA,0FAAgE;AAChE,2GAAsG;AAEtG,MAAa,kBAAmB,SAAQ,iDAAsB;IACjD,UAAU;QACf,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,KAAK,2BAAe,CAAC,SAAS;gBAC1B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC,KAAK,2BAAe,CAAC,KAAK;gBACtB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,KAAK,2BAAe,CAAC,OAAO;gBACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,2BAAe,CAAC,OAAO;gBACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,2BAAe,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpC;gBACI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;QACpB,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,cAA8B;QACnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,KAAI,EAAE,CAAC;QAE/C,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO;YACH,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;SACS,CAAC;IACnC,CAAC;CACJ;AAnCD,gDAmCC"}
1
+ {"version":3,"file":"avaliador-sintatico.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA0D;AAK1D,2GAAsG;AAGtG,0FAAgE;AAEhE,MAAa,kBAAmB,SAAQ,iDAAsB;IACjD,UAAU;QACf,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,KAAK,2BAAe,CAAC,SAAS;gBAC1B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC,KAAK,2BAAe,CAAC,KAAK;gBACtB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,KAAK,2BAAe,CAAC,OAAO;gBACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,2BAAe,CAAC,OAAO;gBACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,2BAAe,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpC;gBACI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;QACpB,CAAC;IACL,CAAC;IAEQ,YAAY;QACjB,uCAAuC;QACvC,IAAI,CAAC,QAAQ,CACT,2BAAe,CAAC,KAAK,EACrB,qCAAqC,CACxC,CAAC;QAEF,uCAAuC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAC/B,2BAAe,CAAC,MAAM,EACtB,sCAAsC,CACzC,CAAC;QAEF,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,8BAA8B,CAAC,2BAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,QAAQ,CACT,2BAAe,CAAC,GAAG,EACnB,+DAA+D,CAClE,CAAC;YAEF,IAAI,CAAC,QAAQ,CACT,2BAAe,CAAC,OAAO,EACvB,oEAAoE,CACvE,CAAC;YAEF,YAAY,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAC9B,2BAAe,CAAC,aAAa,EAC7B,2EAA2E,CAC9E,CAAC;QAEF,IAAI,CAAC,QAAQ,CACT,2BAAe,CAAC,kBAAkB,EAClC,qDAAqD,CACxD,CAAC;QAEF,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,GAAG,CAAC;YACA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC9C,CAAC,QAAQ,IAAI,CAAC,8BAA8B,CAAC,2BAAe,CAAC,OAAO,CAAC,EAAE;QAEvE,IAAI,CAAC,QAAQ,CACT,2BAAe,CAAC,iBAAiB,EACjC,uDAAuD,CAC1D,CAAC;QAEF,IAAI,CAAC,8BAA8B,CAAC,2BAAe,CAAC,aAAa,CAAC,CAAC;QAEnE,OAAO,IAAI,gBAAK,CACZ,aAAa,CAAC,KAAK,EACnB,YAAY,CAAC,MAAM,EACnB,OAAO,EACP,YAAY,CACf,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,cAA8B;QACnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,KAAI,EAAE,CAAC;QAE/C,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO;YACH,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;SACS,CAAC;IACnC,CAAC;CACJ;AA9FD,gDA8FC"}
@@ -1,8 +1,8 @@
1
- import { Alterar, Atualizar, Criar, Excluir, ExcluirEntidade, Inserir, Selecionar } from '../comandos';
1
+ import { Alterar, Atualizar, Criar, Excluir, RemoverEntidade, Inserir, Selecionar } from '../comandos';
2
2
  import { AvaliadorSintaticoInterface, SimboloInterface } from '../interfaces';
3
3
  import { RetornoAvaliadorSintatico, RetornoLexador } from '../interfaces/retornos';
4
4
  import { ErroAvaliadorSintatico } from './erro-avaliador-sintatico';
5
- import { Coluna, Condicao, Construto } from '../construtos';
5
+ import { Coluna, Condicao, Construto, Restricao } from '../construtos';
6
6
  export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintaticoInterface {
7
7
  simbolos: SimboloInterface[];
8
8
  erros: ErroAvaliadorSintatico[];
@@ -16,24 +16,31 @@ export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintati
16
16
  erro(simbolo: SimboloInterface, mensagemDeErro: string): ErroAvaliadorSintatico;
17
17
  verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
18
18
  protected avancar(): void;
19
- private logicaManipulacaoColuna;
20
- private logicaManipulacaoRestricao;
21
- private logicaAdicionarOuAlterarColuna;
22
- private logicaAdicionarOuAlterarRestricao;
23
- private logicaRestricaoChave;
24
- protected inferirTipoLiteral(simboloLiteral: SimboloInterface): 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO';
19
+ protected logicaManipulacaoColuna(simboloOperacao: SimboloInterface): Coluna;
20
+ protected logicaManipulacaoRestricao(simboloNomeTabela: SimboloInterface, simboloOperacao: SimboloInterface): Restricao;
21
+ protected logicaChavePrimaria(): boolean[];
22
+ protected logicaAdicionarOuAlterarColuna(simboloNomeDaColuna: SimboloInterface): Coluna;
23
+ protected logicaAdicionarOuAlterarRestricao(simboloNomeDaTabela: SimboloInterface, simboloNomeDaRestricao: SimboloInterface): Restricao;
24
+ protected logicaRemocaoColuna(simboloNomeDaColuna: SimboloInterface): Coluna;
25
+ protected logicaRestricaoChave(simboloNomeDaTabela: SimboloInterface, simboloNomeDaRestricao: SimboloInterface): Restricao;
25
26
  protected comandoAlterar(): Alterar;
26
27
  protected comandoAtualizar(): Atualizar;
27
28
  protected comandoCriacaoColuna(): Coluna;
28
29
  protected comandoCriar(): Criar;
29
30
  protected comandoCriarTabela(): Criar;
30
- protected comandoExcluirTabela(): ExcluirEntidade;
31
- protected comandoExcluirVisao(): ExcluirEntidade;
32
- protected comandoExcluir(): Excluir | ExcluirEntidade;
31
+ protected comandoRemoverEntidade(): RemoverEntidade;
32
+ protected comandoExcluir(): Excluir;
33
33
  protected comandoInserir(): Inserir;
34
+ protected inferirTipoOperando(tipoOperando: string): 'CARACTERES' | 'INTEIRO' | 'LOGICO' | 'NUMERO' | 'TEXTO';
34
35
  protected logicaComumOperando(): Construto;
35
36
  protected logicaComumCondicoes(operacao: string): Condicao[];
36
37
  protected comandoSelecionar(): Selecionar;
37
- protected declaracao(): Alterar | Atualizar | Criar | Excluir | ExcluirEntidade | Inserir | Selecionar;
38
+ protected declaracao(): Alterar | Atualizar | Criar | Excluir | RemoverEntidade | Inserir | Selecionar;
39
+ /**
40
+ * Ponto de entrada da avaliação sintática base de LinConEs.
41
+ * @param retornoLexador O retorno da execução do Lexador.
42
+ * @returns Um retorno com o resultado da avaliação sintática, contendo
43
+ * comandos e erros, quando houverem.
44
+ */
38
45
  analisar(retornoLexador: RetornoLexador): RetornoAvaliadorSintatico;
39
46
  }
@@ -34,7 +34,6 @@ class AvaliadorSintaticoBase {
34
34
  }
35
35
  erro(simbolo, mensagemDeErro) {
36
36
  const excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simbolo, mensagemDeErro);
37
- this.erros.push(excecao);
38
37
  return excecao;
39
38
  }
40
39
  verificarSeSimboloAtualEIgualA(...argumentos) {
@@ -58,8 +57,8 @@ class AvaliadorSintaticoBase {
58
57
  case tipos_de_simbolos_1.default.ADICIONAR:
59
58
  case tipos_de_simbolos_1.default.ALTERAR:
60
59
  return this.logicaAdicionarOuAlterarColuna(simboloNomeDaColuna);
61
- case tipos_de_simbolos_1.default.EXCLUIR:
62
- break;
60
+ case tipos_de_simbolos_1.default.REMOVER:
61
+ return this.logicaRemocaoColuna(simboloNomeDaColuna);
63
62
  case tipos_de_simbolos_1.default.RENOMEAR:
64
63
  break;
65
64
  }
@@ -78,18 +77,39 @@ class AvaliadorSintaticoBase {
78
77
  }
79
78
  return undefined;
80
79
  }
80
+ logicaChavePrimaria() {
81
+ let chavePrimaria = false;
82
+ let autoIncremento = false;
83
+ if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.CHAVE)) {
84
+ switch (this.simbolos[this.atual].tipo) {
85
+ case tipos_de_simbolos_1.default.PRIMARIA:
86
+ chavePrimaria = true;
87
+ this.avancar();
88
+ if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.AUTO)) {
89
+ this.consumir(tipos_de_simbolos_1.default.INCREMENTO, 'Esperado palavra reservada "INCREMENTO" após palavra reservada "AUTO" em declaração de coluna em comando de criação de tabela.');
90
+ autoIncremento = true;
91
+ }
92
+ break;
93
+ default:
94
+ 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.');
95
+ }
96
+ }
97
+ return [chavePrimaria, autoIncremento];
98
+ }
81
99
  logicaAdicionarOuAlterarColuna(simboloNomeDaColuna) {
82
100
  // Tipo de dados
83
101
  const simboloTipoElemento = this.avancarEDevolverAnterior();
84
102
  let tamanhoElemento = null;
85
103
  if (![
104
+ tipos_de_simbolos_1.default.CARACTERES,
86
105
  tipos_de_simbolos_1.default.INTEIRO,
87
106
  tipos_de_simbolos_1.default.LOGICO,
107
+ tipos_de_simbolos_1.default.NUMERO,
88
108
  tipos_de_simbolos_1.default.TEXTO
89
109
  ].includes(simboloTipoElemento.tipo)) {
90
110
  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}.`);
91
111
  }
92
- if (simboloTipoElemento.tipo === tipos_de_simbolos_1.default.TEXTO) {
112
+ if (simboloTipoElemento.tipo === tipos_de_simbolos_1.default.CARACTERES) {
93
113
  if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO)) {
94
114
  tamanhoElemento = this.consumir(tipos_de_simbolos_1.default.NUMERO, 'Esperado tamanho de texto de coluna em comando de criação de tabela.');
95
115
  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.');
@@ -110,23 +130,8 @@ class AvaliadorSintaticoBase {
110
130
  }
111
131
  }
112
132
  // Chave primária?
113
- let chavePrimaria = false;
114
- let autoIncremento = false;
115
- if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.CHAVE)) {
116
- switch (this.simbolos[this.atual].tipo) {
117
- case tipos_de_simbolos_1.default.PRIMARIA:
118
- chavePrimaria = true;
119
- this.avancar();
120
- if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.AUTO)) {
121
- this.consumir(tipos_de_simbolos_1.default.INCREMENTO, 'Esperado palavra reservada "INCREMENTO" após palavra reservada "AUTO" em declaração de coluna em comando de criação de tabela.');
122
- autoIncremento = true;
123
- }
124
- break;
125
- default:
126
- 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.');
127
- }
128
- }
129
- return new construtos_1.Coluna(simboloNomeDaColuna.lexema, simboloTipoElemento.lexema, tamanhoElemento ? tamanhoElemento : undefined, nulo, chavePrimaria, false, false);
133
+ const [chavePrimaria, autoIncremento] = this.logicaChavePrimaria();
134
+ return new construtos_1.Coluna(simboloNomeDaColuna.lexema, simboloTipoElemento.lexema, tamanhoElemento ? tamanhoElemento : undefined, nulo, chavePrimaria, false, autoIncremento);
130
135
  }
131
136
  logicaAdicionarOuAlterarRestricao(simboloNomeDaTabela, simboloNomeDaRestricao) {
132
137
  // Tipo de restrição
@@ -139,6 +144,14 @@ class AvaliadorSintaticoBase {
139
144
  }
140
145
  return undefined;
141
146
  }
147
+ logicaRemocaoColuna(simboloNomeDaColuna) {
148
+ // Ponto-e-vírgula opcional após declaração de remoção de coluna
149
+ this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
150
+ // Retorna uma instância de Coluna contendo apenas o nome.
151
+ // O código que processa a operação de remoção deve interpretar
152
+ // a presença desta Coluna como pedido de remoção.
153
+ return new construtos_1.Coluna(simboloNomeDaColuna.lexema);
154
+ }
142
155
  logicaRestricaoChave(simboloNomeDaTabela, simboloNomeDaRestricao) {
143
156
  const simboloTipoChave = this.avancarEDevolverAnterior();
144
157
  switch (simboloTipoChave.tipo) {
@@ -157,20 +170,6 @@ class AvaliadorSintaticoBase {
157
170
  return new construtos_1.Restricao(simboloNomeDaRestricao.lexema, "CHAVE_ESTRANGEIRA", simboloNomeDaTabela.lexema, [nomeColunaChave.lexema], nomeTabelaReferenciada.lexema, [nomeColunaReferenciada.lexema]);
158
171
  }
159
172
  }
160
- inferirTipoLiteral(simboloLiteral) {
161
- const lexemaOuLiteral = simboloLiteral.lexema || simboloLiteral.literal;
162
- switch (lexemaOuLiteral.constructor.name) {
163
- case 'String':
164
- if (['VERDADEIRO', 'FALSO'].includes(lexemaOuLiteral.toUpperCase())) {
165
- return 'LOGICO';
166
- }
167
- return 'TEXTO';
168
- case 'Number':
169
- return 'NUMERO';
170
- default:
171
- throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simboloLiteral, `Tipo ${simboloLiteral.lexema} não pode ser inferido.`);
172
- }
173
- }
174
173
  //https://pgdocptbr.sourceforge.io/pg80/ddl-alter.html
175
174
  //ALTER TABLE produtos ADD COLUMN descricao text => alterar tabela produtos adicionar coluna descricao texto(50)
176
175
  //ALTER TABLE produtos DROP COLUMN descricao;
@@ -259,6 +258,14 @@ class AvaliadorSintaticoBase {
259
258
  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.');
260
259
  }
261
260
  break;
261
+ case tipos_de_simbolos_1.default.CARACTERES:
262
+ tipoColuna = tipos_de_simbolos_1.default.CARACTERES;
263
+ this.avancar();
264
+ if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO)) {
265
+ tamanhoColuna = this.consumir(tipos_de_simbolos_1.default.NUMERO, 'Esperado tamanho de caracteres de coluna em comando de criação de tabela.');
266
+ 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.');
267
+ }
268
+ break;
262
269
  default:
263
270
  throw this.erro(this.simbolos[this.atual], 'Esperado tipo de dados válido na definição de coluna em comando de criação de tabela.');
264
271
  }
@@ -323,25 +330,20 @@ class AvaliadorSintaticoBase {
323
330
  this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
324
331
  return new comandos_1.Criar(simboloTabela.linha, nomeDaTabela.lexema, colunas, seNaoExistir);
325
332
  }
326
- comandoExcluirTabela() {
327
- const nomeDaTabela = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavra reservada "TABELA".');
328
- this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
329
- return new comandos_1.ExcluirEntidade(nomeDaTabela.linha, nomeDaTabela.lexema, 'TABELA');
330
- }
331
- comandoExcluirVisao() {
332
- const nomeDaVisao = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de visão após palavra reservada "VISÃO".');
333
+ comandoRemoverEntidade() {
334
+ // Essa linha nunca deve retornar erro.
335
+ this.consumir(tipos_de_simbolos_1.default.REMOVER, 'Esperado palavra reservada "REMOVER".');
336
+ if (!this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.TABELA, tipos_de_simbolos_1.default.VISAO)) {
337
+ throw this.erro(this.simbolos[this.atual], `Esperado palavras reservadas "TABELA" ou "VISÃO" após palavra reservada "REMOVER".`);
338
+ }
339
+ const simboloTipoEntidade = this.simbolos[this.atual - 1];
340
+ const nomeDaEntidade = this.consumir(tipos_de_simbolos_1.default.IDENTIFICADOR, 'Esperado identificador de nome de tabela após palavras reservadas "TABELA" ou "VISÃO".');
333
341
  this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.PONTO_VIRGULA);
334
- return new comandos_1.ExcluirEntidade(nomeDaVisao.linha, nomeDaVisao.lexema, 'VISÃO');
342
+ return new comandos_1.RemoverEntidade(nomeDaEntidade.linha, nomeDaEntidade.lexema, simboloTipoEntidade.lexema.toUpperCase());
335
343
  }
336
344
  comandoExcluir() {
337
345
  // Essa linha nunca deve retornar erro.
338
346
  const simboloExcluir = this.consumir(tipos_de_simbolos_1.default.EXCLUIR, 'Esperado palavra reservada "EXCLUIR".');
339
- if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.TABELA)) {
340
- return this.comandoExcluirTabela();
341
- }
342
- if (this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.VISAO)) {
343
- return this.comandoExcluirVisao();
344
- }
345
347
  if (!this.verificarSeSimboloAtualEIgualA(tipos_de_simbolos_1.default.DE, tipos_de_simbolos_1.default.EM)) {
346
348
  throw this.erro(this.simbolos[this.atual], 'Esperado palavra reservada "DE" ou "EM" após palavra reservada "EXCLUIR".');
347
349
  }
@@ -388,17 +390,27 @@ class AvaliadorSintaticoBase {
388
390
  }
389
391
  return new comandos_1.Inserir(simboloInserir.linha, nomeDaTabela.lexema, colunas, valores);
390
392
  }
393
+ inferirTipoOperando(tipoOperando) {
394
+ switch (tipoOperando) {
395
+ case tipos_de_simbolos_1.default.VERDADEIRO:
396
+ case tipos_de_simbolos_1.default.FALSO:
397
+ case tipos_de_simbolos_1.default.LOGICO:
398
+ return 'LOGICO';
399
+ default:
400
+ return tipoOperando;
401
+ }
402
+ }
391
403
  logicaComumOperando() {
392
404
  const simboloOperando = this.avancarEDevolverAnterior();
393
405
  switch (simboloOperando.tipo) {
394
406
  case tipos_de_simbolos_1.default.IDENTIFICADOR:
395
407
  return new construtos_1.ReferenciaColuna(simboloOperando.lexema);
408
+ case tipos_de_simbolos_1.default.CARACTERES:
396
409
  case tipos_de_simbolos_1.default.NUMERO:
397
410
  case tipos_de_simbolos_1.default.TEXTO:
398
411
  case tipos_de_simbolos_1.default.VERDADEIRO:
399
412
  case tipos_de_simbolos_1.default.FALSO:
400
- const tipoInferido = this.inferirTipoLiteral(simboloOperando);
401
- return new construtos_1.Literal(simboloOperando.literal || simboloOperando.lexema, tipoInferido);
413
+ return new construtos_1.Literal(simboloOperando.literal || simboloOperando.lexema, this.inferirTipoOperando(simboloOperando.tipo));
402
414
  case tipos_de_simbolos_1.default.INTERROGACAO:
403
415
  return new construtos_1.ParametroAnonimo();
404
416
  case tipos_de_simbolos_1.default.DOIS_PONTOS:
@@ -467,24 +479,38 @@ class AvaliadorSintaticoBase {
467
479
  return new comandos_1.Selecionar(simboloSelecionar.linha, nomeTabela.lexema, colunas, condicoes, tudo);
468
480
  }
469
481
  declaracao() {
470
- switch (this.simbolos[this.atual].tipo) {
471
- case tipos_de_simbolos_1.default.ALTERAR:
472
- return this.comandoAlterar();
473
- case tipos_de_simbolos_1.default.ATUALIZAR:
474
- return this.comandoAtualizar();
475
- case tipos_de_simbolos_1.default.CRIAR:
476
- return this.comandoCriar();
477
- case tipos_de_simbolos_1.default.EXCLUIR:
478
- return this.comandoExcluir();
479
- case tipos_de_simbolos_1.default.INSERIR:
480
- return this.comandoInserir();
481
- case tipos_de_simbolos_1.default.SELECIONAR:
482
- return this.comandoSelecionar();
483
- default:
484
- this.avancar();
485
- return null;
482
+ try {
483
+ switch (this.simbolos[this.atual].tipo) {
484
+ case tipos_de_simbolos_1.default.ALTERAR:
485
+ return this.comandoAlterar();
486
+ case tipos_de_simbolos_1.default.ATUALIZAR:
487
+ return this.comandoAtualizar();
488
+ case tipos_de_simbolos_1.default.CRIAR:
489
+ return this.comandoCriar();
490
+ case tipos_de_simbolos_1.default.EXCLUIR:
491
+ return this.comandoExcluir();
492
+ case tipos_de_simbolos_1.default.INSERIR:
493
+ return this.comandoInserir();
494
+ case tipos_de_simbolos_1.default.REMOVER:
495
+ return this.comandoRemoverEntidade();
496
+ case tipos_de_simbolos_1.default.SELECIONAR:
497
+ return this.comandoSelecionar();
498
+ default:
499
+ this.avancar();
500
+ return null;
501
+ }
502
+ }
503
+ catch (erro) {
504
+ this.erros.push(erro);
505
+ return null;
486
506
  }
487
507
  }
508
+ /**
509
+ * Ponto de entrada da avaliação sintática base de LinConEs.
510
+ * @param retornoLexador O retorno da execução do Lexador.
511
+ * @returns Um retorno com o resultado da avaliação sintática, contendo
512
+ * comandos e erros, quando houverem.
513
+ */
488
514
  analisar(retornoLexador) {
489
515
  this.erros = [];
490
516
  this.atual = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../../../../fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,23 @@
1
1
  import { AvaliadorSintaticoBase } from './avaliador-sintatico-base';
2
+ import { Alterar, Atualizar, Criar, Excluir, RemoverEntidade, Inserir, Selecionar } from '../comandos';
3
+ import { SimboloInterface } from '../interfaces';
4
+ import { Coluna, Construto } from '../construtos';
2
5
  /**
3
- * A única função desta classe é poder ser instanciada, seja para
4
- * testes unitários, seja para outras funções.
6
+ * O Avaliador Sintático SQL ANSI analisa _tokens_ em inglês (CREATE, SELECT, etc.)
7
+ * e produz as mesmas estruturas de comando que o avaliador sintático base.
5
8
  */
6
9
  export declare class AvaliadorSintaticoSqlAnsi extends AvaliadorSintaticoBase {
10
+ private traduzirTipoDeDados;
11
+ protected logicaAdicionarOuAlterarColuna(simboloNomeDaColuna: SimboloInterface): Coluna;
12
+ protected logicaChavePrimaria(): boolean[];
13
+ protected logicaComumOperando(): Construto;
14
+ protected comandoCriacaoColuna(): Coluna;
15
+ protected comandoCriar(): Criar;
16
+ protected comandoInserir(): Inserir;
17
+ protected comandoAtualizar(): Atualizar;
18
+ protected comandoRemoverEntidade(): RemoverEntidade;
19
+ protected comandoSelecionar(): Selecionar;
20
+ protected logicaManipulacaoColunaOuRestricao(simboloOperacao: SimboloInterface, simboloDaTabelaOuVisao: SimboloInterface): import("../construtos").Restricao | Coluna;
21
+ protected comandoAlterar(): Alterar;
22
+ protected declaracao(): Alterar | Atualizar | Criar | Excluir | RemoverEntidade | Inserir | Selecionar;
7
23
  }