@designliquido/lincones-sqlite 0.0.3 → 0.0.4

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 (178) hide show
  1. package/execucao.d.ts +1 -1
  2. package/execucao.js +52 -52
  3. package/execucao.js.map +1 -1
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +6 -15
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.js +42 -261
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  7. package/fontes/avaliador-sintatico/index.d.ts +1 -2
  8. package/fontes/avaliador-sintatico/index.js +5 -20
  9. package/fontes/avaliador-sintatico/index.js.map +1 -1
  10. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +36 -0
  11. package/{comum/fontes/avaliador-sintatico/avaliador-sintatico.js → fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js} +444 -353
  12. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -0
  13. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +7 -0
  14. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico.js +12 -0
  15. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -0
  16. package/{comum → fontes/comum}/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
  17. package/{comum → fontes/comum}/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
  18. package/fontes/comum/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -0
  19. package/fontes/comum/fontes/avaliador-sintatico/index.d.ts +3 -0
  20. package/{comum → fontes/comum}/fontes/avaliador-sintatico/index.js +19 -22
  21. package/fontes/comum/fontes/avaliador-sintatico/index.js.map +1 -0
  22. package/fontes/comum/fontes/comandos/alterar.d.ts +8 -0
  23. package/fontes/comum/fontes/comandos/alterar.js +14 -0
  24. package/fontes/comum/fontes/comandos/alterar.js.map +1 -0
  25. package/{comum → fontes/comum}/fontes/comandos/atualizar.d.ts +14 -14
  26. package/{comum → fontes/comum}/fontes/comandos/atualizar.js +13 -13
  27. package/fontes/comum/fontes/comandos/atualizar.js.map +1 -0
  28. package/{comum → fontes/comum}/fontes/comandos/comando.d.ts +6 -6
  29. package/{comum → fontes/comum}/fontes/comandos/comando.js +13 -13
  30. package/fontes/comum/fontes/comandos/comando.js.map +1 -0
  31. package/fontes/comum/fontes/comandos/criar.d.ts +8 -0
  32. package/{comum → fontes/comum}/fontes/comandos/criar.js +12 -12
  33. package/fontes/comum/fontes/comandos/criar.js.map +1 -0
  34. package/fontes/comum/fontes/comandos/excluir-entidade.d.ts +6 -0
  35. package/fontes/comum/fontes/comandos/excluir-entidade.js +13 -0
  36. package/fontes/comum/fontes/comandos/excluir-entidade.js.map +1 -0
  37. package/{comum → fontes/comum}/fontes/comandos/excluir.d.ts +6 -6
  38. package/{comum → fontes/comum}/fontes/comandos/excluir.js +12 -12
  39. package/fontes/comum/fontes/comandos/excluir.js.map +1 -0
  40. package/{comum → fontes/comum}/fontes/comandos/index.d.ts +8 -7
  41. package/{comum → fontes/comum}/fontes/comandos/index.js +24 -23
  42. package/fontes/comum/fontes/comandos/index.js.map +1 -0
  43. package/{comum → fontes/comum}/fontes/comandos/inserir.d.ts +8 -8
  44. package/{comum → fontes/comum}/fontes/comandos/inserir.js +13 -13
  45. package/fontes/comum/fontes/comandos/inserir.js.map +1 -0
  46. package/{comum → fontes/comum}/fontes/comandos/selecionar.d.ts +9 -9
  47. package/{comum → fontes/comum}/fontes/comandos/selecionar.js +14 -14
  48. package/fontes/comum/fontes/comandos/selecionar.js.map +1 -0
  49. package/{comum → fontes/comum}/fontes/construtos/coluna.d.ts +11 -11
  50. package/{comum → fontes/comum}/fontes/construtos/coluna.js +19 -15
  51. package/fontes/comum/fontes/construtos/coluna.js.map +1 -0
  52. package/{comum → fontes/comum}/fontes/construtos/condicao.d.ts +6 -6
  53. package/{comum → fontes/comum}/fontes/construtos/condicao.js +11 -11
  54. package/fontes/comum/fontes/construtos/condicao.js.map +1 -0
  55. package/{comum → fontes/comum}/fontes/construtos/index.d.ts +2 -1
  56. package/{comum → fontes/comum}/fontes/construtos/index.js +18 -17
  57. package/fontes/comum/fontes/construtos/index.js.map +1 -0
  58. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.d.ts +7 -0
  59. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js +15 -0
  60. package/fontes/comum/fontes/construtos/operacao-alteracao-tabela.js.map +1 -0
  61. package/fontes/comum/fontes/construtos/restricao.d.ts +13 -0
  62. package/fontes/comum/fontes/construtos/restricao.js +19 -0
  63. package/fontes/comum/fontes/construtos/restricao.js.map +1 -0
  64. package/{comum → fontes/comum}/fontes/interfaces/avaliador-sintatico-interface.d.ts +14 -14
  65. package/{comum → fontes/comum}/fontes/interfaces/avaliador-sintatico-interface.js +2 -2
  66. package/fontes/comum/fontes/interfaces/avaliador-sintatico-interface.js.map +1 -0
  67. package/fontes/comum/fontes/interfaces/index.d.ts +3 -0
  68. package/fontes/comum/fontes/interfaces/index.js +20 -0
  69. package/fontes/comum/fontes/interfaces/index.js.map +1 -0
  70. package/fontes/comum/fontes/interfaces/lincones-interface.d.ts +3 -0
  71. package/{comum → fontes/comum}/fontes/interfaces/lincones-interface.js +2 -2
  72. package/fontes/comum/fontes/interfaces/lincones-interface.js.map +1 -0
  73. package/{comum → fontes/comum}/fontes/interfaces/retornos/index.d.ts +16 -16
  74. package/{comum → fontes/comum}/fontes/interfaces/retornos/index.js +2 -2
  75. package/fontes/comum/fontes/interfaces/retornos/index.js.map +1 -0
  76. package/{comum → fontes/comum}/fontes/interfaces/simbolo-interface.d.ts +6 -6
  77. package/{comum → fontes/comum}/fontes/interfaces/simbolo-interface.js +2 -2
  78. package/fontes/comum/fontes/interfaces/simbolo-interface.js.map +1 -0
  79. package/fontes/comum/fontes/lexador/index.d.ts +1 -0
  80. package/{comum/fontes/interfaces → fontes/comum/fontes/lexador}/index.js +17 -17
  81. package/fontes/comum/fontes/lexador/index.js.map +1 -0
  82. package/{comum/fontes/lexador/index.d.ts → fontes/comum/fontes/lexador/lexador.d.ts} +26 -26
  83. package/{comum/fontes/lexador/index.js → fontes/comum/fontes/lexador/lexador.js} +220 -220
  84. package/fontes/comum/fontes/lexador/lexador.js.map +1 -0
  85. package/{comum → fontes/comum}/fontes/lexador/simbolo.d.ts +9 -9
  86. package/{comum → fontes/comum}/fontes/lexador/simbolo.js +15 -15
  87. package/fontes/comum/fontes/lexador/simbolo.js.map +1 -0
  88. package/{comum → fontes/comum}/fontes/palavras-reservadas.d.ts +51 -40
  89. package/{comum → fontes/comum}/fontes/palavras-reservadas.js +56 -45
  90. package/fontes/comum/fontes/palavras-reservadas.js.map +1 -0
  91. package/{comum → fontes/comum}/fontes/tipos-de-simbolos.d.ts +57 -52
  92. package/{comum → fontes/comum}/fontes/tipos-de-simbolos.js +58 -53
  93. package/fontes/comum/fontes/tipos-de-simbolos.js.map +1 -0
  94. package/fontes/comum/fontes/tradutor/index.d.ts +32 -0
  95. package/{comum → fontes/comum}/fontes/tradutor/index.js +238 -183
  96. package/fontes/comum/fontes/tradutor/index.js.map +1 -0
  97. package/fontes/comum/index.d.ts +8 -0
  98. package/fontes/comum/index.js +25 -0
  99. package/fontes/comum/index.js.map +1 -0
  100. package/{comum → fontes/comum}/jest.config.d.ts +3 -3
  101. package/{comum → fontes/comum}/jest.config.js +11 -11
  102. package/fontes/comum/jest.config.js.map +1 -0
  103. package/{comum/execucao.d.ts → fontes/comum/testes/avaliador-sintatico.test.d.ts} +1 -1
  104. package/fontes/comum/testes/avaliador-sintatico.test.js +86 -0
  105. package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -0
  106. package/fontes/comum/testes/lexador.test.d.ts +1 -0
  107. package/fontes/comum/testes/lexador.test.js +83 -0
  108. package/fontes/comum/testes/lexador.test.js.map +1 -0
  109. package/fontes/comum/testes/tradutor.test.d.ts +1 -0
  110. package/fontes/comum/testes/tradutor.test.js +133 -0
  111. package/fontes/comum/testes/tradutor.test.js.map +1 -0
  112. package/fontes/infraestrutura/cliente-sqlite.d.ts +10 -10
  113. package/fontes/infraestrutura/cliente-sqlite.js +71 -71
  114. package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
  115. package/fontes/infraestrutura/index.d.ts +2 -2
  116. package/fontes/infraestrutura/index.js +18 -18
  117. package/fontes/infraestrutura/retorno-comando.d.ts +8 -8
  118. package/fontes/infraestrutura/retorno-comando.js +28 -28
  119. package/fontes/infraestrutura/retorno-comando.js.map +1 -1
  120. package/fontes/lincones-sqlite.d.ts +13 -13
  121. package/fontes/lincones-sqlite.js +28 -28
  122. package/fontes/lincones-sqlite.js.map +1 -1
  123. package/fontes/palavras-reservadas.d.ts +26 -26
  124. package/fontes/palavras-reservadas.js +31 -31
  125. package/fontes/palavras-reservadas.js.map +1 -1
  126. package/fontes/tradutor/index.d.ts +21 -19
  127. package/fontes/tradutor/index.js +152 -149
  128. package/fontes/tradutor/index.js.map +1 -1
  129. package/index.d.ts +1 -1
  130. package/index.js +17 -17
  131. package/package.json +12 -12
  132. package/comum/execucao.js +0 -40
  133. package/comum/execucao.js.map +0 -1
  134. package/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +0 -15
  135. package/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +0 -46
  136. package/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +0 -1
  137. package/comum/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +0 -16
  138. package/comum/fontes/avaliador-sintatico/avaliador-sintatico.js.map +0 -1
  139. package/comum/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +0 -1
  140. package/comum/fontes/avaliador-sintatico/index.d.ts +0 -3
  141. package/comum/fontes/avaliador-sintatico/index.js.map +0 -1
  142. package/comum/fontes/comandos/alterar.d.ts +0 -13
  143. package/comum/fontes/comandos/alterar.js +0 -19
  144. package/comum/fontes/comandos/alterar.js.map +0 -1
  145. package/comum/fontes/comandos/atualizar.js.map +0 -1
  146. package/comum/fontes/comandos/comando.js.map +0 -1
  147. package/comum/fontes/comandos/criar.d.ts +0 -7
  148. package/comum/fontes/comandos/criar.js.map +0 -1
  149. package/comum/fontes/comandos/excluir.js.map +0 -1
  150. package/comum/fontes/comandos/index.js.map +0 -1
  151. package/comum/fontes/comandos/inserir.js.map +0 -1
  152. package/comum/fontes/comandos/selecionar.js.map +0 -1
  153. package/comum/fontes/construtos/coluna.js.map +0 -1
  154. package/comum/fontes/construtos/condicao.js.map +0 -1
  155. package/comum/fontes/construtos/index.js.map +0 -1
  156. package/comum/fontes/interfaces/avaliador-sintatico-interface.js.map +0 -1
  157. package/comum/fontes/interfaces/index.d.ts +0 -3
  158. package/comum/fontes/interfaces/index.js.map +0 -1
  159. package/comum/fontes/interfaces/lincones-interface.d.ts +0 -3
  160. package/comum/fontes/interfaces/lincones-interface.js.map +0 -1
  161. package/comum/fontes/interfaces/retornos/index.js.map +0 -1
  162. package/comum/fontes/interfaces/simbolo-interface.js.map +0 -1
  163. package/comum/fontes/lexador/index.js.map +0 -1
  164. package/comum/fontes/lexador/simbolo.js.map +0 -1
  165. package/comum/fontes/lincones.d.ts +0 -10
  166. package/comum/fontes/lincones.js +0 -21
  167. package/comum/fontes/lincones.js.map +0 -1
  168. package/comum/fontes/palavras-reservadas.js.map +0 -1
  169. package/comum/fontes/tipos-de-simbolos.js.map +0 -1
  170. package/comum/fontes/tradutor/index.d.ts +0 -20
  171. package/comum/fontes/tradutor/index.js.map +0 -1
  172. package/comum/index.d.ts +0 -1
  173. package/comum/index.js +0 -6
  174. package/comum/index.js.map +0 -1
  175. package/comum/jest.config.js.map +0 -1
  176. package/fontes/lexador/index.d.ts +0 -26
  177. package/fontes/lexador/index.js +0 -220
  178. package/fontes/lexador/index.js.map +0 -1
