@designliquido/delegua 0.2.2 → 0.2.5

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 (105) hide show
  1. package/bin/package.json +3 -3
  2. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +67 -0
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.js +663 -0
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -0
  5. package/fontes/avaliador-sintatico/dialetos/{egua-classico.d.ts → avaliador-sintatico-egua-classico.d.ts} +2 -1
  6. package/fontes/avaliador-sintatico/dialetos/{egua-classico.js → avaliador-sintatico-egua-classico.js} +153 -155
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -0
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +80 -0
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +708 -0
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -0
  11. package/fontes/avaliador-sintatico/dialetos/index.d.ts +1 -1
  12. package/fontes/avaliador-sintatico/dialetos/index.js +1 -1
  13. package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -1
  14. package/fontes/avaliador-sintatico/index.d.ts +2 -66
  15. package/fontes/avaliador-sintatico/index.js +15 -661
  16. package/fontes/avaliador-sintatico/index.js.map +1 -1
  17. package/fontes/delegua.d.ts +6 -3
  18. package/fontes/delegua.js +35 -21
  19. package/fontes/delegua.js.map +1 -1
  20. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +4 -3
  21. package/fontes/interfaces/delegua-interface.d.ts +3 -0
  22. package/fontes/interfaces/delegua-interface.js +3 -0
  23. package/fontes/interfaces/delegua-interface.js.map +1 -0
  24. package/fontes/interfaces/index.d.ts +7 -6
  25. package/fontes/interfaces/index.js +1 -0
  26. package/fontes/interfaces/index.js.map +1 -1
  27. package/fontes/interfaces/interpretador-interface.d.ts +4 -5
  28. package/fontes/interfaces/lexador-interface.d.ts +1 -1
  29. package/fontes/interfaces/pilha-interface.d.ts +6 -6
  30. package/fontes/interfaces/resolvedor-interface.d.ts +2 -2
  31. package/fontes/interpretador/dialetos/egua-classico.d.ts +6 -4
  32. package/fontes/interpretador/dialetos/egua-classico.js +34 -31
  33. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  34. package/fontes/interpretador/erro-interpretador.d.ts +5 -0
  35. package/fontes/interpretador/erro-interpretador.js +3 -0
  36. package/fontes/interpretador/erro-interpretador.js.map +1 -0
  37. package/fontes/interpretador/index.d.ts +6 -3
  38. package/fontes/interpretador/index.js +32 -26
  39. package/fontes/interpretador/index.js.map +1 -1
  40. package/fontes/interpretador/retorno-interpretador.d.ts +4 -0
  41. package/fontes/interpretador/retorno-interpretador.js +3 -0
  42. package/fontes/interpretador/retorno-interpretador.js.map +1 -0
  43. package/fontes/lexador/dialetos/index.d.ts +1 -1
  44. package/fontes/lexador/dialetos/index.js +1 -1
  45. package/fontes/lexador/dialetos/index.js.map +1 -1
  46. package/fontes/lexador/dialetos/{egua-classico.d.ts → lexador-egua-classico.d.ts} +2 -2
  47. package/fontes/lexador/dialetos/{egua-classico.js → lexador-egua-classico.js} +41 -82
  48. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -0
  49. package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -0
  50. package/fontes/lexador/dialetos/lexador-eguap.js +395 -0
  51. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -0
  52. package/fontes/lexador/dialetos/pragma.d.ts +8 -0
  53. package/fontes/lexador/dialetos/pragma.js +3 -0
  54. package/fontes/lexador/dialetos/pragma.js.map +1 -0
  55. package/fontes/{tiposDeSimbolos.d.ts → lexador/dialetos/tipos-de-simbolos-eguap.d.ts} +2 -1
  56. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js +74 -0
  57. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js.map +1 -0
  58. package/fontes/lexador/index.d.ts +2 -43
  59. package/fontes/lexador/index.js +15 -412
  60. package/fontes/lexador/index.js.map +1 -1
  61. package/fontes/lexador/lexador.d.ts +43 -0
  62. package/fontes/lexador/lexador.js +372 -0
  63. package/fontes/lexador/lexador.js.map +1 -0
  64. package/fontes/lexador/palavras-reservadas.d.ts +35 -0
  65. package/fontes/lexador/palavras-reservadas.js +41 -0
  66. package/fontes/lexador/palavras-reservadas.js.map +1 -0
  67. package/fontes/lexador/retorno-lexador.d.ts +4 -0
  68. package/fontes/lexador/simbolo.d.ts +9 -0
  69. package/fontes/lexador/simbolo.js +17 -0
  70. package/fontes/lexador/simbolo.js.map +1 -0
  71. package/fontes/lexador/tipos-de-simbolos.d.ts +72 -0
  72. package/fontes/{tiposDeSimbolos.js → lexador/tipos-de-simbolos.js} +2 -1
  73. package/fontes/lexador/tipos-de-simbolos.js.map +1 -0
  74. package/fontes/resolvedor/dialetos/egua-classico.d.ts +3 -3
  75. package/fontes/resolvedor/dialetos/egua-classico.js +5 -4
  76. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  77. package/fontes/resolvedor/index.d.ts +3 -3
  78. package/fontes/resolvedor/index.js +5 -4
  79. package/fontes/resolvedor/index.js.map +1 -1
  80. package/fontes/resolvedor/pilha-escopos.d.ts +1 -1
  81. package/fontes/resolvedor/retorno-resolvedor.d.ts +2 -0
  82. package/fontes/tipos-de-simbolos.d.ts +72 -0
  83. package/fontes/tipos-de-simbolos.js +74 -0
  84. package/fontes/tipos-de-simbolos.js.map +1 -0
  85. package/package.json +3 -3
  86. package/testes/avaliador-sintatico.test.js +2 -2
  87. package/testes/avaliador-sintatico.test.js.map +1 -1
  88. package/testes/biblioteca-global.test.js +57 -57
  89. package/testes/biblioteca-global.test.js.map +1 -1
  90. package/testes/egua-classico/avaliador-sintatico.test.js +7 -16
  91. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  92. package/testes/egua-classico/interpretador.test.js +81 -81
  93. package/testes/egua-classico/interpretador.test.js.map +1 -1
  94. package/testes/egua-classico/resolvedor.test.js +4 -4
  95. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  96. package/testes/eguap/lexador.test.d.ts +1 -0
  97. package/testes/eguap/lexador.test.js +53 -0
  98. package/testes/eguap/lexador.test.js.map +1 -0
  99. package/testes/interpretador.test.js +81 -81
  100. package/testes/interpretador.test.js.map +1 -1
  101. package/testes/resolvedor.test.js +1 -1
  102. package/testes/resolvedor.test.js.map +1 -1
  103. package/fontes/avaliador-sintatico/dialetos/egua-classico.js.map +0 -1
  104. package/fontes/lexador/dialetos/egua-classico.js.map +0 -1
  105. package/fontes/tiposDeSimbolos.js.map +0 -1
