@designliquido/potigol 0.0.0 → 0.0.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.
Files changed (79) hide show
  1. package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts +137 -124
  2. package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts.map +1 -1
  3. package/avaliador-sintatico/avaliador-sintatico-potigol.js +725 -708
  4. package/avaliador-sintatico/avaliador-sintatico-potigol.js.map +1 -1
  5. package/avaliador-sintatico/index.d.ts +1 -1
  6. package/avaliador-sintatico/index.js +17 -17
  7. package/avaliador-sintatico/micro-avaliador-sintatico-potigol.d.ts +20 -12
  8. package/avaliador-sintatico/micro-avaliador-sintatico-potigol.d.ts.map +1 -1
  9. package/avaliador-sintatico/micro-avaliador-sintatico-potigol.js +96 -72
  10. package/avaliador-sintatico/micro-avaliador-sintatico-potigol.js.map +1 -1
  11. package/bibliotecas/biblioteca-global.d.ts +3 -3
  12. package/bibliotecas/biblioteca-global.js +43 -43
  13. package/bibliotecas/index.d.ts +4 -4
  14. package/bibliotecas/index.js +20 -20
  15. package/bibliotecas/primitivas-numero.d.ts +13 -12
  16. package/bibliotecas/primitivas-numero.d.ts.map +1 -1
  17. package/bibliotecas/primitivas-numero.js +20 -12
  18. package/bibliotecas/primitivas-numero.js.map +1 -1
  19. package/bibliotecas/primitivas-texto.d.ts +28 -28
  20. package/bibliotecas/primitivas-texto.js +36 -36
  21. package/bibliotecas/primitivas-vetor.d.ts +26 -26
  22. package/bibliotecas/primitivas-vetor.js +48 -48
  23. package/bibliotecas/primitivas-vetor.js.map +1 -1
  24. package/formatador/formatador-potigol.d.ts +82 -0
  25. package/formatador/formatador-potigol.d.ts.map +1 -0
  26. package/formatador/formatador-potigol.js +662 -0
  27. package/formatador/formatador-potigol.js.map +1 -0
  28. package/formatador/index.d.ts +2 -0
  29. package/formatador/index.d.ts.map +1 -0
  30. package/formatador/index.js +18 -0
  31. package/formatador/index.js.map +1 -0
  32. package/index.d.ts +5 -5
  33. package/index.js +23 -23
  34. package/interfaces/index.d.ts +1 -1
  35. package/interfaces/index.js +17 -17
  36. package/interfaces/interpretador-interface-potigol.d.ts +5 -5
  37. package/interfaces/interpretador-interface-potigol.js +2 -2
  38. package/interpretador/comum.d.ts +25 -21
  39. package/interpretador/comum.d.ts.map +1 -1
  40. package/interpretador/comum.js +178 -115
  41. package/interpretador/comum.js.map +1 -1
  42. package/interpretador/index.d.ts +2 -2
  43. package/interpretador/index.js +18 -18
  44. package/interpretador/inferenciador.d.ts +1 -1
  45. package/interpretador/inferenciador.js +33 -33
  46. package/interpretador/inferenciador.js.map +1 -1
  47. package/interpretador/interpretador-potigol-com-depuracao.d.ts +12 -8
  48. package/interpretador/interpretador-potigol-com-depuracao.d.ts.map +1 -1
  49. package/interpretador/interpretador-potigol-com-depuracao.js +56 -47
  50. package/interpretador/interpretador-potigol-com-depuracao.js.map +1 -1
  51. package/interpretador/interpretador-potigol.d.ts +17 -15
  52. package/interpretador/interpretador-potigol.d.ts.map +1 -1
  53. package/interpretador/interpretador-potigol.js +85 -103
  54. package/interpretador/interpretador-potigol.js.map +1 -1
  55. package/lexador/index.d.ts +3 -2
  56. package/lexador/index.d.ts.map +1 -1
  57. package/lexador/index.js +19 -18
  58. package/lexador/index.js.map +1 -1
  59. package/lexador/lexador-potigol.d.ts +19 -17
  60. package/lexador/lexador-potigol.d.ts.map +1 -1
  61. package/lexador/lexador-potigol.js +304 -294
  62. package/lexador/lexador-potigol.js.map +1 -1
  63. package/lexador/micro-lexador-potigol.d.ts +29 -0
  64. package/lexador/micro-lexador-potigol.d.ts.map +1 -0
  65. package/lexador/micro-lexador-potigol.js +196 -0
  66. package/lexador/micro-lexador-potigol.js.map +1 -0
  67. package/lexador/palavras-reservadas.d.ts +45 -44
  68. package/lexador/palavras-reservadas.d.ts.map +1 -1
  69. package/lexador/palavras-reservadas.js +52 -51
  70. package/lexador/palavras-reservadas.js.map +1 -1
  71. package/package.json +4 -3
  72. package/tipos-de-simbolos/lexico-regular.d.ts +66 -64
  73. package/tipos-de-simbolos/lexico-regular.d.ts.map +1 -1
  74. package/tipos-de-simbolos/lexico-regular.js +67 -65
  75. package/tipos-de-simbolos/lexico-regular.js.map +1 -1
  76. package/tipos-de-simbolos/micro-lexico.d.ts +42 -0
  77. package/tipos-de-simbolos/micro-lexico.d.ts.map +1 -0
  78. package/tipos-de-simbolos/micro-lexico.js +43 -0
  79. package/tipos-de-simbolos/micro-lexico.js.map +1 -0
