@designliquido/delegua 0.9.3 → 0.9.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 (235) hide show
  1. package/README.md +25 -3
  2. package/bin/delegua +1 -1
  3. package/bin/delegua.cmd +1 -1
  4. package/bin/package.json +7 -5
  5. package/coverage/lcov-report/sorter.js +4 -4
  6. package/coverage/lcov-report/sorter.js.map +1 -1
  7. package/execucao.d.ts +1 -0
  8. package/execucao.js +29 -0
  9. package/execucao.js.map +1 -0
  10. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +108 -105
  11. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  12. package/fontes/avaliador-sintatico/avaliador-sintatico.js +226 -232
  13. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +35 -55
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +211 -216
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +231 -237
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +3 -0
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +188 -121
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  23. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +6 -24
  24. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -1
  25. package/fontes/bibliotecas/biblioteca-global.js +206 -367
  26. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  27. package/fontes/bibliotecas/importar-biblioteca.js +28 -29
  28. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  29. package/fontes/bibliotecas/primitivas-texto.js +9 -22
  30. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  31. package/fontes/bibliotecas/primitivas-vetor.js +12 -14
  32. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  33. package/fontes/construtos/acesso-indice-variavel.js +6 -50
  34. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  35. package/fontes/construtos/acesso-metodo.js +6 -50
  36. package/fontes/construtos/acesso-metodo.js.map +1 -1
  37. package/fontes/construtos/agrupamento.js +6 -50
  38. package/fontes/construtos/agrupamento.js.map +1 -1
  39. package/fontes/construtos/atribuicao-sobrescrita.js +6 -50
  40. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  41. package/fontes/construtos/atribuir.js +6 -50
  42. package/fontes/construtos/atribuir.js.map +1 -1
  43. package/fontes/construtos/binario.js +6 -50
  44. package/fontes/construtos/binario.js.map +1 -1
  45. package/fontes/construtos/chamada.js +6 -50
  46. package/fontes/construtos/chamada.js.map +1 -1
  47. package/fontes/construtos/definir-valor.js +6 -50
  48. package/fontes/construtos/definir-valor.js.map +1 -1
  49. package/fontes/construtos/dicionario.js +6 -50
  50. package/fontes/construtos/dicionario.js.map +1 -1
  51. package/fontes/construtos/funcao.d.ts +2 -2
  52. package/fontes/construtos/funcao.js +6 -47
  53. package/fontes/construtos/funcao.js.map +1 -1
  54. package/fontes/construtos/isto.js +6 -47
  55. package/fontes/construtos/isto.js.map +1 -1
  56. package/fontes/construtos/literal.js +6 -47
  57. package/fontes/construtos/literal.js.map +1 -1
  58. package/fontes/construtos/logico.js +6 -50
  59. package/fontes/construtos/logico.js.map +1 -1
  60. package/fontes/construtos/super.js +6 -47
  61. package/fontes/construtos/super.js.map +1 -1
  62. package/fontes/construtos/unario.js +6 -50
  63. package/fontes/construtos/unario.js.map +1 -1
  64. package/fontes/construtos/variavel.js +6 -47
  65. package/fontes/construtos/variavel.js.map +1 -1
  66. package/fontes/construtos/vetor.js +6 -50
  67. package/fontes/construtos/vetor.js.map +1 -1
  68. package/fontes/declaracoes/bloco.js +9 -70
  69. package/fontes/declaracoes/bloco.js.map +1 -1
  70. package/fontes/declaracoes/classe.js +11 -72
  71. package/fontes/declaracoes/classe.js.map +1 -1
  72. package/fontes/declaracoes/continua.js +8 -65
  73. package/fontes/declaracoes/continua.js.map +1 -1
  74. package/fontes/declaracoes/declaracao.js +6 -47
  75. package/fontes/declaracoes/declaracao.js.map +1 -1
  76. package/fontes/declaracoes/enquanto.js +10 -71
  77. package/fontes/declaracoes/enquanto.js.map +1 -1
  78. package/fontes/declaracoes/escolha.js +11 -72
  79. package/fontes/declaracoes/escolha.js.map +1 -1
  80. package/fontes/declaracoes/escreva.js +9 -70
  81. package/fontes/declaracoes/escreva.js.map +1 -1
  82. package/fontes/declaracoes/expressao.js +9 -70
  83. package/fontes/declaracoes/expressao.js.map +1 -1
  84. package/fontes/declaracoes/fazer.js +10 -71
  85. package/fontes/declaracoes/fazer.js.map +1 -1
  86. package/fontes/declaracoes/funcao.js +10 -68
  87. package/fontes/declaracoes/funcao.js.map +1 -1
  88. package/fontes/declaracoes/importar.js +10 -71
  89. package/fontes/declaracoes/importar.js.map +1 -1
  90. package/fontes/declaracoes/leia.js +9 -70
  91. package/fontes/declaracoes/leia.js.map +1 -1
  92. package/fontes/declaracoes/para.js +12 -73
  93. package/fontes/declaracoes/para.js.map +1 -1
  94. package/fontes/declaracoes/retorna.js +10 -71
  95. package/fontes/declaracoes/retorna.js.map +1 -1
  96. package/fontes/declaracoes/se.js +12 -73
  97. package/fontes/declaracoes/se.js.map +1 -1
  98. package/fontes/declaracoes/sustar.js +8 -65
  99. package/fontes/declaracoes/sustar.js.map +1 -1
  100. package/fontes/declaracoes/tente.js +12 -73
  101. package/fontes/declaracoes/tente.js.map +1 -1
  102. package/fontes/declaracoes/var.js +10 -71
  103. package/fontes/declaracoes/var.js.map +1 -1
  104. package/fontes/delegua.js +117 -200
  105. package/fontes/delegua.js.map +1 -1
  106. package/fontes/depuracao/cyrb53.js +3 -4
  107. package/fontes/depuracao/cyrb53.js.map +1 -1
  108. package/fontes/depuracao/servidor-depuracao.js +125 -209
  109. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  110. package/fontes/espaco-variaveis.js +3 -4
  111. package/fontes/espaco-variaveis.js.map +1 -1
  112. package/fontes/estruturas/chamavel.js +6 -9
  113. package/fontes/estruturas/chamavel.js.map +1 -1
  114. package/fontes/estruturas/classe-padrao.js +17 -35
  115. package/fontes/estruturas/classe-padrao.js.map +1 -1
  116. package/fontes/estruturas/delegua-classe.d.ts +2 -2
  117. package/fontes/estruturas/delegua-classe.js +21 -39
  118. package/fontes/estruturas/delegua-classe.js.map +1 -1
  119. package/fontes/estruturas/delegua-funcao.js +48 -114
  120. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  121. package/fontes/estruturas/funcao-padrao.js +13 -75
  122. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  123. package/fontes/estruturas/metodo-primitiva.js +11 -39
  124. package/fontes/estruturas/metodo-primitiva.js.map +1 -1
  125. package/fontes/estruturas/modulo.js +6 -7
  126. package/fontes/estruturas/modulo.js.map +1 -1
  127. package/fontes/estruturas/objeto-delegua-classe.d.ts +3 -3
  128. package/fontes/estruturas/objeto-delegua-classe.js +12 -13
  129. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  130. package/fontes/estruturas/objeto-padrao.js +9 -11
  131. package/fontes/estruturas/objeto-padrao.js.map +1 -1
  132. package/fontes/excecoes/erro-em-tempo-de-execucao.js +8 -26
  133. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
  134. package/fontes/importador/importador.js +21 -22
  135. package/fontes/importador/importador.js.map +1 -1
  136. package/fontes/interfaces/parametro-interface.d.ts +1 -1
  137. package/fontes/interpretador/dialetos/egua-classico.js +592 -1019
  138. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  139. package/fontes/interpretador/inferenciador.js +1 -1
  140. package/fontes/interpretador/inferenciador.js.map +1 -1
  141. package/fontes/interpretador/interpretador-com-depuracao.js +186 -336
  142. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  143. package/fontes/interpretador/interpretador.js +706 -1175
  144. package/fontes/interpretador/interpretador.js.map +1 -1
  145. package/fontes/interpretador/pilha-escopos-execucao.js +52 -57
  146. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  147. package/fontes/lexador/dialetos/lexador-birl.d.ts +1 -0
  148. package/fontes/lexador/dialetos/lexador-birl.js +55 -64
  149. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  150. package/fontes/lexador/dialetos/lexador-egua-classico.js +43 -46
  151. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  152. package/fontes/lexador/dialetos/lexador-eguap.js +59 -63
  153. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  154. package/fontes/lexador/dialetos/lexador-visualg.js +45 -54
  155. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  156. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +1 -1
  157. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
  158. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
  159. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js.map +1 -1
  160. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +24 -0
  161. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +25 -1
  162. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
  163. package/fontes/lexador/lexador-base-linha-unica.js +28 -29
  164. package/fontes/lexador/lexador-base-linha-unica.js.map +1 -1
  165. package/fontes/lexador/lexador.js +53 -57
  166. package/fontes/lexador/lexador.js.map +1 -1
  167. package/fontes/lexador/palavras-reservadas.js +1 -1
  168. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  169. package/fontes/lexador/simbolo.js +5 -6
  170. package/fontes/lexador/simbolo.js.map +1 -1
  171. package/fontes/quebras/index.js +11 -42
  172. package/fontes/quebras/index.js.map +1 -1
  173. package/fontes/resolvedor/dialetos/egua-classico.js +143 -144
  174. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  175. package/fontes/resolvedor/erro-resolvedor.js +6 -24
  176. package/fontes/resolvedor/erro-resolvedor.js.map +1 -1
  177. package/fontes/resolvedor/pilha-escopos.js +11 -12
  178. package/fontes/resolvedor/pilha-escopos.js.map +1 -1
  179. package/fontes/tipos-de-simbolos/birl.d.ts +1 -0
  180. package/fontes/tipos-de-simbolos/birl.js +1 -0
  181. package/fontes/tipos-de-simbolos/birl.js.map +1 -1
  182. package/fontes/tipos-de-simbolos/comum.d.ts +2 -0
  183. package/fontes/tipos-de-simbolos/comum.js +2 -0
  184. package/fontes/tipos-de-simbolos/comum.js.map +1 -1
  185. package/fontes/tipos-de-simbolos/visualg.d.ts +9 -0
  186. package/fontes/tipos-de-simbolos/visualg.js +9 -0
  187. package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
  188. package/index.d.ts +4 -0
  189. package/index.js +4 -26
  190. package/index.js.map +1 -1
  191. package/jest.config.js +9 -47
  192. package/jest.config.js.map +1 -1
  193. package/package.json +7 -5
  194. package/testes/__mocks__/estatistica.js +1 -1
  195. package/testes/__mocks__/estatistica.js.map +1 -1
  196. package/testes/__mocks__/fisica.js +1 -1
  197. package/testes/__mocks__/fisica.js.map +1 -1
  198. package/testes/__mocks__/matematica.js +1 -1
  199. package/testes/__mocks__/matematica.js.map +1 -1
  200. package/testes/avaliador-sintatico.test.js +27 -27
  201. package/testes/avaliador-sintatico.test.js.map +1 -1
  202. package/testes/biblioteca-global.test.js +197 -440
  203. package/testes/biblioteca-global.test.js.map +1 -1
  204. package/testes/birl/avaliador-sintatico.test.js +8 -8
  205. package/testes/birl/avaliador-sintatico.test.js.map +1 -1
  206. package/testes/birl/lexador.test.js +10 -10
  207. package/testes/birl/lexador.test.js.map +1 -1
  208. package/testes/delegua.test.js +7 -7
  209. package/testes/delegua.test.js.map +1 -1
  210. package/testes/egua-classico/avaliador-sintatico.test.js +14 -14
  211. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  212. package/testes/egua-classico/delegua.test.js +5 -5
  213. package/testes/egua-classico/delegua.test.js.map +1 -1
  214. package/testes/egua-classico/interpretador.test.js +180 -396
  215. package/testes/egua-classico/interpretador.test.js.map +1 -1
  216. package/testes/egua-classico/lexador.test.js +23 -23
  217. package/testes/egua-classico/lexador.test.js.map +1 -1
  218. package/testes/egua-classico/resolvedor.test.js +12 -12
  219. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  220. package/testes/eguap/avaliador-sintatico.test.js +11 -11
  221. package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
  222. package/testes/eguap/interpretador.test.js +189 -405
  223. package/testes/eguap/interpretador.test.js.map +1 -1
  224. package/testes/eguap/lexador.test.js +18 -18
  225. package/testes/eguap/lexador.test.js.map +1 -1
  226. package/testes/interpretador.test.js +431 -908
  227. package/testes/interpretador.test.js.map +1 -1
  228. package/testes/lexador.test.js +42 -42
  229. package/testes/lexador.test.js.map +1 -1
  230. package/testes/visualg/avaliador-sintatico.test.js +23 -23
  231. package/testes/visualg/avaliador-sintatico.test.js.map +1 -1
  232. package/testes/visualg/interpretador.test.js +16 -61
  233. package/testes/visualg/interpretador.test.js.map +1 -1
  234. package/testes/visualg/lexador.test.js +15 -15
  235. package/testes/visualg/lexador.test.js.map +1 -1