@@ -4,50 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LexadorEguaClassico = void 0;
7
- var tiposDeSimbolos_1 = __importDefault(require("../../tiposDeSimbolos"));
8
- var palavrasReservadas = {
9
- e: tiposDeSimbolos_1.default.E,
10
- em: tiposDeSimbolos_1.default.EM,
11
- classe: tiposDeSimbolos_1.default.CLASSE,
12
- senão: tiposDeSimbolos_1.default.SENÃO,
13
- falso: tiposDeSimbolos_1.default.FALSO,
14
- para: tiposDeSimbolos_1.default.PARA,
15
- função: tiposDeSimbolos_1.default.FUNÇÃO,
16
- se: tiposDeSimbolos_1.default.SE,
17
- senãose: tiposDeSimbolos_1.default.SENÃOSE,
18
- nulo: tiposDeSimbolos_1.default.NULO,
19
- ou: tiposDeSimbolos_1.default.OU,
20
- escreva: tiposDeSimbolos_1.default.ESCREVA,
21
- retorna: tiposDeSimbolos_1.default.RETORNA,
22
- super: tiposDeSimbolos_1.default.SUPER,
23
- isto: tiposDeSimbolos_1.default.ISTO,
24
- verdadeiro: tiposDeSimbolos_1.default.VERDADEIRO,
25
- var: tiposDeSimbolos_1.default.VARIAVEL,
26
- fazer: tiposDeSimbolos_1.default.FAZER,
27
- enquanto: tiposDeSimbolos_1.default.ENQUANTO,
28
- pausa: tiposDeSimbolos_1.default.PAUSA,
29
- continua: tiposDeSimbolos_1.default.CONTINUA,
30
- escolha: tiposDeSimbolos_1.default.ESCOLHA,
31
- caso: tiposDeSimbolos_1.default.CASO,
32
- padrao: tiposDeSimbolos_1.default.PADRAO,
33
- importar: tiposDeSimbolos_1.default.IMPORTAR,
34
- tente: tiposDeSimbolos_1.default.TENTE,
35
- pegue: tiposDeSimbolos_1.default.PEGUE,
36
- finalmente: tiposDeSimbolos_1.default.FINALMENTE,
37
- herda: tiposDeSimbolos_1.default.HERDA,
38
- };
39
- var Simbolo = /** @class */ (function () {
40
- function Simbolo(tipo, lexema, literal, linha) {
41
- this.tipo = tipo;
42
- this.lexema = lexema;
43
- this.literal = literal;
44
- this.linha = linha;
45
- }
46
- Simbolo.prototype.paraTexto = function () {
47
- return this.tipo + ' ' + this.lexema + ' ' + this.literal;
48
- };
49
- return Simbolo;
50
- }());
7
+ var tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
8
+ var simbolo_1 = require("../simbolo");
9
+ var palavras_reservadas_1 = __importDefault(require("../palavras-reservadas"));
51
10
  /**
52
11
  * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
53
12
  * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
@@ -111,7 +70,7 @@ var LexadorEguaClassico = /** @class */ (function () {
111
70
  LexadorEguaClassico.prototype.adicionarSimbolo = function (tipo, literal) {
112
71
  if (literal === void 0) { literal = null; }
113
72
  var texto = this.codigo.substring(this.inicioSimbolo, this.atual);
114
- this.simbolos.push(new Simbolo(tipo, texto, literal, this.linha));
73
+ this.simbolos.push(new simbolo_1.Simbolo(tipo, texto, literal, this.linha));
115
74
  };
116
75
  LexadorEguaClassico.prototype.proximoIgualA = function (esperado) {
117
76
  if (this.eFinalDoCodigo()) {
@@ -153,7 +112,7 @@ var LexadorEguaClassico = /** @class */ (function () {
153
112
  }
154
113
  this.avancar();
155
114
  var valor = this.codigo.substring(this.inicioSimbolo + 1, this.atual - 1);
156
- this.adicionarSimbolo(tiposDeSimbolos_1.default.TEXTO, valor);
115
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.TEXTO, valor);
157
116
  };
158
117
  LexadorEguaClassico.prototype.analisarNumero = function () {
159
118
  while (this.eDigito(this.simboloAtual())) {
@@ -166,110 +125,110 @@ var LexadorEguaClassico = /** @class */ (function () {
166
125
  }
167
126
  }
168
127
  var numeroCompleto = this.codigo.substring(this.inicioSimbolo, this.atual);
169
- this.adicionarSimbolo(tiposDeSimbolos_1.default.NUMERO, parseFloat(numeroCompleto));
128
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.NUMERO, parseFloat(numeroCompleto));
170
129
  };
171
130
  LexadorEguaClassico.prototype.identificarPalavraChave = function () {
172
131
  while (this.eAlfabetoOuDigito(this.simboloAtual())) {
173
132
  this.avancar();
174
133
  }
175
134
  var codigo = this.codigo.substring(this.inicioSimbolo, this.atual);
176
- var tipo = codigo in palavrasReservadas
177
- ? palavrasReservadas[codigo]
178
- : tiposDeSimbolos_1.default.IDENTIFICADOR;
135
+ var tipo = codigo in palavras_reservadas_1.default
136
+ ? palavras_reservadas_1.default[codigo]
137
+ : tipos_de_simbolos_1.default.IDENTIFICADOR;
179
138
  this.adicionarSimbolo(tipo);
180
139
  };
181
140
  LexadorEguaClassico.prototype.analisarToken = function () {
182
141
  var caractere = this.avancar();
183
142
  switch (caractere) {
184
143
  case '[':
185
- this.adicionarSimbolo(tiposDeSimbolos_1.default.COLCHETE_ESQUERDO);
144
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.COLCHETE_ESQUERDO);
186
145
  break;
187
146
  case ']':
188
- this.adicionarSimbolo(tiposDeSimbolos_1.default.COLCHETE_DIREITO);
147
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.COLCHETE_DIREITO);
189
148
  break;
190
149
  case '(':
191
- this.adicionarSimbolo(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO);
150
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO);
192
151
  break;
193
152
  case ')':
194
- this.adicionarSimbolo(tiposDeSimbolos_1.default.PARENTESE_DIREITO);
153
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.PARENTESE_DIREITO);
195
154
  break;
196
155
  case '{':
197
- this.adicionarSimbolo(tiposDeSimbolos_1.default.CHAVE_ESQUERDA);
156
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.CHAVE_ESQUERDA);
198
157
  break;
