@designliquido/delegua 0.2.3 → 0.2.6

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 (95) hide show
  1. package/bin/package.json +4 -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 +32 -18
  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 +2 -1
  28. package/fontes/interfaces/lexador-interface.d.ts +1 -1
  29. package/fontes/interpretador/dialetos/egua-classico.d.ts +5 -2
  30. package/fontes/interpretador/dialetos/egua-classico.js +30 -25
  31. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  32. package/fontes/interpretador/erro-interpretador.d.ts +5 -0
  33. package/fontes/interpretador/erro-interpretador.js +3 -0
  34. package/fontes/interpretador/erro-interpretador.js.map +1 -0
  35. package/fontes/interpretador/index.d.ts +4 -1
  36. package/fontes/interpretador/index.js +34 -29
  37. package/fontes/interpretador/index.js.map +1 -1
  38. package/fontes/interpretador/retorno-interpretador.d.ts +4 -0
  39. package/fontes/interpretador/retorno-interpretador.js +3 -0
  40. package/fontes/interpretador/retorno-interpretador.js.map +1 -0
  41. package/fontes/lexador/dialetos/index.d.ts +1 -1
  42. package/fontes/lexador/dialetos/index.js +1 -1
  43. package/fontes/lexador/dialetos/index.js.map +1 -1
  44. package/fontes/lexador/dialetos/{egua-classico.d.ts → lexador-egua-classico.d.ts} +2 -2
  45. package/fontes/lexador/dialetos/{egua-classico.js → lexador-egua-classico.js} +41 -82
  46. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -0
  47. package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -0
  48. package/fontes/lexador/dialetos/lexador-eguap.js +395 -0
  49. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -0
  50. package/fontes/lexador/dialetos/pragma.d.ts +8 -0
  51. package/fontes/lexador/dialetos/pragma.js +3 -0
  52. package/fontes/lexador/dialetos/pragma.js.map +1 -0
  53. package/fontes/{tiposDeSimbolos.d.ts → lexador/dialetos/tipos-de-simbolos-eguap.d.ts} +2 -1
  54. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js +74 -0
  55. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js.map +1 -0
  56. package/fontes/lexador/index.d.ts +2 -43
  57. package/fontes/lexador/index.js +15 -412
  58. package/fontes/lexador/index.js.map +1 -1
  59. package/fontes/lexador/lexador.d.ts +43 -0
  60. package/fontes/lexador/lexador.js +372 -0
  61. package/fontes/lexador/lexador.js.map +1 -0
  62. package/fontes/lexador/palavras-reservadas.d.ts +35 -0
  63. package/fontes/lexador/palavras-reservadas.js +41 -0
  64. package/fontes/lexador/palavras-reservadas.js.map +1 -0
  65. package/fontes/lexador/retorno-lexador.d.ts +4 -0
  66. package/fontes/lexador/simbolo.d.ts +9 -0
  67. package/fontes/lexador/simbolo.js +17 -0
  68. package/fontes/lexador/simbolo.js.map +1 -0
  69. package/fontes/lexador/tipos-de-simbolos.d.ts +72 -0
  70. package/fontes/{tiposDeSimbolos.js → lexador/tipos-de-simbolos.js} +2 -1
  71. package/fontes/lexador/tipos-de-simbolos.js.map +1 -0
  72. package/fontes/tipos-de-simbolos.d.ts +72 -0
  73. package/fontes/tipos-de-simbolos.js +74 -0
  74. package/fontes/tipos-de-simbolos.js.map +1 -0
  75. package/package.json +4 -3
  76. package/testes/avaliador-sintatico.test.js +2 -2
  77. package/testes/avaliador-sintatico.test.js.map +1 -1
  78. package/testes/biblioteca-global.test.js +43 -43
  79. package/testes/biblioteca-global.test.js.map +1 -1
  80. package/testes/egua-classico/avaliador-sintatico.test.js +7 -16
  81. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  82. package/testes/egua-classico/interpretador.test.js +61 -61
  83. package/testes/egua-classico/interpretador.test.js.map +1 -1
  84. package/testes/egua-classico/resolvedor.test.js +4 -4
  85. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  86. package/testes/eguap/lexador.test.d.ts +1 -0
  87. package/testes/eguap/lexador.test.js +53 -0
  88. package/testes/eguap/lexador.test.js.map +1 -0
  89. package/testes/interpretador.test.js +61 -61
  90. package/testes/interpretador.test.js.map +1 -1
  91. package/testes/resolvedor.test.js +1 -1
  92. package/testes/resolvedor.test.js.map +1 -1
  93. package/fontes/avaliador-sintatico/dialetos/egua-classico.js.map +0 -1
  94. package/fontes/lexador/dialetos/egua-classico.js.map +0 -1
  95. package/fontes/tiposDeSimbolos.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import { SimboloInterface } from "../interfaces";