@@ -4,24 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AvaliadorSintaticoEguaClassico = void 0;
7
- var construtos_1 = require("../../construtos");
8
- var erro_avaliador_sintatico_1 = require("../erro-avaliador-sintatico");
9
- var declaracoes_1 = require("../../declaracoes");
10
- var egua_classico_1 = __importDefault(require("../../tipos-de-simbolos/egua-classico"));
7
+ const construtos_1 = require("../../construtos");
8
+ const erro_avaliador_sintatico_1 = require("../erro-avaliador-sintatico");
9
+ const declaracoes_1 = require("../../declaracoes");
10
+ const egua_classico_1 = __importDefault(require("../../tipos-de-simbolos/egua-classico"));
11
11
  /**
12
12
  * O avaliador sintático (Parser) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
13
13
  * Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
14
14
  */
15
- var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
16
- function AvaliadorSintaticoEguaClassico(simbolos) {
15
+ class AvaliadorSintaticoEguaClassico {
16
+ constructor(simbolos) {
17
17
  this.simbolos = simbolos;
18
18
  this.atual = 0;
19
19
  this.blocos = 0;
20
20
  }
21
- AvaliadorSintaticoEguaClassico.prototype.declaracaoLeia = function () {
21
+ declaracaoLeia() {
22
22
  throw new Error('Método não implementado.');
23
- };
24
- AvaliadorSintaticoEguaClassico.prototype.sincronizar = function () {
23
+ }
24
+ sincronizar() {
25
25
  this.avancarEDevolverAnterior();
26
26
  while (!this.estaNoFinal()) {
27
27
  if (this.simboloAnterior().tipo === egua_classico_1.default.PONTO_E_VIRGULA)
@@ -39,73 +39,69 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
39
39
  }
40
40
  this.avancarEDevolverAnterior();
41
41
  }
42
- };
43
- AvaliadorSintaticoEguaClassico.prototype.erro = function (simbolo, mensagemDeErro) {
44
- var excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simbolo, mensagemDeErro);
42
+ }
43
+ erro(simbolo, mensagemDeErro) {
44
+ const excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simbolo, mensagemDeErro);
45
45
  this.erros.push(excecao);
46
46
  return excecao;
47
- };
48
- AvaliadorSintaticoEguaClassico.prototype.consumir = function (tipo, mensagemDeErro) {
47
+ }
48
+ consumir(tipo, mensagemDeErro) {
49
49
  if (this.verificarTipoSimboloAtual(tipo))
50
50
  return this.avancarEDevolverAnterior();
51
51
  else
52
52
  throw this.erro(this.simboloAtual(), mensagemDeErro);
53
- };
54
- AvaliadorSintaticoEguaClassico.prototype.verificarTipoSimboloAtual = function (tipo) {
53
+ }
54
+ verificarTipoSimboloAtual(tipo) {
55
55
  if (this.estaNoFinal())
56
56
  return false;
57
57
  return this.simboloAtual().tipo === tipo;
58
- };
59
- AvaliadorSintaticoEguaClassico.prototype.verificarTipoProximoSimbolo = function (tipo) {
58
+ }
59
+ verificarTipoProximoSimbolo(tipo) {
60
60
  if (this.estaNoFinal())
61
61
  return false;
62
62
  return this.simbolos[this.atual + 1].tipo === tipo;
63
- };
64
- AvaliadorSintaticoEguaClassico.prototype.simboloAtual = function () {
63
+ }
64
+ simboloAtual() {
65
65
  return this.simbolos[this.atual];
66
- };
67
- AvaliadorSintaticoEguaClassico.prototype.simboloAnterior = function () {
66
+ }
67
+ simboloAnterior() {
68
68
  return this.simbolos[this.atual - 1];
69
- };
70
- AvaliadorSintaticoEguaClassico.prototype.simboloNaPosicao = function (posicao) {
69
+ }
70
+ simboloNaPosicao(posicao) {
71
71
  return this.simbolos[this.atual + posicao];
72
- };
73
- AvaliadorSintaticoEguaClassico.prototype.estaNoFinal = function () {
72
+ }
73
+ estaNoFinal() {
74
74
  return this.simboloAtual().tipo === egua_classico_1.default.EOF;
75
- };
76
- AvaliadorSintaticoEguaClassico.prototype.avancarEDevolverAnterior = function () {
75
+ }
76
+ avancarEDevolverAnterior() {
77
77
  if (!this.estaNoFinal())
78
78
  this.atual += 1;
79
79
  return this.simboloAnterior();
80
- };
81
- AvaliadorSintaticoEguaClassico.prototype.verificarSeSimboloAtualEIgualA = function () {
82
- var argumentos = [];
83
- for (var _i = 0; _i < arguments.length; _i++) {
84
- argumentos[_i] = arguments[_i];
85
- }
86
- for (var i = 0; i < argumentos.length; i++) {
87
- var tipoAtual = argumentos[i];
80
+ }
81
+ verificarSeSimboloAtualEIgualA(...argumentos) {
82
+ for (let i = 0; i < argumentos.length; i++) {
83
+ const tipoAtual = argumentos[i];
88
84
  if (this.verificarTipoSimboloAtual(tipoAtual)) {
89
85
  this.avancarEDevolverAnterior();
90
86
  return true;
91
87
  }
92
88
  }
93
89
  return false;
94
- };
95
- AvaliadorSintaticoEguaClassico.prototype.primario = function () {
90
+ }
91
+ primario() {
96
92
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.SUPER)) {
97
- var simboloChave = this.simboloAnterior();
93
+ const simboloChave = this.simboloAnterior();
98
94
  this.consumir(egua_classico_1.default.PONTO, "Esperado '.' após 'super'.");
99
- var metodo = this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome do método da SuperClasse.');
95
+ const metodo = this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome do método da SuperClasse.');
100
96
  return new construtos_1.Super(this.hashArquivo, simboloChave, metodo);
101
97
  }