199
158
  case '}':
200
- this.adicionarSimbolo(tiposDeSimbolos_1.default.CHAVE_DIREITA);
159
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.CHAVE_DIREITA);
201
160
  break;
202
161
  case ',':
203
- this.adicionarSimbolo(tiposDeSimbolos_1.default.VIRGULA);
162
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.VIRGULA);
204
163
  break;
205
164
  case '.':
206
- this.adicionarSimbolo(tiposDeSimbolos_1.default.PONTO);
165
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.PONTO);
207
166
  break;
208
167
  case '-':
209
- this.adicionarSimbolo(tiposDeSimbolos_1.default.SUBTRACAO);
168
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.SUBTRACAO);
210
169
  break;
211
170
  case '+':
212
- this.adicionarSimbolo(tiposDeSimbolos_1.default.ADICAO);
171
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.ADICAO);
213
172
  break;
214
173
  case ':':
215
- this.adicionarSimbolo(tiposDeSimbolos_1.default.DOIS_PONTOS);
174
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.DOIS_PONTOS);
216
175
  break;
217
176
  case ';':
218
- this.adicionarSimbolo(tiposDeSimbolos_1.default.PONTO_E_VIRGULA);
177
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.PONTO_E_VIRGULA);
219
178
  break;
220
179
  case '%':