2
+ export interface ErroInterpretador {
3
+ simbolo?: SimboloInterface;
4
+ mensagem: string;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=erro-interpretador.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erro-interpretador.js","sourceRoot":"","sources":["../../../fontes/interpretador/erro-interpretador.ts"],"names":[],"mappings":""}
@@ -4,6 +4,8 @@ import { InterpretadorInterface, SimboloInterface } from '../interfaces';
4
4
  import { Classe, Enquanto, Escolha, Escreva, Fazer, Funcao, Importar, Para, Se, Tente } from '../declaracoes';
5
5
  import { DeleguaFuncao } from '../estruturas';
6
6
  import { Construto, Super } from '../construtos';
7
+ import { ErroInterpretador } from './erro-interpretador';
8
+ import { RetornoInterpretador } from './retorno-interpretador';
7
9
  /**
8
10
  * O Interpretador visita todos os elementos complexos gerados pelo analisador sintático (Parser),
9
11
  * e de fato executa a lógica de programação descrita no código.
@@ -14,6 +16,7 @@ export declare class Interpretador implements InterpretadorInterface {
14
16
  global: Ambiente;
15
17
  ambiente: Ambiente;
16
18
  locais: Map<Construto, number>;
19
+ erros: ErroInterpretador[];
17
20
  performance: boolean;
18
21
  constructor(Delegua: Delegua, diretorioBase: string, performance?: boolean);
19
22
  resolver(expressao: any, profundidade: number): void;
@@ -59,5 +62,5 @@ export declare class Interpretador implements InterpretadorInterface {
59
62
  visitarExpressaoSuper(expressao: Super): any;
60
63
  paraTexto(objeto: any): any;
61
64
  executar(declaracao: any, mostrarResultado?: boolean): void;
62
- interpretar(objeto: any, locais: Map<Construto, number>): void;
65
+ interpretar(objeto: any, locais: Map<Construto, number>): RetornoInterpretador;
63
66
  }
@@ -29,8 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.Interpretador = void 0;
30
30
  var caminho = __importStar(require("path"));
31
31
  var fs = __importStar(require("fs"));
32
- var perf_hooks_1 = require("perf_hooks");
33
- var tiposDeSimbolos_1 = __importDefault(require("../tiposDeSimbolos"));
32
+ var browser_process_hrtime_1 = __importDefault(require("browser-process-hrtime"));
33
+ var tipos_de_simbolos_1 = __importDefault(require("../lexador/tipos-de-simbolos"));
34
34
  var ambiente_1 = require("../ambiente");
35
35
  var delegua_1 = require("../delegua");
36
36
  var biblioteca_global_1 = __importDefault(require("../bibliotecas/biblioteca-global"));
@@ -50,6 +50,7 @@ var Interpretador = /** @class */ (function () {
50
50
  this.global = new ambiente_1.Ambiente();
51
51
  this.ambiente = this.global;
52
52
  this.locais = new Map();
53
+ this.erros = [];
53
54
  this.global = (0, biblioteca_global_1.default)(this, this.global);
54
55
  }
55
56
  Interpretador.prototype.resolver = function (expressao, profundidade) {
@@ -81,12 +82,12 @@ var Interpretador = /** @class */ (function () {
81
82
  Interpretador.prototype.visitarExpressaoUnaria = function (expressao) {
82
83
  var direita = this.avaliar(expressao.direita);
83
84
  switch (expressao.operador.tipo) {
84
- case tiposDeSimbolos_1.default.SUBTRACAO:
85
+ case tipos_de_simbolos_1.default.SUBTRACAO:
85
86
  this.verificarOperandoNumero(expressao.operador, direita);
86
87
  return -direita;
87
- case tiposDeSimbolos_1.default.NEGACAO:
88
+ case tipos_de_simbolos_1.default.NEGACAO:
88
89
  return !this.eVerdadeiro(direita);
89
- case tiposDeSimbolos_1.default.BIT_NOT:
90
+ case tipos_de_simbolos_1.default.BIT_NOT:
90
91
  return ~direita;
91
92
  }
92
93
  return null;
@@ -107,25 +108,25 @@ var Interpretador = /** @class */ (function () {
107
108
  var esquerda = this.avaliar(expressao.esquerda);
108
109
  var direita = this.avaliar(expressao.direita);
109
110
  switch (expressao.operador.tipo) {
110
- case tiposDeSimbolos_1.default.EXPONENCIACAO:
111
+ case tipos_de_simbolos_1.default.EXPONENCIACAO:
111
112
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
112
113
  return Math.pow(esquerda, direita);
113
- case tiposDeSimbolos_1.default.MAIOR:
114
+ case tipos_de_simbolos_1.default.MAIOR:
114
115
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
115
116
  return Number(esquerda) > Number(direita);
116
- case tiposDeSimbolos_1.default.MAIOR_IGUAL:
117
+ case tipos_de_simbolos_1.default.MAIOR_IGUAL:
117
118
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
118
119
  return Number(esquerda) >= Number(direita);
119
- case tiposDeSimbolos_1.default.MENOR:
120
+ case tipos_de_simbolos_1.default.MENOR:
120
121
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
121
122
  return Number(esquerda) < Number(direita);
122
- case tiposDeSimbolos_1.default.MENOR_IGUAL:
123
+ case tipos_de_simbolos_1.default.MENOR_IGUAL:
123
124
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
124
125
  return Number(esquerda) <= Number(direita);
125
- case tiposDeSimbolos_1.default.SUBTRACAO:
126
+ case tipos_de_simbolos_1.default.SUBTRACAO:
126
127
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
127
128
  return Number(esquerda) - Number(direita);
128
- case tiposDeSimbolos_1.default.ADICAO:
129
+ case tipos_de_simbolos_1.default.ADICAO:
129
130
  if (typeof esquerda === 'number' &&
130
131
  typeof direita === 'number') {
131
132
  return Number(esquerda) + Number(direita);
@@ -133,33 +134,33 @@ var Interpretador = /** @class */ (function () {
133
134
  else {
134
135
  return String(esquerda) + String(direita);
135
136
  }
136
- case tiposDeSimbolos_1.default.DIVISAO:
137
+ case tipos_de_simbolos_1.default.DIVISAO:
137
138
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
138
139
  return Number(esquerda) / Number(direita);
139
- case tiposDeSimbolos_1.default.MULTIPLICACAO:
140
+ case tipos_de_simbolos_1.default.MULTIPLICACAO:
140
141
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
141
142
  return Number(esquerda) * Number(direita);
142
- case tiposDeSimbolos_1.default.MODULO:
143
+ case tipos_de_simbolos_1.default.MODULO:
143
144
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
144
145
  return Number(esquerda) % Number(direita);
145
- case tiposDeSimbolos_1.default.BIT_AND:
146
+ case tipos_de_simbolos_1.default.BIT_AND:
146
147
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
147
148
  return Number(esquerda) & Number(direita);
148
- case tiposDeSimbolos_1.default.BIT_XOR:
149
+ case tipos_de_simbolos_1.default.BIT_XOR:
149
150
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
150
151
  return Number(esquerda) ^ Number(direita);
151
- case tiposDeSimbolos_1.default.BIT_OR:
152
+ case tipos_de_simbolos_1.default.BIT_OR:
152
153
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
153
154
  return Number(esquerda) | Number(direita);
154
- case tiposDeSimbolos_1.default.MENOR_MENOR:
155
+ case tipos_de_simbolos_1.default.MENOR_MENOR:
155
156
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
156
157
  return Number(esquerda) << Number(direita);
157
- case tiposDeSimbolos_1.default.MAIOR_MAIOR:
158
+ case tipos_de_simbolos_1.default.MAIOR_MAIOR:
158
159
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
159
160
  return Number(esquerda) >> Number(direita);
160
- case tiposDeSimbolos_1.default.DIFERENTE:
161
+ case tipos_de_simbolos_1.default.DIFERENTE:
161
162
  return !this.eIgual(esquerda, direita);
162
- case tiposDeSimbolos_1.default.IGUAL_IGUAL:
163
+ case tipos_de_simbolos_1.default.IGUAL_IGUAL:
163
164
  return this.eIgual(esquerda, direita);
164
165
  }
165
166
  return null;
@@ -234,7 +235,7 @@ var Interpretador = /** @class */ (function () {
234
235
  };
235
236
  Interpretador.prototype.visitarExpressaoLogica = function (expressao) {
236
237
  var esquerda = this.avaliar(expressao.esquerda);
237
- if (expressao.operador.tipo === tiposDeSimbolos_1.default.EM) {
238
+ if (expressao.operador.tipo === tipos_de_simbolos_1.default.EM) {
238
239
  var direita = this.avaliar(expressao.direita);
239
240
  if (Array.isArray(direita) || typeof direita === 'string') {
240
241
  return direita.includes(esquerda);
@@ -247,12 +248,12 @@ var Interpretador = /** @class */ (function () {
247
248
  }
248
249
  }
249
250
  // se um estado for verdadeiro, retorna verdadeiro
250
- if (expressao.operador.tipo === tiposDeSimbolos_1.default.OU) {
251
+ if (expressao.operador.tipo === tipos_de_simbolos_1.default.OU) {
251
252
  if (this.eVerdadeiro(esquerda))
252
253
  return esquerda;
253
254
  }
254
255
  // se um estado for falso, retorna falso
255
- if (expressao.operador.tipo === tiposDeSimbolos_1.default.E) {
256
+ if (expressao.operador.tipo === tipos_de_simbolos_1.default.E) {
256
257
  if (!this.eVerdadeiro(esquerda))
257
258
  return esquerda;
258
259
  }
@@ -665,7 +666,8 @@ var Interpretador = /** @class */ (function () {
665
666
  };
666
667
  Interpretador.prototype.interpretar = function (objeto, locais) {
667
668
  this.locais = locais;
668
- var inicioInterpretacao = perf_hooks_1.performance.now();
669
+ this.erros = [];
670
+ var inicioInterpretacao = (0, browser_process_hrtime_1.default)();
669
671
  try {
670
672
  var declaracoes = objeto.declaracoes || objeto;
671
673
  if (declaracoes.length === 1) {
@@ -680,14 +682,17 @@ var Interpretador = /** @class */ (function () {
680
682
  }
681
683
  }
682
684
  catch (erro) {
683
- this.Delegua.erroEmTempoDeExecucao(erro);
685
+ this.erros.push(erro);
684
686
  }
685
687
  finally {
686
- var fimInterpretacao = perf_hooks_1.performance.now();
688
+ var deltaInterpretacao = (0, browser_process_hrtime_1.default)(inicioInterpretacao);
687
689
  if (this.performance) {
688
- console.log("[Interpretador] Tempo para interpreta\u00E7ao: ".concat(fimInterpretacao - inicioInterpretacao, "ms"));
690
+ console.log("[Interpretador] Tempo para interpreta\u00E7ao: ".concat(deltaInterpretacao[0] * 1e9 + deltaInterpretacao[1], "ns"));
689
691
  }
690
692
  }
693
+ return {
694
+ erros: this.erros
695
+ };
691
696
  };
692
697
  return Interpretador;
693
698
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interpretador/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interpretador/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ErroInterpretador } from "./erro-interpretador";
2
+ export interface RetornoInterpretador {
3
+ erros: ErroInterpretador[];
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=retorno-interpretador.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retorno-interpretador.js","sourceRoot":"","sources":["../../../fontes/interpretador/retorno-interpretador.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- export * from './egua-classico';
1
+ export * from './lexador-egua-classico';
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./egua-classico"), exports);
17
+ __exportStar(require("./lexador-egua-classico"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC"}
@@ -15,8 +15,8 @@ export declare class LexadorEguaClassico implements LexadorInterface {
15
15
  atual: number;
16
16
  linha: number;
17
17
  constructor(codigo?: any);
18
- eDigito(caractere: any): boolean;
19
- eAlfabeto(caractere: any): boolean;
18
+ eDigito(caractere: string): boolean;
19
+ eAlfabeto(caractere: string): boolean;
20
20
  eAlfabetoOuDigito(caractere: any): boolean;
21
21
  eFinalDoCodigo(): boolean;
22
22
  avancar(): string;
@@ -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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"}