102
98
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.COLCHETE_ESQUERDO)) {
103
- var valores = [];
99
+ const valores = [];
104
100
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.COLCHETE_DIREITO)) {
105
101
  return new construtos_1.Vetor(this.hashArquivo, 0, []);
106
102
  }
107
103
  while (!this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.COLCHETE_DIREITO)) {
108
- var valor = this.atribuir();
104
+ const valor = this.atribuir();
109
105
  valores.push(valor);
110
106
  if (this.simboloAtual().tipo !== egua_classico_1.default.COLCHETE_DIREITO) {
111
107
  this.consumir(egua_classico_1.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
@@ -114,15 +110,15 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
114
110
  return new construtos_1.Vetor(this.hashArquivo, 0, valores);
115
111
  }
116
112
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.CHAVE_ESQUERDA)) {
117
- var chaves = [];
118
- var valores = [];
113
+ const chaves = [];
114
+ const valores = [];
119
115
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.CHAVE_DIREITA)) {
120
116
  return new construtos_1.Dicionario(this.hashArquivo, 0, [], []);
121
117
  }
122
118
  while (!this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.CHAVE_DIREITA)) {
123
- var chave = this.atribuir();
119
+ const chave = this.atribuir();
124
120
  this.consumir(egua_classico_1.default.DOIS_PONTOS, "Esperado ':' entre chave e valor.");
125
- var valor = this.atribuir();
121
+ const valor = this.atribuir();
126
122
  chaves.push(chave);
127
123
  valores.push(valor);
128
124
  if (this.simboloAtual().tipo !== egua_classico_1.default.CHAVE_DIREITA) {
@@ -148,16 +144,16 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
148
144
  return new construtos_1.Variavel(this.hashArquivo, this.simboloAnterior());
149
145
  }
150
146
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.PARENTESE_ESQUERDO)) {
151
- var expressao = this.expressao();
147
+ const expressao = this.expressao();
152
148
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
153
149
  return new construtos_1.Agrupamento(this.hashArquivo, 0, expressao);
154
150
  }