@@ -1,295 +1,305 @@
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.LexadorPotigol = void 0;
7
- const lexador_base_linha_unica_1 = require("@designliquido/delegua/lexador/lexador-base-linha-unica");
8
- const palavras_reservadas_1 = require("./palavras-reservadas");
9
- const lexico_regular_1 = __importDefault(require("../tipos-de-simbolos/lexico-regular"));
10
- /**
11
- * Lexador para o dialeto Potigol.
12
- * Este dialeto é sensível a tamanho de caixa. `Inteiro` é aceito. `inteiro` não.
13
- */
14
- class LexadorPotigol extends lexador_base_linha_unica_1.LexadorBaseLinhaUnica {
15
- logicaComumCaracteres(delimitador) {
16
- while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
17
- this.avancar();
18
- }
19
- if (this.eFinalDoCodigo()) {
20
- this.erros.push({
21
- linha: this.linha + 1,
22
- caractere: this.simboloAnterior(),
23
- mensagem: 'Cadeia de caracteres não finalizada.',
24
- });
25
- return;
26
- }
27
- const valor = this.codigo.substring(this.inicioSimbolo + 1, this.atual);
28
- return valor;
29
- }
30
- analisarCaracter() {
31
- const valor = this.logicaComumCaracteres("'");
32
- this.adicionarSimbolo(lexico_regular_1.default.CARACTERE, valor);
33
- }
34
- analisarTexto() {
35
- const valor = this.logicaComumCaracteres('"');
36
- this.adicionarSimbolo(lexico_regular_1.default.TEXTO, valor);
37
- }
38
- analisarNumero() {
39
- let real = false;
40
- while (this.eDigito(this.simboloAtual())) {
41
- this.avancar();
42
- }
43
- if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
44
- real = true;
45
- this.avancar();
46
- while (this.eDigito(this.simboloAtual())) {
47
- this.avancar();
48
- }
49
- }
50
- const numeroCompleto = this.codigo.substring(this.inicioSimbolo, this.atual);
51
- this.adicionarSimbolo(real ? lexico_regular_1.default.REAL : lexico_regular_1.default.INTEIRO, parseFloat(numeroCompleto));
52
- }
53
- avancarParaProximaLinha() {
54
- while (this.codigo[this.atual] !== '\n') {
55
- this.atual++;
56
- }
57
- }
58
- identificarPalavraChave() {
59
- while (this.eAlfabetoOuDigito(this.simboloAtual())) {
60
- this.avancar();
61
- }
62
- const codigo = this.codigo.substring(this.inicioSimbolo, this.atual);
63
- const tipo = codigo in palavras_reservadas_1.palavrasReservadas ? palavras_reservadas_1.palavrasReservadas[codigo] : lexico_regular_1.default.IDENTIFICADOR;
64
- this.adicionarSimbolo(tipo);
65
- }
66
- analisarToken() {
67
- const caractere = this.simboloAtual();
68
- switch (caractere) {
69
- case '[':
70
- this.adicionarSimbolo(lexico_regular_1.default.COLCHETE_ESQUERDO);
71
- this.avancar();
72
- break;
73
- case ']':
74
- this.adicionarSimbolo(lexico_regular_1.default.COLCHETE_DIREITO);
75
- this.avancar();
76
- break;
77
- case '(':
78
- this.adicionarSimbolo(lexico_regular_1.default.PARENTESE_ESQUERDO);
79
- this.avancar();
80
- break;
81
- case ')':
82
- this.adicionarSimbolo(lexico_regular_1.default.PARENTESE_DIREITO);
83
- this.avancar();
84
- break;
85
- // Até então encontradas apenas em interpolações de texto.
86
- // Por ora não necessárias.
87
- /* case '{':
88
- this.adicionarSimbolo(tiposDeSimbolos.CHAVE_ESQUERDA);
89
- this.avancar();
90
- break;
91
- case '}':
92
- this.adicionarSimbolo(tiposDeSimbolos.CHAVE_DIREITA);
93
- this.avancar();
94
- break; */
95
- case ':':
96
- this.inicioSimbolo = this.atual;
97
- this.avancar();
98
- if (this.simboloAtual() === '=') {
99
- this.adicionarSimbolo(lexico_regular_1.default.REATRIBUIR);
100
- this.avancar();
101
- }
102
- else {
103
- this.adicionarSimbolo(lexico_regular_1.default.DOIS_PONTOS);
104
- }
105
- break;
106
- case ',':
107
- this.adicionarSimbolo(lexico_regular_1.default.VIRGULA);
108
- this.avancar();
109
- break;
110
- case '.':
111
- this.adicionarSimbolo(lexico_regular_1.default.PONTO);
112
- this.avancar();
113
- break;
114
- case '-':
115
- this.inicioSimbolo = this.atual;
116
- this.avancar();
117
- this.adicionarSimbolo(lexico_regular_1.default.SUBTRACAO);
118
- /* if (this.simboloAtual() === '=') {
119
- this.adicionarSimbolo(tiposDeSimbolos.MENOS_IGUAL);
120
- this.avancar();
121
- } else if (this.simboloAtual() === '-') {
122
- this.adicionarSimbolo(tiposDeSimbolos.DECREMENTAR);
123
- this.avancar();
124
- } else {
125
- this.adicionarSimbolo(tiposDeSimbolos.SUBTRACAO);
126
- } */
127
- break;
128
- case '+':
129
- this.inicioSimbolo = this.atual;
130
- this.avancar();
131
- this.adicionarSimbolo(lexico_regular_1.default.ADICAO);
132
- /* if (this.simboloAtual() === '=') {
133
- this.adicionarSimbolo(tiposDeSimbolos.MAIS_IGUAL);
134
- this.avancar();
135
- } else if (this.simboloAtual() === '+') {
136
- this.adicionarSimbolo(tiposDeSimbolos.INCREMENTAR);
137
- this.avancar();
138
- } else {
139
- this.adicionarSimbolo(tiposDeSimbolos.ADICAO);
140
- } */
141
- break;
142
- case '*':
143
- this.inicioSimbolo = this.atual;
144
- this.avancar();
145
- this.adicionarSimbolo(lexico_regular_1.default.MULTIPLICACAO);
146
- break;
147
- case '^':
148
- this.inicioSimbolo = this.atual;
149
- this.avancar();
150
- this.adicionarSimbolo(lexico_regular_1.default.EXPONENCIACAO);
151
- break;
152
- case '=':
153
- this.inicioSimbolo = this.atual;
154
- this.avancar();
155
- switch (this.simboloAtual()) {
156
- case '=':
157
- this.adicionarSimbolo(lexico_regular_1.default.IGUAL_IGUAL);
158
- this.avancar();
159
- break;
160
- case '>':
161
- this.adicionarSimbolo(lexico_regular_1.default.SETA);
162
- this.avancar();
163
- break;
164
- default:
165
- this.adicionarSimbolo(lexico_regular_1.default.IGUAL);
166
- break;
167
- }
168
- break;
169
- case '#':
170
- this.avancarParaProximaLinha();
171
- break;
172
- /* case '&':
173
- this.adicionarSimbolo(tiposDeSimbolos.BIT_AND);
174
- this.avancar();
175
- break;
176
-
177
- case '~':
178
- this.adicionarSimbolo(tiposDeSimbolos.BIT_NOT);
179
- this.avancar();
180
- break;
181
-
182
- case '|':
183
- this.adicionarSimbolo(tiposDeSimbolos.BIT_OR);
184
- this.avancar();
185
- break;
186
- */
187
- case '<':
188
- this.avancar();
189
- switch (this.simboloAtual()) {
190
- case '=':
191
- this.adicionarSimbolo(lexico_regular_1.default.MENOR_IGUAL);
192
- this.avancar();
193
- break;
194
- case '>':
195
- this.adicionarSimbolo(lexico_regular_1.default.DIFERENTE);
196
- this.avancar();
197
- break;
198
- default:
199
- this.adicionarSimbolo(lexico_regular_1.default.MENOR);
200
- break;
201
- }
202
- break;
203
- case '>':
204
- this.avancar();
205
- if (this.simboloAtual() === '=') {
206
- this.adicionarSimbolo(lexico_regular_1.default.MAIOR_IGUAL);
207
- this.avancar();
208
- }
209
- else {
210
- this.adicionarSimbolo(lexico_regular_1.default.MAIOR);
211
- }
212
- break;
213
- case '/':
214
- this.inicioSimbolo = this.atual;
215
- this.avancar();
216
- this.adicionarSimbolo(lexico_regular_1.default.DIVISAO);
217
- /* switch (this.simboloAtual()) {
218
- case '/':
219
- this.avancarParaProximaLinha();
220
- break;
221
- case '*':
222
- this.encontrarFimComentarioAsterisco();
223
- break;
224
- case '=':
225
- this.adicionarSimbolo(tiposDeSimbolos.DIVISAO_IGUAL);
226
- this.avancar();s
227
- break;
228
- default:
229
-
230
- break;
231
- } */
232
- break;
233
- // Esta sessão ignora espaços em branco na tokenização.
234
- // Ponto-e-vírgula é opcional em Delégua, então pode apenas ser ignorado.
235
- case ' ':
236
- case '\0':
237
- case '\r':
238
- case '\t':
239
- case ';':
240
- this.avancar();
241
- break;
242
- case '\n':
243
- this.linha++;
244
- this.avancar();
245
- break;
246
- case '"':
247
- this.avancar();
248
- this.analisarTexto();
249
- this.avancar();
250
- break;
251
- case "'":
252
- this.avancar();
253
- this.analisarCaracter();
254
- this.avancar();
255
- break;
256
- case '_':
257
- this.inicioSimbolo = this.atual;
258
- this.avancar();
259
- this.adicionarSimbolo(lexico_regular_1.default.TRACO_BAIXO);
260
- break;
261
- default:
262
- if (this.eDigito(caractere))
263
- this.analisarNumero();
264
- else if (this.eAlfabeto(caractere))
265
- this.identificarPalavraChave();
266
- else {
267
- this.erros.push({
268
- linha: this.linha + 1,
269
- caractere: caractere,
270
- mensagem: 'Caractere inesperado.',
271
- });
272
- this.avancar();
273
- }
274
- }
275
- }
276
- mapear(codigo, hashArquivo) {
277
- this.erros = [];
278
- this.simbolos = [];
279
- this.inicioSimbolo = 0;
280
- this.atual = 0;
281
- this.linha = 0;
282
- this.codigo = codigo.join('\n') || '';
283
- this.hashArquivo = hashArquivo;
284
- while (!this.eFinalDoCodigo()) {
285
- this.inicioSimbolo = this.atual;
286
- this.analisarToken();
287
- }
288
- return {
289
- simbolos: this.simbolos,
290
- erros: this.erros,
291
- };
292
- }
293
- }
294
- exports.LexadorPotigol = LexadorPotigol;
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.LexadorPotigol = void 0;
7
+ const lexador_base_linha_unica_1 = require("@designliquido/delegua/lexador/lexador-base-linha-unica");
8
+ const palavras_reservadas_1 = require("./palavras-reservadas");
9
+ const lexico_regular_1 = __importDefault(require("../tipos-de-simbolos/lexico-regular"));
10
+ /**
11
+ * Lexador para o dialeto Potigol.
12
+ * Este dialeto é sensível a tamanho de caixa. `Inteiro` é aceito. `inteiro` não.
13
+ */
14
+ class LexadorPotigol extends lexador_base_linha_unica_1.LexadorBaseLinhaUnica {
15
+ constructor() {
16
+ super();
17
+ this.chaveEmTexto = false;
18
+ }
19
+ logicaComumCaracteres(delimitador) {
20
+ while ((this.chaveEmTexto || this.simboloAtual() !== delimitador) && !this.eFinalDoCodigo()) {
21
+ if (this.codigo.charAt(this.atual) === '{') {
22
+ this.chaveEmTexto = true;
23
+ }
24
+ if (this.codigo.charAt(this.atual) === '}') {
25
+ this.chaveEmTexto = false;
26
+ }
27
+ this.avancar();
28
+ }
29
+ if (this.eFinalDoCodigo()) {
30
+ this.erros.push({
31
+ linha: this.linha + 1,
32
+ caractere: this.simboloAnterior(),
33
+ mensagem: 'Cadeia de caracteres não finalizada.',
34
+ });
35
+ return;
36
+ }
37
+ const valor = this.codigo.substring(this.inicioSimbolo + 1, this.atual);
38
+ return valor;
39
+ }
40
+ analisarCaracter() {
41
+ const valor = this.logicaComumCaracteres("'");
42
+ this.adicionarSimbolo(lexico_regular_1.default.CARACTERE, valor);
43
+ }
44
+ analisarTexto() {
45
+ const valor = this.logicaComumCaracteres('"');
46
+ this.adicionarSimbolo(lexico_regular_1.default.TEXTO, valor);
47
+ }
48
+ analisarNumero() {
49
+ let real = false;
50
+ while (this.eDigito(this.simboloAtual())) {
51
+ this.avancar();
52
+ }
53
+ if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
54
+ real = true;
55
+ this.avancar();
56
+ while (this.eDigito(this.simboloAtual())) {
57
+ this.avancar();
58
+ }
59
+ }
60
+ const numeroCompleto = this.codigo.substring(this.inicioSimbolo, this.atual);
61
+ this.adicionarSimbolo(real ? lexico_regular_1.default.REAL : lexico_regular_1.default.INTEIRO, parseFloat(numeroCompleto));
62
+ }
63
+ avancarParaProximaLinha() {
64
+ while (this.codigo[this.atual] !== '\n') {
65
+ this.atual++;
66
+ }
67
+ }
68
+ identificarPalavraChave() {
69
+ while (this.eAlfabetoOuDigito(this.simboloAtual())) {
70
+ this.avancar();
71
+ }
72
+ const codigo = this.codigo.substring(this.inicioSimbolo, this.atual);
73
+ const tipo = codigo in palavras_reservadas_1.palavrasReservadas ? palavras_reservadas_1.palavrasReservadas[codigo] : lexico_regular_1.default.IDENTIFICADOR;
74
+ this.adicionarSimbolo(tipo);
75
+ }
76
+ analisarToken() {
77
+ const caractere = this.simboloAtual();
78
+ switch (caractere) {
79
+ case '[':
80
+ this.adicionarSimbolo(lexico_regular_1.default.COLCHETE_ESQUERDO);
81
+ this.avancar();
82
+ break;
83
+ case ']':
84
+ this.adicionarSimbolo(lexico_regular_1.default.COLCHETE_DIREITO);
85
+ this.avancar();
86
+ break;
87
+ case '(':
88
+ this.adicionarSimbolo(lexico_regular_1.default.PARENTESE_ESQUERDO);
89
+ this.avancar();
90
+ break;
91
+ case ')':
92
+ this.adicionarSimbolo(lexico_regular_1.default.PARENTESE_DIREITO);
93
+ this.avancar();
94
+ break;
95
+ // Até então encontradas apenas em interpolações de texto.
96
+ // Por ora não necessárias.
97
+ /* case '{':
98
+ this.adicionarSimbolo(tiposDeSimbolos.CHAVE_ESQUERDA);
99
+ this.avancar();
100
+ break;
101
+ case '}':
102
+ this.adicionarSimbolo(tiposDeSimbolos.CHAVE_DIREITA);
103
+ this.avancar();
104
+ break; */
105
+ case ':':
106
+ this.inicioSimbolo = this.atual;
107
+ this.avancar();
108
+ if (this.simboloAtual() === '=') {
109
+ this.adicionarSimbolo(lexico_regular_1.default.REATRIBUIR);
110
+ this.avancar();
111
+ }
112
+ else {
113
+ this.adicionarSimbolo(lexico_regular_1.default.DOIS_PONTOS);
114
+ }
115
+ break;
116
+ case ',':
117
+ this.adicionarSimbolo(lexico_regular_1.default.VIRGULA);
118
+ this.avancar();
119
+ break;
120
+ case '.':
121
+ this.adicionarSimbolo(lexico_regular_1.default.PONTO);
122
+ this.avancar();
123
+ break;
124
+ case '-':
125
+ this.inicioSimbolo = this.atual;
126
+ this.avancar();
127
+ this.adicionarSimbolo(lexico_regular_1.default.SUBTRACAO);
128
+ /* if (this.simboloAtual() === '=') {
129
+ this.adicionarSimbolo(tiposDeSimbolos.MENOS_IGUAL);
130
+ this.avancar();
131
+ } else if (this.simboloAtual() === '-') {
132
+ this.adicionarSimbolo(tiposDeSimbolos.DECREMENTAR);
133
+ this.avancar();
134
+ } else {
135
+ this.adicionarSimbolo(tiposDeSimbolos.SUBTRACAO);
136
+ } */
137
+ break;
138
+ case '+':
139
+ this.inicioSimbolo = this.atual;
140
+ this.avancar();
141
+ this.adicionarSimbolo(lexico_regular_1.default.ADICAO);
142
+ /* if (this.simboloAtual() === '=') {
143
+ this.adicionarSimbolo(tiposDeSimbolos.MAIS_IGUAL);
144
+ this.avancar();
145
+ } else if (this.simboloAtual() === '+') {
146
+ this.adicionarSimbolo(tiposDeSimbolos.INCREMENTAR);
147
+ this.avancar();
148
+ } else {
149
+ this.adicionarSimbolo(tiposDeSimbolos.ADICAO);
150
+ } */
151
+ break;
152
+ case '*':
153
+ this.inicioSimbolo = this.atual;
154
+ this.avancar();
155
+ this.adicionarSimbolo(lexico_regular_1.default.MULTIPLICACAO);
156
+ break;
157
+ case '^':
158
+ this.inicioSimbolo = this.atual;
159
+ this.avancar();
160
+ this.adicionarSimbolo(lexico_regular_1.default.EXPONENCIACAO);
161
+ break;
162
+ case '=':
163
+ this.inicioSimbolo = this.atual;
164
+ this.avancar();
165
+ switch (this.simboloAtual()) {
166
+ case '=':
167
+ this.adicionarSimbolo(lexico_regular_1.default.IGUAL_IGUAL);
168
+ this.avancar();
169
+ break;
170
+ case '>':
171
+ this.adicionarSimbolo(lexico_regular_1.default.SETA);
172
+ this.avancar();
173
+ break;
174
+ default:
175
+ this.adicionarSimbolo(lexico_regular_1.default.IGUAL);
176
+ break;
177
+ }
178
+ break;
179
+ case '#':
180
+ this.avancarParaProximaLinha();
181
+ break;
182
+ /* case '&':
183
+ this.adicionarSimbolo(tiposDeSimbolos.BIT_AND);
184
+ this.avancar();
185
+ break;
186
+
187
+ case '~':
188
+ this.adicionarSimbolo(tiposDeSimbolos.BIT_NOT);
189
+ this.avancar();
190
+ break;
191
+
192
+ case '|':
193
+ this.adicionarSimbolo(tiposDeSimbolos.BIT_OR);
194
+ this.avancar();
195
+ break;
196
+ */
197
+ case '<':
198
+ this.avancar();
199
+ switch (this.simboloAtual()) {
200
+ case '=':
201
+ this.adicionarSimbolo(lexico_regular_1.default.MENOR_IGUAL);
202
+ this.avancar();
203
+ break;
204
+ case '>':
205
+ this.adicionarSimbolo(lexico_regular_1.default.DIFERENTE);
206
+ this.avancar();
207
+ break;
208
+ default:
209
+ this.adicionarSimbolo(lexico_regular_1.default.MENOR);
210
+ break;
211
+ }
212
+ break;
213
+ case '>':
214
+ this.avancar();
215
+ if (this.simboloAtual() === '=') {
216
+ this.adicionarSimbolo(lexico_regular_1.default.MAIOR_IGUAL);
217
+ this.avancar();
218
+ }
219
+ else {
220
+ this.adicionarSimbolo(lexico_regular_1.default.MAIOR);
221
+ }
222
+ break;
223
+ case '/':
224
+ this.inicioSimbolo = this.atual;
225
+ this.avancar();
226
+ this.adicionarSimbolo(lexico_regular_1.default.DIVISAO);
227
+ /* switch (this.simboloAtual()) {
228
+ case '/':
229
+ this.avancarParaProximaLinha();
230
+ break;
231
+ case '*':
232
+ this.encontrarFimComentarioAsterisco();
233
+ break;
234
+ case '=':
235
+ this.adicionarSimbolo(tiposDeSimbolos.DIVISAO_IGUAL);
236
+ this.avancar();s
237
+ break;
238
+ default:
239
+
240
+ break;
241
+ } */
242
+ break;
243
+ // Esta sessão ignora espaços em branco na tokenização.
244
+ // Ponto-e-vírgula é opcional em Delégua, então pode apenas ser ignorado.
245
+ case ' ':
246
+ case '\0':
247
+ case '\r':
248
+ case '\t':
249
+ case ';':
250
+ this.avancar();
251
+ break;
252
+ case '\n':
253
+ this.linha++;
254
+ this.avancar();
255
+ break;
256
+ case '"':
257
+ this.avancar();
258
+ this.analisarTexto();
259
+ this.avancar();
260
+ break;
261
+ case "'":
262
+ this.avancar();
263
+ this.analisarCaracter();
264
+ this.avancar();
265
+ break;
266
+ case '_':
267
+ this.inicioSimbolo = this.atual;
268
+ this.avancar();
269
+ this.adicionarSimbolo(lexico_regular_1.default.TRACO_BAIXO);
270
+ break;
271
+ default:
272
+ if (this.eDigito(caractere))
273
+ this.analisarNumero();
274
+ else if (this.eAlfabeto(caractere))
275
+ this.identificarPalavraChave();
276
+ else {
277
+ this.erros.push({
278
+ linha: this.linha + 1,
279
+ caractere: caractere,
280
+ mensagem: 'Caractere inesperado.',
281
+ });
282
+ this.avancar();
283
+ }
284
+ }
285
+ }
286
+ mapear(codigo, hashArquivo) {
287
+ this.erros = [];
288
+ this.simbolos = [];
289
+ this.inicioSimbolo = 0;
290
+ this.atual = 0;
291
+ this.linha = 0;
292
+ this.codigo = codigo.join('\n') || '';
293
+ this.hashArquivo = hashArquivo;
294
+ while (!this.eFinalDoCodigo()) {
295
+ this.inicioSimbolo = this.atual;
296
+ this.analisarToken();
297
+ }
298
+ return {
299
+ simbolos: this.simbolos,
300
+ erros: this.erros,
301
+ };
302
+ }
303
+ }
304
+ exports.LexadorPotigol = LexadorPotigol;
295
305
  //# sourceMappingURL=lexador-potigol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lexador-potigol.js","sourceRoot":"","sources":["../../fontes/lexador/lexador-potigol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lexador-potigol.js","sourceRoot":"","sources":["../../fontes/lexador/lexador-potigol.ts"],"names":[],"mappings":"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"}