221
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MODULO);
180
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MODULO);
222
181
  break;
223
182
  case '*':
224
183
  if (this.simboloAtual() === '*') {
225
184
  this.avancar();
226
- this.adicionarSimbolo(tiposDeSimbolos_1.default.EXPONENCIACAO);
185
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.EXPONENCIACAO);
227
186
  break;
228
187
  }
229
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MULTIPLICACAO);
188
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MULTIPLICACAO);
230
189
  break;
231
190
  case '!':
232
191
  this.adicionarSimbolo(this.proximoIgualA('=')
233
- ? tiposDeSimbolos_1.default.DIFERENTE
234
- : tiposDeSimbolos_1.default.NEGACAO);
192
+ ? tipos_de_simbolos_1.default.DIFERENTE
193
+ : tipos_de_simbolos_1.default.NEGACAO);
235
194
  break;
236
195
  case '=':
237
196
  this.adicionarSimbolo(this.proximoIgualA('=')
238
- ? tiposDeSimbolos_1.default.IGUAL_IGUAL
239
- : tiposDeSimbolos_1.default.IGUAL);
197
+ ? tipos_de_simbolos_1.default.IGUAL_IGUAL
198
+ : tipos_de_simbolos_1.default.IGUAL);
240
199
  break;
241
200
  case '&':
242
- this.adicionarSimbolo(tiposDeSimbolos_1.default.BIT_AND);
201
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_AND);
243
202
  break;
244
203
  case '~':
245
- this.adicionarSimbolo(tiposDeSimbolos_1.default.BIT_NOT);
204
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_NOT);
246
205
  break;
247
206
  case '|':
248
- this.adicionarSimbolo(tiposDeSimbolos_1.default.BIT_OR);
207
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_OR);
249
208
  break;
250
209
  case '^':
251
- this.adicionarSimbolo(tiposDeSimbolos_1.default.BIT_XOR);
210
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_XOR);
252
211
  break;
253
212
  case '<':
254
213
  if (this.proximoIgualA('=')) {
255
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MENOR_IGUAL);
214
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR_IGUAL);
256
215
  }
257
216
  else if (this.proximoIgualA('<')) {
258
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MENOR_MENOR);
217
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR_MENOR);
259
218
  }
260
219
  else {
261
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MENOR);
220
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR);
262
221
  }
263
222
  break;
264
223
  case '>':