155
151
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.IMPORTAR))
156
152
  return this.declaracaoImportar();
157
153
  throw this.erro(this.simboloAtual(), 'Esperado expressão.');
158
- };
159
- AvaliadorSintaticoEguaClassico.prototype.finalizarChamada = function (entidadeChamada) {
160
- var argumentos = [];
154
+ }
155
+ finalizarChamada(entidadeChamada) {
156
+ const argumentos = [];
161
157
  if (!this.verificarTipoSimboloAtual(egua_classico_1.default.PARENTESE_DIREITO)) {
162
158
  do {
163
159
  if (argumentos.length >= 255) {
@@ -166,22 +162,22 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
166
162
  argumentos.push(this.expressao());
167
163
  } while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.VIRGULA));
168
164
  }
169
- var parenteseDireito = this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
165
+ const parenteseDireito = this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
170
166
  return new construtos_1.Chamada(this.hashArquivo, entidadeChamada, parenteseDireito, argumentos);
171
- };
172
- AvaliadorSintaticoEguaClassico.prototype.chamar = function () {
173
- var expressao = this.primario();
167
+ }
168
+ chamar() {
169
+ let expressao = this.primario();
174
170
  while (true) {
175
171
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.PARENTESE_ESQUERDO)) {
176
172
  expressao = this.finalizarChamada(expressao);
177
173
  }
178
174
  else if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.PONTO)) {
179
- var nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, "Esperado nome do método após '.'.");
175
+ const nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, "Esperado nome do método após '.'.");
180
176
  expressao = new construtos_1.AcessoMetodo(this.hashArquivo, expressao, nome);
181
177
  }
182
178
  else if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.COLCHETE_ESQUERDO)) {
183
- var indice = this.expressao();
184
- var simboloFechamento = this.consumir(egua_classico_1.default.COLCHETE_DIREITO, "Esperado ']' após escrita do indice.");
179
+ const indice = this.expressao();
180
+ const simboloFechamento = this.consumir(egua_classico_1.default.COLCHETE_DIREITO, "Esperado ']' após escrita do indice.");
185
181
  expressao = new construtos_1.AcessoIndiceVariavel(this.hashArquivo, expressao, indice, simboloFechamento);
186
182
  }
187
183
  else {
@@ -189,125 +185,125 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
189
185
  }
190
186
  }
191
187
  return expressao;
192
- };
193
- AvaliadorSintaticoEguaClassico.prototype.unario = function () {
188
+ }
189
+ unario() {
194
190
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.NEGACAO, egua_classico_1.default.SUBTRACAO, egua_classico_1.default.BIT_NOT)) {
195
- var operador = this.simboloAnterior();
196
- var direito = this.unario();
191
+ const operador = this.simboloAnterior();
192
+ const direito = this.unario();
197
193
  return new construtos_1.Unario(this.hashArquivo, operador, direito);
198
194
  }
199
195
  return this.chamar();
200
- };
201
- AvaliadorSintaticoEguaClassico.prototype.exponenciacao = function () {
202
- var expressao = this.unario();
196
+ }
197
+ exponenciacao() {
198
+ let expressao = this.unario();
203
199
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.EXPONENCIACAO)) {
204
- var operador = this.simboloAnterior();
205
- var direito = this.unario();
200
+ const operador = this.simboloAnterior();
201
+ const direito = this.unario();
206
202
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
207
203
  }
208
204
  return expressao;