@@ -1,220 +0,0 @@
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
- exports.Lexador = void 0;
7
- const simbolo_1 = require("../../comum/fontes/lexador/simbolo");
8
- const palavras_reservadas_1 = __importDefault(require("../palavras-reservadas"));
9
- const tipos_de_simbolos_1 = __importDefault(require("../../comum/fontes/tipos-de-simbolos"));
10
- class Lexador {
11
- eDigito(caractere) {
12
- return caractere >= '0' && caractere <= '9';
13
- }
14
- eAlfabeto(caractere) {
15
- const acentuacoes = [
16
- 'á',
17
- 'Á',
18
- 'ã',
19
- 'Ã',
20
- 'â',
21
- 'Â',
22
- 'à',
23
- 'À',
24
- 'é',
25
- 'É',
26
- 'ê',
27
- 'Ê',
28
- 'í',
29
- 'Í',
30
- 'ó',
31
- 'Ó',
32
- 'õ',
33
- 'Õ',
34
- 'ô',
35
- 'Ô',
36
- 'ú',
37
- 'Ú',
38
- 'ç',
39
- 'Ç',
40
- '_'
41
- ];
42
- return ((caractere >= 'a' && caractere <= 'z') ||
43
- (caractere >= 'A' && caractere <= 'Z') ||
44
- acentuacoes.includes(caractere));
45
- }
46
- eAlfabetoOuDigito(caractere) {
47
- return this.eDigito(caractere) || this.eAlfabeto(caractere);
48
- }
49
- eFinalDoCodigo() {
50
- return (this.eUltimaLinha() &&
51
- this.codigo[this.codigo.length - 1].length <= this.atual);
52
- }
53
- eUltimaLinha() {
54
- return this.linha >= this.codigo.length - 1;
55
- }
56
- eFinalDaLinha() {
57
- if (this.codigo.length === this.linha) {
58
- return true;
59
- }
60
- return this.atual >= this.codigo[this.linha].length;
61
- }
62
- simboloAtual() {
63
- if (this.eFinalDaLinha())
64
- return '\0';
65
- return this.codigo[this.linha].charAt(this.atual);
66
- }
67
- avancar() {
68
- this.atual += 1;
69
- if (this.eFinalDaLinha() && !this.eUltimaLinha()) {
70
- this.linha++;
71
- this.atual = 0;
72
- }
73
- }
74
- proximoSimbolo() {
75
- return this.codigo[this.linha].charAt(this.atual + 1);
76
- }
77
- simboloAnterior() {
78
- return this.codigo[this.linha].charAt(this.atual - 1);
79
- }
80
- analisarNumero() {
81
- while (this.eDigito(this.simboloAtual())) {
82
- this.avancar();
83
- }
84
- if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
85
- this.avancar();
86
- while (this.eDigito(this.simboloAtual())) {
87
- this.avancar();
88
- }
89
- }
90
- const numeroCompleto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
91
- this.adicionarSimbolo(tipos_de_simbolos_1.default.NUMERO, parseFloat(numeroCompleto));
92
- }
93
- analisarTexto(delimitador = '"') {
94
- while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
95
- this.avancar();
96
- }
97
- if (this.eFinalDoCodigo()) {
98
- this.erros.push({
99
- linha: this.linha + 1,
100
- caractere: this.simboloAnterior(),
101
- mensagem: 'Texto não finalizado.'
102
- });
103
- return;
104
- }
105
- const valor = this.codigo[this.linha].substring(this.inicioSimbolo + 1, this.atual);
106
- this.adicionarSimbolo(tipos_de_simbolos_1.default.TEXTO, valor);
107
- }
108
- adicionarSimbolo(tipo, literal = null) {
109
- const texto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
110
- this.simbolos.push(new simbolo_1.Simbolo(tipo, literal || texto, literal, this.linha + 1));
111
- }
112
- identificarPalavraChave() {
113
- while (this.eAlfabetoOuDigito(this.simboloAtual())) {
114
- this.avancar();
115
- }
116
- const codigo = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual).toLowerCase();
117
- const tipo = codigo in palavras_reservadas_1.default
118
- ? palavras_reservadas_1.default[codigo]
119
- : tipos_de_simbolos_1.default.IDENTIFICADOR;
120
- this.adicionarSimbolo(tipo);
121
- }
122
- analisarToken() {
123
- const caractere = this.simboloAtual();
124
- switch (caractere) {
125
- // Esta sessão ignora espaços em branco na tokenização.
126
- case ' ':
127
- case '\0':
128
- case '\r':
129
- case '\t':
130
- this.avancar();
131
- break;
132
- case ';':
133
- this.adicionarSimbolo(tipos_de_simbolos_1.default.PONTO_VIRGULA, ';');
134
- this.linha++;
135
- this.avancar();
136
- break;
137
- case '"':
138
- this.avancar();
139
- this.analisarTexto('"');
140
- this.avancar();
141
- break;
142
- case "'":
143
- this.avancar();
144
- this.analisarTexto("'");
145
- this.avancar();
146
- break;
147
- case '(':
148
- this.adicionarSimbolo(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO, '(');
149
- this.avancar();
150
- break;
151
- case ')':
152
- this.adicionarSimbolo(tipos_de_simbolos_1.default.PARENTESE_DIREITO, ')');
153
- this.avancar();
154
- break;
155
- case ',':
156
- this.adicionarSimbolo(tipos_de_simbolos_1.default.VIRGULA, ',');
157
- this.avancar();
158
- break;
159
- case '=':
160
- this.adicionarSimbolo(tipos_de_simbolos_1.default.IGUAL, '=');
161
- this.avancar();
162
- break;
163
- case '*':
164
- this.adicionarSimbolo(tipos_de_simbolos_1.default.TUDO, '*');
165
- this.avancar();
166
- break;
167
- case '<':
168
- this.avancar();
169
- if (this.simboloAtual() === '=') {
170
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR_IGUAL);
171
- this.avancar();
172
- }
173
- else {
174
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR);
175
- }
176
- break;
177
- case '>':
178
- this.avancar();
179
- if (this.simboloAtual() === '=') {
180
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR_IGUAL);
181
- this.avancar();
182
- }
183
- else {
184
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR);
185
- }
186
- break;
187
- default:
188
- if (this.eDigito(caractere))
189
- this.analisarNumero();
190
- else if (this.eAlfabeto(caractere))
191
- this.identificarPalavraChave();
192
- else {
193
- this.erros.push({
194
- linha: this.linha + 1,
195
- caractere: caractere,
196
- mensagem: 'Caractere inesperado.'
197
- });
198
- this.avancar();
199
- }
200
- }
201
- }
202
- mapear(codigo) {
203
- this.inicioSimbolo = 0;
204
- this.atual = 0;
205
- this.linha = 0;
206
- this.codigo = codigo || [''];
207
- this.simbolos = [];
208
- this.erros = [];
209
- while (!this.eFinalDoCodigo()) {
210
- this.inicioSimbolo = this.atual;
211
- this.analisarToken();
212
- }
213
- return {
214
- simbolos: this.simbolos,
215
- erros: this.erros
216
- };
217
- }
218
- }
219
- exports.Lexador = Lexador;
220
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/lexador/index.ts"],"names":[],"mappings":"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"}