265
224
  if (this.proximoIgualA('=')) {
266
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MAIOR_IGUAL);
225
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR_IGUAL);
267
226
  }
268
227
  else if (this.proximoIgualA('>')) {
269
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MAIOR_MAIOR);
228
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR_MAIOR);
270
229
  }
271
230
  else {
272
- this.adicionarSimbolo(tiposDeSimbolos_1.default.MAIOR);
231
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR);
273
232
  }
274
233
  break;
275
234
  case '/':
@@ -279,7 +238,7 @@ var LexadorEguaClassico = /** @class */ (function () {
279
238
  this.avancar();
280
239
  }
281
240
  else {
282
- this.adicionarSimbolo(tiposDeSimbolos_1.default.DIVISAO);
241
+ this.adicionarSimbolo(tipos_de_simbolos_1.default.DIVISAO);
283
242
  }
284
243
  break;
285
244
  // Esta sessão ignora espaços em branco na tokenização
@@ -322,7 +281,7 @@ var LexadorEguaClassico = /** @class */ (function () {
322
281
  this.inicioSimbolo = this.atual;
323
282
  this.analisarToken();
324
283
  }
325
- this.simbolos.push(new Simbolo(tiposDeSimbolos_1.default.EOF, '', null, this.linha));
284
+ this.simbolos.push(new simbolo_1.Simbolo(tipos_de_simbolos_1.default.EOF, '', null, this.linha));
326
285
  return {
327
286
  simbolos: this.simbolos,
328
287
  erros: this.erros
@@ -331,4 +290,4 @@ var LexadorEguaClassico = /** @class */ (function () {
331
290
  return LexadorEguaClassico;
332
291
  }());
333
292
  exports.LexadorEguaClassico = LexadorEguaClassico;
334
- //# sourceMappingURL=egua-classico.js.map
293
+ //# sourceMappingURL=lexador-egua-classico.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexador-egua-classico.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/lexador-egua-classico.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { LexadorInterface, SimboloInterface } from "../../interfaces";
2
+ import { ErroLexador } from "../erro-lexador";
3
+ import { RetornoLexador } from "../retorno-lexador";
4
+ import { Pragma } from "./pragma";
5
+ /**
6
+ * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
7
+ * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
8
+ * Também é responsável por mapear as palavras reservadas da linguagem, que não podem ser usadas por outras
9
+ * estruturas, tais como nomes de variáveis, funções, literais, classes e assim por diante.
10
+ *
11
+ * Este lexador é diferente dos demais, porque também produz uma estrutura de dados de pragmas, que explica,
12
+ * por exemplo quantos espaços há na frente de cada linha. Assim como a linguagem Python, os blocos de
13
+ * escopo são definidos pelo número de espaços à frente do código.
14
+ */
15
+ export declare class LexadorEguaP implements LexadorInterface {
16
+ codigo: string[];
17
+ simbolos: SimboloInterface[];
18
+ erros: ErroLexador[];
19
+ pragmas: {
20
+ [linha: number]: Pragma;
21
+ };
22
+ inicioSimbolo: number;
23
+ atual: number;
24
+ linha: number;
25
+ performance: boolean;
26
+ constructor(performance?: boolean);
27
+ eDigito(caractere: string): boolean;
28
+ eAlfabeto(caractere: string): boolean;
29
+ eAlfabetoOuDigito(caractere: string): boolean;
30
+ /**
31
+ * Indica se o código está na última linha.
32
+ * @returns Verdadeiro se contador de linhas está na última linha.
33
+ * Falso caso contrário.
34
+ */
35
+ eUltimaLinha(): boolean;
36
+ eFinalDaLinha(): boolean;
37
+ eFinalDoCodigo(): boolean;
38
+ avancar(): void;
39
+ adicionarSimbolo(tipo: any, literal?: any): void;
40
+ proximoIgualA(esperado: any): boolean;
41
+ simboloAtual(): string;
42
+ proximoSimbolo(): string;
43
+ simboloAnterior(): string;
44
+ analisarTexto(delimitador?: string): void;
45
+ analisarNumero(): void;
46
+ identificarPalavraChave(): void;
47
+ analisarIndentacao(): void;
48
+ avancarParaProximaLinha(): void;
49
+ analisarToken(): void;
50
+ mapear(codigo?: string[]): RetornoLexador;
51
+ }