209
- };
210
- AvaliadorSintaticoEguaClassico.prototype.multiplicar = function () {
211
- var expressao = this.exponenciacao();
205
+ }
206
+ multiplicar() {
207
+ let expressao = this.exponenciacao();
212
208
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.DIVISAO, egua_classico_1.default.MULTIPLICACAO, egua_classico_1.default.MODULO)) {
213
- var operador = this.simboloAnterior();
214
- var direito = this.exponenciacao();
209
+ const operador = this.simboloAnterior();
210
+ const direito = this.exponenciacao();
215
211
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
216
212
  }
217
213
  return expressao;
218
- };
219
- AvaliadorSintaticoEguaClassico.prototype.adicionar = function () {
220
- var expressao = this.multiplicar();
214
+ }
215
+ adicionar() {
216
+ let expressao = this.multiplicar();
221
217
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.SUBTRACAO, egua_classico_1.default.ADICAO)) {
222
- var operador = this.simboloAnterior();
223
- var direito = this.multiplicar();
218
+ const operador = this.simboloAnterior();
219
+ const direito = this.multiplicar();
224
220
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
225
221
  }
226
222
  return expressao;
227
- };
228
- AvaliadorSintaticoEguaClassico.prototype.bitFill = function () {
229
- var expressao = this.adicionar();
223
+ }
224
+ bitFill() {
225
+ let expressao = this.adicionar();
230
226
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.MENOR_MENOR, egua_classico_1.default.MAIOR_MAIOR)) {
231
- var operador = this.simboloAnterior();
232
- var direito = this.adicionar();
227
+ const operador = this.simboloAnterior();
228
+ const direito = this.adicionar();
233
229
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
234
230
  }
235
231
  return expressao;
236
- };
237
- AvaliadorSintaticoEguaClassico.prototype.bitE = function () {
238
- var expressao = this.bitFill();
232
+ }
233
+ bitE() {
234
+ let expressao = this.bitFill();
239
235
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.BIT_AND)) {
240
- var operador = this.simboloAnterior();
241
- var direito = this.bitFill();
236
+ const operador = this.simboloAnterior();
237
+ const direito = this.bitFill();
242
238
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
243
239
  }
244
240
  return expressao;
245
- };
246
- AvaliadorSintaticoEguaClassico.prototype.bitOu = function () {
247
- var expressao = this.bitE();
241
+ }
242
+ bitOu() {
243
+ let expressao = this.bitE();
248
244
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.BIT_OR, egua_classico_1.default.BIT_XOR)) {
249
- var operador = this.simboloAnterior();
250
- var direito = this.bitE();
245
+ const operador = this.simboloAnterior();
246
+ const direito = this.bitE();
251
247
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
252
248
  }
253
249
  return expressao;
254
- };
255
- AvaliadorSintaticoEguaClassico.prototype.comparar = function () {
256
- var expressao = this.bitOu();
250
+ }
251
+ comparar() {
252
+ let expressao = this.bitOu();
257
253
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.MAIOR, egua_classico_1.default.MAIOR_IGUAL, egua_classico_1.default.MENOR, egua_classico_1.default.MENOR_IGUAL)) {
258
- var operador = this.simboloAnterior();
259
- var direito = this.bitOu();
254
+ const operador = this.simboloAnterior();
255
+ const direito = this.bitOu();
260
256
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
261
257
  }
262
258
  return expressao;
263
- };
264
- AvaliadorSintaticoEguaClassico.prototype.comparacaoIgualdade = function () {
265
- var expressao = this.comparar();
259
+ }
260
+ comparacaoIgualdade() {
261
+ let expressao = this.comparar();
266
262
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.DIFERENTE, egua_classico_1.default.IGUAL_IGUAL)) {
267
- var operador = this.simboloAnterior();
268
- var direito = this.comparar();
263
+ const operador = this.simboloAnterior();
264
+ const direito = this.comparar();
269
265
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
270
266
  }
271
267
  return expressao;
272
- };
273
- AvaliadorSintaticoEguaClassico.prototype.em = function () {
274
- var expressao = this.comparacaoIgualdade();
268
+ }
269
+ em() {
270
+ let expressao = this.comparacaoIgualdade();
275
271
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.EM)) {
276
- var operador = this.simboloAnterior();
277
- var direito = this.comparacaoIgualdade();
272
+ const operador = this.simboloAnterior();
273
+ const direito = this.comparacaoIgualdade();
278
274
  expressao = new construtos_1.Logico(this.hashArquivo, expressao, operador, direito);
279
275
  }
280
276
  return expressao;
281
- };
282
- AvaliadorSintaticoEguaClassico.prototype.e = function () {
283
- var expressao = this.em();
277
+ }
278
+ e() {
279
+ let expressao = this.em();
284
280
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.E)) {
285
- var operador = this.simboloAnterior();
286
- var direito = this.em();
281
+ const operador = this.simboloAnterior();
282
+ const direito = this.em();
287
283
  expressao = new construtos_1.Logico(this.hashArquivo, expressao, operador, direito);
288
284
  }
289
285
  return expressao;
290
- };
291
- AvaliadorSintaticoEguaClassico.prototype.ou = function () {
292
- var expressao = this.e();
286
+ }
287
+ ou() {
288
+ let expressao = this.e();
293
289
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.OU)) {
294
- var operador = this.simboloAnterior();
295
- var direito = this.e();
290
+ const operador = this.simboloAnterior();
291
+ const direito = this.e();
296
292
  expressao = new construtos_1.Logico(this.hashArquivo, expressao, operador, direito);
297
293
  }
298
294
  return expressao;
299
- };
300
- AvaliadorSintaticoEguaClassico.prototype.atribuir = function () {
301
- var expressao = this.ou();
295
+ }
296
+ atribuir() {
297
+ const expressao = this.ou();
302
298
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.IGUAL)) {
303
- var igual = this.simboloAnterior();
304
- var valor = this.atribuir();
299
+ const igual = this.simboloAnterior();
300
+ const valor = this.atribuir();
305
301
  if (expressao instanceof construtos_1.Variavel) {
306
- var simbolo = expressao.simbolo;
302
+ const simbolo = expressao.simbolo;
307
303
  return new construtos_1.Atribuir(this.hashArquivo, simbolo, valor);
308
304
  }
309
305
  else if (expressao instanceof construtos_1.AcessoMetodo) {
310
- var get = expressao;
306
+ const get = expressao;
311
307
  return new construtos_1.DefinirValor(this.hashArquivo, 0, get.objeto, get.simbolo, valor);
312
308
  }
313
309
  else if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
@@ -316,72 +312,72 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
316
312
  this.erro(igual, 'Tarefa de atribuição inválida');
317
313
  }
318
314
  return expressao;
319
- };
320
- AvaliadorSintaticoEguaClassico.prototype.expressao = function () {
315
+ }
316
+ expressao() {
321
317
  return this.atribuir();
322
- };
323
- AvaliadorSintaticoEguaClassico.prototype.declaracaoEscreva = function () {
324
- var simboloAtual = this.simboloAtual();
318
+ }
319
+ declaracaoEscreva() {
320
+ const simboloAtual = this.simboloAtual();
325
321
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em escreva.");
326
- var valor = this.expressao();
322
+ const valor = this.expressao();
327
323
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após os valores em escreva.");
328
324
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após o valor.");
329
325
  return new declaracoes_1.Escreva(Number(simboloAtual.linha), simboloAtual.hashArquivo, [valor]);
330
- };
331
- AvaliadorSintaticoEguaClassico.prototype.declaracaoExpressao = function () {
332
- var expressao = this.expressao();
326
+ }
327
+ declaracaoExpressao() {
328
+ const expressao = this.expressao();
333
329
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após expressão.");
334
330
  return new declaracoes_1.Expressao(expressao);
335
- };
336
- AvaliadorSintaticoEguaClassico.prototype.blocoEscopo = function () {
337
- var declaracoes = [];
331
+ }
332
+ blocoEscopo() {
333
+ const declaracoes = [];
338
334
  while (!this.verificarTipoSimboloAtual(egua_classico_1.default.CHAVE_DIREITA) && !this.estaNoFinal()) {
339
335
  declaracoes.push(this.declaracao());
340
336
  }
341
337
  this.consumir(egua_classico_1.default.CHAVE_DIREITA, "Esperado '}' após o bloco.");
342
338
  return declaracoes;
343
- };
344
- AvaliadorSintaticoEguaClassico.prototype.declaracaoSe = function () {
339
+ }
340
+ declaracaoSe() {
345
341
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'se'.");
346
- var condicao = this.expressao();
342
+ const condicao = this.expressao();
347
343
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após condição do se.");
348
- var caminhoEntao = this.resolverDeclaracao();
349
- var caminhosSeSenao = [];
344
+ const caminhoEntao = this.resolverDeclaracao();
345
+ const caminhosSeSenao = [];
350
346
  while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.SENÃOSE)) {
351
347
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'senãose'.");
352
- var condicaoSeSenao = this.expressao();
348
+ const condicaoSeSenao = this.expressao();
353
349
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' apóes codição do 'senãose.");
354
- var caminho = this.resolverDeclaracao();
350
+ const caminho = this.resolverDeclaracao();
355
351
  caminhosSeSenao.push({
356
352
  condicao: condicaoSeSenao,
357
353
  caminho: caminho,
358
354
  });
359
355
  }
360
- var caminhoSenao = null;
356
+ let caminhoSenao = null;
361
357
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.SENÃO)) {
362
358
  caminhoSenao = this.resolverDeclaracao();
363
359
  }
364
360
  return new declaracoes_1.Se(condicao, caminhoEntao, caminhosSeSenao, caminhoSenao);
365
- };
366
- AvaliadorSintaticoEguaClassico.prototype.declaracaoEnquanto = function () {
361
+ }
362
+ declaracaoEnquanto() {
367
363
  try {
368
364
  this.blocos += 1;
369
365
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'enquanto'.");
370
- var condicao = this.expressao();
366
+ const condicao = this.expressao();
371
367
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após condicional.");
372
- var corpo = this.resolverDeclaracao();
368
+ const corpo = this.resolverDeclaracao();
373
369
  return new declaracoes_1.Enquanto(condicao, corpo);
374
370
  }
375
371
  finally {
376
372
  this.blocos -= 1;
377
373
  }
378
- };
379
- AvaliadorSintaticoEguaClassico.prototype.declaracaoPara = function () {
374
+ }
375
+ declaracaoPara() {
380
376
  try {
381
- var simboloPara = this.simboloAnterior();
377
+ const simboloPara = this.simboloAnterior();
382
378
  this.blocos += 1;
383
379
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'para'.");
384
- var inicializador = void 0;
380
+ let inicializador;
385
381
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.PONTO_E_VIRGULA)) {
386
382
  inicializador = null;
387
383
  }
@@ -391,65 +387,65 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
391
387
  else {
392
388
  inicializador = this.declaracaoExpressao();
393
389
  }
394
- var condicao = null;
390
+ let condicao = null;
395
391
  if (!this.verificarTipoSimboloAtual(egua_classico_1.default.PONTO_E_VIRGULA)) {
396
392
  condicao = this.expressao();
397
393
  }
398
394
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após valores da condicional");
399
- var incrementar = null;
395
+ let incrementar = null;
400
396
  if (!this.verificarTipoSimboloAtual(egua_classico_1.default.PARENTESE_DIREITO)) {
401
397
  incrementar = this.expressao();
402
398
  }
403
399
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após cláusulas");
404
- var corpo = this.resolverDeclaracao();
400
+ const corpo = this.resolverDeclaracao();
405
401
  return new declaracoes_1.Para(this.hashArquivo, Number(simboloPara.linha), inicializador, condicao, incrementar, corpo);
406
402
  }
407
403
  finally {
408
404
  this.blocos -= 1;
409
405
  }
410
- };
411
- AvaliadorSintaticoEguaClassico.prototype.declaracaoSustar = function () {
406
+ }
407
+ declaracaoSustar() {
412
408
  if (this.blocos < 1) {
413
409
  this.erro(this.simboloAnterior(), "'pausa' deve estar dentro de um loop.");
414
410
  }
415
411
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após 'pausa'.");
416
412
  return new declaracoes_1.Sustar(this.simboloAtual());
417
- };
418
- AvaliadorSintaticoEguaClassico.prototype.declaracaoContinua = function () {
413
+ }
414
+ declaracaoContinua() {
419
415
  if (this.blocos < 1) {
420
416
  this.erro(this.simboloAnterior(), "'continua' precisa estar em um laço de repetição.");
421
417
  }
422
418
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após 'continua'.");
423
419
  return new declaracoes_1.Continua(this.simboloAtual());
424
- };
425
- AvaliadorSintaticoEguaClassico.prototype.declaracaoRetorna = function () {
426
- var palavraChave = this.simboloAnterior();
427
- var valor = null;
420
+ }
421
+ declaracaoRetorna() {
422
+ const palavraChave = this.simboloAnterior();
423
+ let valor = null;
428
424
  if (!this.verificarTipoSimboloAtual(egua_classico_1.default.PONTO_E_VIRGULA)) {
429
425
  valor = this.expressao();
430
426
  }
431
427
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após o retorno.");
432
428
  return new declaracoes_1.Retorna(palavraChave, valor);
433
- };
434
- AvaliadorSintaticoEguaClassico.prototype.declaracaoEscolha = function () {
429
+ }
430
+ declaracaoEscolha() {
435
431
  try {
436
432
  this.blocos += 1;
437
433
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '{' após 'escolha'.");
438
- var condicao = this.expressao();
434
+ const condicao = this.expressao();
439
435
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado '}' após a condição de 'escolha'.");
440
436
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' antes do escopo do 'escolha'.");
441
- var caminhos = [];
442
- var caminhoPadrao = null;
437
+ const caminhos = [];
438
+ let caminhoPadrao = null;
443
439
  while (!this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.CHAVE_DIREITA) && !this.estaNoFinal()) {
444
440
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.CASO)) {
445
- var caminhoCondicoes = [this.expressao()];
441
+ const caminhoCondicoes = [this.expressao()];
446
442
  this.consumir(egua_classico_1.default.DOIS_PONTOS, "Esperado ':' após o 'caso'.");
447
443
  while (this.verificarTipoSimboloAtual(egua_classico_1.default.CASO)) {
448
444
  this.consumir(egua_classico_1.default.CASO, null);
449
445
  caminhoCondicoes.push(this.expressao());
450
446
  this.consumir(egua_classico_1.default.DOIS_PONTOS, "Esperado ':' após declaração do 'caso'.");
451
447
  }
452
- var declaracoes = [];
448
+ const declaracoes = [];
453
449
  do {
454
450
  declaracoes.push(this.resolverDeclaracao());
455
451
  } while (!this.verificarTipoSimboloAtual(egua_classico_1.default.CASO) &&
@@ -457,24 +453,24 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
457
453
  !this.verificarTipoSimboloAtual(egua_classico_1.default.CHAVE_DIREITA));
458
454
  caminhos.push({
459
455
  condicoes: caminhoCondicoes,
460
- declaracoes: declaracoes,
456
+ declaracoes,
461
457
  });
462
458
  }
463
459
  else if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.PADRAO)) {
464
460
  if (caminhoPadrao !== null) {
465
- var excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(this.simboloAtual(), "Você só pode ter um 'padrao' em cada declaração de 'escolha'.");
461
+ const excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(this.simboloAtual(), "Você só pode ter um 'padrao' em cada declaração de 'escolha'.");
466
462
  this.erros.push(excecao);
467
463
  throw excecao;
468
464
  }
469
465
  this.consumir(egua_classico_1.default.DOIS_PONTOS, "Esperado ':' após declaração do 'padrao'.");
470
- var declaracoes = [];
466
+ const declaracoes = [];
471
467
  do {
472
468
  declaracoes.push(this.resolverDeclaracao());
473
469
  } while (!this.verificarTipoSimboloAtual(egua_classico_1.default.CASO) &&
474
470
  !this.verificarTipoSimboloAtual(egua_classico_1.default.PADRAO) &&
475
471
  !this.verificarTipoSimboloAtual(egua_classico_1.default.CHAVE_DIREITA));
476
472
  caminhoPadrao = {
477
- declaracoes: declaracoes,
473
+ declaracoes,
478
474
  };
479
475
  }
480
476
  }
@@ -483,11 +479,11 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
483
479
  finally {
484
480
  this.blocos -= 1;
485
481
  }
486
- };
487
- AvaliadorSintaticoEguaClassico.prototype.declaracaoImportar = function () {
482
+ }
483
+ declaracaoImportar() {
488
484
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
489
- var caminho = this.expressao();
490
- var simboloFechamento = this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
485
+ const caminho = this.expressao();
486
+ const simboloFechamento = this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
491
487
  // tive que fazer isso para poder tipar a func expressão
492
488
  // não sei isso e certo provavelmente não.
493
489
  // o parametro valor no tipo literal esta como any
@@ -495,42 +491,42 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
495
491
  // alguma ideia de qual tipo ele pode ser ?
496
492
  caminho.valor = null;
497
493
  return new declaracoes_1.Importar(caminho, simboloFechamento);
498
- };
499
- AvaliadorSintaticoEguaClassico.prototype.declaracaoTente = function () {
494
+ }
495
+ declaracaoTente() {
500
496
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' após a declaração 'tente'.");
501
- var tryBlock = this.blocoEscopo();
502
- var catchBlock = null;
497
+ const tryBlock = this.blocoEscopo();
498
+ let catchBlock = null;
503
499
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.PEGUE)) {
504
500
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' após a declaração 'pegue'.");
505
501
  catchBlock = this.blocoEscopo();
506
502
  }
507
- var elseBlock = null;
503
+ let elseBlock = null;
508
504
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.SENÃO)) {
509
505
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' após a declaração 'pegue'.");
510
506
  elseBlock = this.blocoEscopo();
511
507
  }
512
- var finallyBlock = null;
508
+ let finallyBlock = null;
513
509
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.FINALMENTE)) {
514
510
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' após a declaração 'pegue'.");
515
511
  finallyBlock = this.blocoEscopo();
516
512
  }
517
513
  return new declaracoes_1.Tente(0, 0, tryBlock, catchBlock, elseBlock, finallyBlock);
518
- };
519
- AvaliadorSintaticoEguaClassico.prototype.declaracaoFazer = function () {
514
+ }
515
+ declaracaoFazer() {
520
516
  try {
521
517
  this.blocos += 1;
522
- var caminhoFazer = this.resolverDeclaracao();
518
+ const caminhoFazer = this.resolverDeclaracao();
523
519
  this.consumir(egua_classico_1.default.ENQUANTO, "Esperado declaração do 'enquanto' após o escopo do 'fazer'.");
524
520
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração 'enquanto'.");
525
- var condicaoEnquanto = this.expressao();
521
+ const condicaoEnquanto = this.expressao();
526
522
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração do 'enquanto'.");
527
523
  return new declaracoes_1.Fazer(0, 0, caminhoFazer, condicaoEnquanto);
528
524
  }
529
525
  finally {
530
526
  this.blocos -= 1;
531
527
  }
532
- };
533
- AvaliadorSintaticoEguaClassico.prototype.resolverDeclaracao = function () {
528
+ }
529
+ resolverDeclaracao() {
534
530
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.FAZER))
535
531
  return this.declaracaoFazer();
536
532
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.TENTE))
@@ -554,29 +550,29 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
554
550
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.CHAVE_ESQUERDA))
555
551
  return new declaracoes_1.Bloco(0, 0, this.blocoEscopo());
556
552
  return this.declaracaoExpressao();
557
- };
558
- AvaliadorSintaticoEguaClassico.prototype.declaracaoDeVariavel = function () {
559
- var nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome de variável.');
560
- var inicializador = null;
553
+ }
554
+ declaracaoDeVariavel() {
555
+ const nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome de variável.');
556
+ let inicializador = null;
561
557
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.IGUAL)) {
562
558
  inicializador = this.expressao();
563
559
  }
564
560
  this.consumir(egua_classico_1.default.PONTO_E_VIRGULA, "Esperado ';' após a declaração da variável.");
565
561
  return new declaracoes_1.Var(nome, inicializador);
566
- };
567
- AvaliadorSintaticoEguaClassico.prototype.funcao = function (kind) {
568
- var nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, "Esperado nome ".concat(kind, "."));
562
+ }
563
+ funcao(kind) {
564
+ const nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, `Esperado nome ${kind}.`);
569
565
  return new declaracoes_1.FuncaoDeclaracao(nome, this.corpoDaFuncao(kind));
570
- };
571
- AvaliadorSintaticoEguaClassico.prototype.corpoDaFuncao = function (kind) {
572
- this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' ap\u00F3s o nome ".concat(kind, "."));
573
- var parametros = [];
566
+ }
567
+ corpoDaFuncao(kind) {
568
+ this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, `Esperado '(' após o nome ${kind}.`);
569
+ const parametros = [];
574
570
  if (!this.verificarTipoSimboloAtual(egua_classico_1.default.PARENTESE_DIREITO)) {
575
571
  do {
576
572
  if (parametros.length >= 255) {
577
573
  this.erro(this.simboloAtual(), 'Não pode haver mais de 255 parâmetros');
578
574
  }
579
- var parametro = {};
575
+ const parametro = {};
580
576
  if (this.simboloAtual().tipo === egua_classico_1.default.MULTIPLICACAO) {
581
577
  this.consumir(egua_classico_1.default.MULTIPLICACAO, null);
582
578
  parametro['tipo'] = 'estrela';
@@ -594,26 +590,26 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
594
590
  } while (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.VIRGULA));
595
591
  }
596
592
  this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
597
- this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' antes do escopo do ".concat(kind, "."));
598
- var corpo = this.blocoEscopo();
593
+ this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, `Esperado '{' antes do escopo do ${kind}.`);
594
+ const corpo = this.blocoEscopo();
599
595
  return new construtos_1.FuncaoConstruto(this.hashArquivo, 0, parametros, corpo);
600
- };
601
- AvaliadorSintaticoEguaClassico.prototype.declaracaoDeClasse = function () {
602
- var nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome da classe.');
603
- var superClasse = null;
596
+ }
597
+ declaracaoDeClasse() {
598
+ const nome = this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome da classe.');
599
+ let superClasse = null;
604
600
  if (this.verificarSeSimboloAtualEIgualA(egua_classico_1.default.HERDA)) {
605
601
  this.consumir(egua_classico_1.default.IDENTIFICADOR, 'Esperado nome da SuperClasse.');
606
602
  superClasse = new construtos_1.Variavel(this.hashArquivo, this.simboloAnterior());
607
603
  }
608
604
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' antes do escopo da classe.");
609
- var metodos = [];
605
+ const metodos = [];
610
606
  while (!this.verificarTipoSimboloAtual(egua_classico_1.default.CHAVE_DIREITA) && !this.estaNoFinal()) {
611
607
  metodos.push(this.funcao('método'));
612
608
  }
613
609
  this.consumir(egua_classico_1.default.CHAVE_DIREITA, "Esperado '}' após o escopo da classe.");
614
610
  return new declaracoes_1.Classe(nome, superClasse, metodos);
615
- };
616
- AvaliadorSintaticoEguaClassico.prototype.declaracao = function () {
611
+ }
612
+ declaracao() {
617
613
  try {
618
614
  if (this.verificarTipoSimboloAtual(egua_classico_1.default.FUNÇÃO) &&
619
615
  this.verificarTipoProximoSimbolo(egua_classico_1.default.IDENTIFICADOR)) {
@@ -630,14 +626,14 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
630
626
  this.sincronizar();
631
627
  return null;
632
628
  }
633
- };
634
- AvaliadorSintaticoEguaClassico.prototype.analisar = function (retornoLexador, hashArquivo) {
629
+ }
630
+ analisar(retornoLexador, hashArquivo) {
635
631
  this.erros = [];
636
632
  this.atual = 0;
637
633
  this.blocos = 0;
638
634
  this.hashArquivo = hashArquivo || 0;
639
635
  this.simbolos = (retornoLexador === null || retornoLexador === void 0 ? void 0 : retornoLexador.simbolos) || [];
640
- var declaracoes = [];
636
+ const declaracoes = [];
641
637
  while (!this.estaNoFinal()) {
642
638
  declaracoes.push(this.declaracao());
643
639
  }
@@ -645,8 +641,7 @@ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
645
641
  declaracoes: declaracoes,
646
642
  erros: this.erros,
647
643
  };
648
- };
649
- return AvaliadorSintaticoEguaClassico;
650
- }());
644
+ }
645
+ }
651
646
  exports.AvaliadorSintaticoEguaClassico = AvaliadorSintaticoEguaClassico;
652
647
  //# sourceMappingURL=avaliador-sintatico-egua-classico.js.map