@designliquido/delegua 0.3.2 → 0.4.0

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 (218) hide show
  1. package/bin/package.json +3 -1
  2. package/fontes/ambiente.js.map +1 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +6 -5
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js +44 -41
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  6. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +4 -3
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +38 -37
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +4 -3
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +38 -37
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  12. package/fontes/bibliotecas/biblioteca-global.d.ts +2 -2
  13. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  14. package/fontes/construtos/acesso-indice-variavel.d.ts +2 -1
  15. package/fontes/construtos/acesso-indice-variavel.js +2 -1
  16. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  17. package/fontes/construtos/acesso-metodo.d.ts +4 -3
  18. package/fontes/construtos/acesso-metodo.js +2 -1
  19. package/fontes/construtos/acesso-metodo.js.map +1 -1
  20. package/fontes/construtos/agrupamento.d.ts +2 -1
  21. package/fontes/construtos/agrupamento.js +2 -1
  22. package/fontes/construtos/agrupamento.js.map +1 -1
  23. package/fontes/construtos/atribuicao-sobrescrita.d.ts +2 -1
  24. package/fontes/construtos/atribuicao-sobrescrita.js +2 -1
  25. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  26. package/fontes/construtos/atribuir.d.ts +2 -1
  27. package/fontes/construtos/atribuir.js +2 -1
  28. package/fontes/construtos/atribuir.js.map +1 -1
  29. package/fontes/construtos/binario.d.ts +2 -1
  30. package/fontes/construtos/binario.js +2 -1
  31. package/fontes/construtos/binario.js.map +1 -1
  32. package/fontes/construtos/chamada.d.ts +2 -1
  33. package/fontes/construtos/chamada.js +2 -1
  34. package/fontes/construtos/chamada.js.map +1 -1
  35. package/fontes/construtos/conjunto.d.ts +2 -1
  36. package/fontes/construtos/conjunto.js +2 -1
  37. package/fontes/construtos/conjunto.js.map +1 -1
  38. package/fontes/construtos/construto.d.ts +1 -0
  39. package/fontes/construtos/dicionario.d.ts +2 -1
  40. package/fontes/construtos/dicionario.js +2 -1
  41. package/fontes/construtos/dicionario.js.map +1 -1
  42. package/fontes/construtos/funcao.d.ts +2 -1
  43. package/fontes/construtos/funcao.js +2 -1
  44. package/fontes/construtos/funcao.js.map +1 -1
  45. package/fontes/construtos/isto.d.ts +2 -1
  46. package/fontes/construtos/isto.js +2 -1
  47. package/fontes/construtos/isto.js.map +1 -1
  48. package/fontes/construtos/literal.d.ts +2 -1
  49. package/fontes/construtos/literal.js +2 -1
  50. package/fontes/construtos/literal.js.map +1 -1
  51. package/fontes/construtos/logico.d.ts +2 -1
  52. package/fontes/construtos/logico.js +2 -1
  53. package/fontes/construtos/logico.js.map +1 -1
  54. package/fontes/construtos/super.d.ts +4 -2
  55. package/fontes/construtos/super.js +4 -3
  56. package/fontes/construtos/super.js.map +1 -1
  57. package/fontes/construtos/unario.d.ts +2 -1
  58. package/fontes/construtos/unario.js +2 -1
  59. package/fontes/construtos/unario.js.map +1 -1
  60. package/fontes/construtos/variavel.d.ts +2 -1
  61. package/fontes/construtos/variavel.js +2 -1
  62. package/fontes/construtos/variavel.js.map +1 -1
  63. package/fontes/construtos/vetor.d.ts +2 -1
  64. package/fontes/construtos/vetor.js +2 -1
  65. package/fontes/construtos/vetor.js.map +1 -1
  66. package/fontes/declaracoes/bloco.js +1 -1
  67. package/fontes/declaracoes/bloco.js.map +1 -1
  68. package/fontes/declaracoes/classe.js +1 -1
  69. package/fontes/declaracoes/classe.js.map +1 -1
  70. package/fontes/declaracoes/continua.d.ts +2 -1
  71. package/fontes/declaracoes/continua.js +2 -2
  72. package/fontes/declaracoes/continua.js.map +1 -1
  73. package/fontes/declaracoes/declaracao.d.ts +2 -1
  74. package/fontes/declaracoes/declaracao.js +2 -1
  75. package/fontes/declaracoes/declaracao.js.map +1 -1
  76. package/fontes/declaracoes/enquanto.d.ts +3 -2
  77. package/fontes/declaracoes/enquanto.js +1 -1
  78. package/fontes/declaracoes/enquanto.js.map +1 -1
  79. package/fontes/declaracoes/escolha.d.ts +2 -1
  80. package/fontes/declaracoes/escolha.js +1 -1
  81. package/fontes/declaracoes/escolha.js.map +1 -1
  82. package/fontes/declaracoes/escreva.d.ts +3 -2
  83. package/fontes/declaracoes/escreva.js +1 -1
  84. package/fontes/declaracoes/escreva.js.map +1 -1
  85. package/fontes/declaracoes/expressao.js +1 -1
  86. package/fontes/declaracoes/expressao.js.map +1 -1
  87. package/fontes/declaracoes/fazer.js +1 -1
  88. package/fontes/declaracoes/fazer.js.map +1 -1
  89. package/fontes/declaracoes/funcao.js +1 -1
  90. package/fontes/declaracoes/funcao.js.map +1 -1
  91. package/fontes/declaracoes/importar.js +1 -1
  92. package/fontes/declaracoes/importar.js.map +1 -1
  93. package/fontes/declaracoes/para.d.ts +1 -1
  94. package/fontes/declaracoes/para.js +2 -2
  95. package/fontes/declaracoes/para.js.map +1 -1
  96. package/fontes/declaracoes/retorna.d.ts +3 -3
  97. package/fontes/declaracoes/retorna.js +3 -3
  98. package/fontes/declaracoes/retorna.js.map +1 -1
  99. package/fontes/declaracoes/se.js +1 -1
  100. package/fontes/declaracoes/se.js.map +1 -1
  101. package/fontes/declaracoes/sustar.d.ts +2 -1
  102. package/fontes/declaracoes/sustar.js +2 -2
  103. package/fontes/declaracoes/sustar.js.map +1 -1
  104. package/fontes/declaracoes/tente.js +1 -1
  105. package/fontes/declaracoes/tente.js.map +1 -1
  106. package/fontes/declaracoes/var.js +1 -1
  107. package/fontes/declaracoes/var.js.map +1 -1
  108. package/fontes/delegua.d.ts +28 -5
  109. package/fontes/delegua.js +65 -18
  110. package/fontes/delegua.js.map +1 -1
  111. package/fontes/depuracao/cyrb53.d.ts +9 -0
  112. package/fontes/depuracao/cyrb53.js +25 -0
  113. package/fontes/depuracao/cyrb53.js.map +1 -0
  114. package/fontes/depuracao/index.d.ts +3 -0
  115. package/fontes/depuracao/index.js +20 -0
  116. package/fontes/depuracao/index.js.map +1 -0
  117. package/fontes/depuracao/ponto-parada.d.ts +4 -0
  118. package/fontes/depuracao/ponto-parada.js +3 -0
  119. package/fontes/depuracao/ponto-parada.js.map +1 -0
  120. package/fontes/depuracao/servidor-depuracao.d.ts +15 -0
  121. package/fontes/depuracao/servidor-depuracao.js +187 -0
  122. package/fontes/depuracao/servidor-depuracao.js.map +1 -0
  123. package/fontes/estruturas/funcao.d.ts +1 -1
  124. package/fontes/estruturas/funcao.js.map +1 -1
  125. package/fontes/importador/importador.d.ts +18 -1
  126. package/fontes/importador/importador.js +23 -5
  127. package/fontes/importador/importador.js.map +1 -1
  128. package/fontes/importador/retorno-importador.d.ts +2 -3
  129. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +3 -3
  130. package/fontes/interfaces/delegua-interface.d.ts +2 -4
  131. package/fontes/interfaces/index.d.ts +2 -1
  132. package/fontes/interfaces/index.js +2 -1
  133. package/fontes/interfaces/index.js.map +1 -1
  134. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +11 -0
  135. package/fontes/interfaces/interpretador-com-depuracao-interface.js +3 -0
  136. package/fontes/interfaces/interpretador-com-depuracao-interface.js.map +1 -0
  137. package/fontes/interfaces/interpretador-interface.d.ts +3 -4
  138. package/fontes/interfaces/lexador-interface.d.ts +2 -2
  139. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +17 -0
  140. package/fontes/interfaces/pilha-escopos-execucao-interface.js +3 -0
  141. package/fontes/interfaces/pilha-escopos-execucao-interface.js.map +1 -0
  142. package/fontes/interfaces/pilha-interface.d.ts +2 -2
  143. package/fontes/interfaces/retornos/index.d.ts +4 -0
  144. package/fontes/interfaces/retornos/index.js +21 -0
  145. package/fontes/interfaces/retornos/index.js.map +1 -0
  146. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +6 -0
  147. package/fontes/{avaliador-sintatico → interfaces/retornos}/retorno-avaliador-sintatico.js +0 -0
  148. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.js.map +1 -0
  149. package/fontes/interfaces/{retorno-execucao-interface.d.ts → retornos/retorno-execucao-interface.d.ts} +3 -3
  150. package/fontes/interfaces/{retorno-execucao-interface.js → retornos/retorno-execucao-interface.js} +0 -0
  151. package/fontes/interfaces/retornos/retorno-execucao-interface.js.map +1 -0
  152. package/fontes/{interpretador → interfaces/retornos}/retorno-interpretador.d.ts +1 -1
  153. package/fontes/{interpretador → interfaces/retornos}/retorno-interpretador.js +0 -0
  154. package/fontes/interfaces/retornos/retorno-interpretador.js.map +1 -0
  155. package/fontes/interfaces/retornos/retorno-lexador.d.ts +10 -0
  156. package/fontes/{lexador → interfaces/retornos}/retorno-lexador.js +0 -0
  157. package/fontes/interfaces/retornos/retorno-lexador.js.map +1 -0
  158. package/fontes/interfaces/simbolo-interface.d.ts +1 -0
  159. package/fontes/interpretador/dialetos/egua-classico.d.ts +1 -1
  160. package/fontes/interpretador/dialetos/egua-classico.js +2 -2
  161. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  162. package/fontes/interpretador/index.d.ts +1 -1
  163. package/fontes/interpretador/index.js +1 -1
  164. package/fontes/interpretador/index.js.map +1 -1
  165. package/fontes/interpretador/interpretador-com-depuracao.d.ts +94 -0
  166. package/fontes/interpretador/interpretador-com-depuracao.js +278 -0
  167. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -0
  168. package/fontes/interpretador/interpretador.d.ts +16 -8
  169. package/fontes/interpretador/interpretador.js +16 -8
  170. package/fontes/interpretador/interpretador.js.map +1 -1
  171. package/fontes/interpretador/pilha-escopos-execucao.d.ts +12 -5
  172. package/fontes/interpretador/pilha-escopos-execucao.js +19 -2
  173. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  174. package/fontes/lexador/dialetos/lexador-egua-classico.d.ts +1 -1
  175. package/fontes/lexador/dialetos/lexador-egua-classico.js +2 -2
  176. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  177. package/fontes/lexador/dialetos/lexador-eguap.d.ts +3 -2
  178. package/fontes/lexador/dialetos/lexador-eguap.js +6 -5
  179. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  180. package/fontes/lexador/lexador.d.ts +3 -2
  181. package/fontes/lexador/lexador.js +4 -2
  182. package/fontes/lexador/lexador.js.map +1 -1
  183. package/fontes/lexador/simbolo.d.ts +2 -1
  184. package/fontes/lexador/simbolo.js +2 -1
  185. package/fontes/lexador/simbolo.js.map +1 -1
  186. package/fontes/resolvedor/dialetos/egua-classico.d.ts +1 -1
  187. package/fontes/resolvedor/dialetos/egua-classico.js +3 -3
  188. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  189. package/fontes/resolvedor/resolvedor.js +3 -3
  190. package/index.js +6 -4
  191. package/index.js.map +1 -1
  192. package/package.json +3 -1
  193. package/testes/avaliador-sintatico.test.js +1 -1
  194. package/testes/avaliador-sintatico.test.js.map +1 -1
  195. package/testes/biblioteca-global.test.js +14 -14
  196. package/testes/biblioteca-global.test.js.map +1 -1
  197. package/testes/egua-classico/avaliador-sintatico.test.js +1 -1
  198. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  199. package/testes/egua-classico/interpretador.test.js +20 -20
  200. package/testes/egua-classico/interpretador.test.js.map +1 -1
  201. package/testes/egua-classico/lexador.test.js +8 -8
  202. package/testes/egua-classico/lexador.test.js.map +1 -1
  203. package/testes/egua-classico/resolvedor.test.js +1 -1
  204. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  205. package/testes/eguap/lexador.test.js +6 -6
  206. package/testes/eguap/lexador.test.js.map +1 -1
  207. package/testes/interpretador.test.js +20 -20
  208. package/testes/interpretador.test.js.map +1 -1
  209. package/testes/lexador.test.js +8 -8
  210. package/testes/lexador.test.js.map +1 -1
  211. package/testes/resolvedor.test.js +1 -1
  212. package/testes/resolvedor.test.js.map +1 -1
  213. package/fontes/avaliador-sintatico/retorno-avaliador-sintatico.d.ts +0 -6
  214. package/fontes/avaliador-sintatico/retorno-avaliador-sintatico.js.map +0 -1
  215. package/fontes/interfaces/retorno-execucao-interface.js.map +0 -1
  216. package/fontes/interpretador/retorno-interpretador.js.map +0 -1
  217. package/fontes/lexador/retorno-lexador.d.ts +0 -10
  218. package/fontes/lexador/retorno-lexador.js.map +0 -1
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ServidorDepuracao = void 0;
30
+ var net = __importStar(require("net"));
31
+ var cyrb53_1 = __importDefault(require("./cyrb53"));
32
+ var ServidorDepuracao = /** @class */ (function () {
33
+ function ServidorDepuracao(_instanciaDelegua) {
34
+ var _this = this;
35
+ this.operarConexao = function (conexao) {
36
+ var enderecoRemoto = conexao.remoteAddress + ':' + conexao.remotePort;
37
+ // process.stdout.write('\n[Depurador] Nova conexão de cliente de ' + enderecoRemoto + '\ndelegua> ');
38
+ conexao.setEncoding('utf8');
39
+ _this.conexoes[_this.contadorConexoes++] = conexao;
40
+ var aoReceberDados = function (dados) {
41
+ var comando = String(dados).replace(/\r?\n|\r/g, "").split(' ');
42
+ // process.stdout.write('\n[Depurador] Dados da conexão vindos de ' + enderecoRemoto + ': ' + comando + '\ndelegua> ');
43
+ var interpretadorInterface = _this.instanciaDelegua.interpretador;
44
+ var arquivosAbertos = _this.instanciaDelegua.arquivosAbertos;
45
+ var conteudoArquivosAbertos = _this.instanciaDelegua.conteudoArquivosAbertos;
46
+ var validarPontoParada = function (caminhoArquivo, linha) {
47
+ var hashArquivo = (0, cyrb53_1.default)(caminhoArquivo);
48
+ if (!arquivosAbertos.hasOwnProperty(hashArquivo)) {
49
+ conexao.write("[adicionar-ponto-parada]: Arquivo '".concat(caminhoArquivo, "' n\u00E3o encontrado\n"));
50
+ return { sucesso: false };
51
+ }
52
+ if (conteudoArquivosAbertos[hashArquivo].length < linha) {
53
+ conexao.write("[adicionar-ponto-parada]: Linha ".concat(linha, " n\u00E3o existente em arquivo '").concat(caminhoArquivo, "'\n"));
54
+ return { sucesso: false };
55
+ }
56
+ return { sucesso: true, hashArquivo: hashArquivo, linha: linha };
57
+ };
58
+ var validacaoPontoParada;
59
+ switch (comando[0]) {
60
+ case "adentrar-escopo":
61
+ conexao.write("Recebido comando 'adentrar-escopo'\n");
62
+ interpretadorInterface.adentrarEscopoAtivo = true;
63
+ interpretadorInterface.pontoDeParadaAtivo = false;
64
+ interpretadorInterface.interpretacaoApenasUmaInstrucao();
65
+ break;
66
+ case "adicionar-ponto-parada":
67
+ conexao.write("Recebido comando 'adicionar-ponto-parada'\n");
68
+ if (comando.length < 3) {
69
+ conexao.write("[adicionar-ponto-parada]: Formato: adicionar-ponto-parada /caminho/do/arquivo.egua 1\n");
70
+ break;
71
+ }
72
+ validacaoPontoParada = validarPontoParada(comando[1], parseInt(comando[2]));
73
+ if (validacaoPontoParada.sucesso) {
74
+ interpretadorInterface.pontosParada.push({
75
+ hashArquivo: validacaoPontoParada.hashArquivo,
76
+ linha: validacaoPontoParada.linha
77
+ });
78
+ }
79
+ break;
80
+ case "continuar":
81
+ conexao.write("Recebido comando 'continuar'\n");
82
+ interpretadorInterface.pontoDeParadaAtivo = false;
83
+ interpretadorInterface.continuarInterpretacao();
84
+ break;
85
+ case "pilha-execucao":
86
+ conexao.write("Recebido comando 'pilha-execucao'\n");
87
+ var pilhaEscoposExecucao = interpretadorInterface.pilhaEscoposExecucao;
88
+ for (var i = 1; i < pilhaEscoposExecucao.pilha.length; i++) {
89
+ var elementoPilha = pilhaEscoposExecucao.pilha[i];
90
+ var posicaoDeclaracaoAtual = elementoPilha.declaracaoAtual >= elementoPilha.declaracoes.length ? elementoPilha.declaracoes.length - 1 : elementoPilha.declaracaoAtual;
91
+ var declaracaoAtual = elementoPilha.declaracoes[posicaoDeclaracaoAtual];
92
+ conexao.write(conteudoArquivosAbertos[declaracaoAtual.hashArquivo][declaracaoAtual.linha - 1].trim() + ' - ' +
93
+ _this.instanciaDelegua.arquivosAbertos[declaracaoAtual.hashArquivo] + ':' +
94
+ declaracaoAtual.linha + '\n');
95
+ }
96
+ break;
97
+ case "pontos-parada":
98
+ conexao.write("Recebido comando 'pontos-parada'\n");
99
+ for (var _i = 0, _a = interpretadorInterface.pontosParada; _i < _a.length; _i++) {
100
+ var pontoParada = _a[_i];
101
+ conexao.write(_this.instanciaDelegua.arquivosAbertos[pontoParada.hashArquivo] + ": " +
102
+ pontoParada.linha + "\n");
103
+ }
104
+ break;
105
+ case "proximo":
106
+ conexao.write("Recebido comando 'proximo'\n");
107
+ interpretadorInterface.pontoDeParadaAtivo = false;
108
+ interpretadorInterface.interpretacaoApenasUmaInstrucao();
109
+ break;
110
+ case "remover-ponto-parada":
111
+ conexao.write("Recebido comando 'remover-ponto-parada'\n");
112
+ if (comando.length < 3) {
113
+ conexao.write("[adicionar-ponto-parada]: Formato: adicionar-ponto-parada /caminho/do/arquivo.egua 1\n");
114
+ break;
115
+ }
116
+ validacaoPontoParada = validarPontoParada(comando[1], parseInt(comando[2]));
117
+ if (validacaoPontoParada.sucesso) {
118
+ interpretadorInterface.pontosParada = interpretadorInterface.pontosParada.filter(function (p) {
119
+ return p.hashArquivo !== validacaoPontoParada.hashArquivo &&
120
+ p.linha !== validacaoPontoParada.linha;
121
+ });
122
+ }
123
+ break;
124
+ case "sair-escopo":
125
+ conexao.write("Recebido comando 'sair-escopo'\n");
126
+ interpretadorInterface.pontoDeParadaAtivo = false;
127
+ interpretadorInterface.proximoESair();
128
+ break;
129
+ case "tchau":
130
+ conexao.write("Recebido comando 'tchau'. Conexão será encerrada\n");
131
+ conexao.destroy();
132
+ break;
133
+ case "variaveis":
134
+ conexao.write("Recebido comando 'variaveis'. Enviando variáveis do escopo atual\n");
135
+ var todasVariaveis = interpretadorInterface.pilhaEscoposExecucao.obterTodasVariaveis([]);
136
+ for (var _b = 0, todasVariaveis_1 = todasVariaveis; _b < todasVariaveis_1.length; _b++) {
137
+ var grupoVariavel = todasVariaveis_1[_b];
138
+ for (var _c = 0, _d = Object.entries(grupoVariavel); _c < _d.length; _c++) {
139
+ var _e = _d[_c], nomeVariavel = _e[0], valor = _e[1];
140
+ conexao.write(nomeVariavel + ": " + valor + '\n');
141
+ }
142
+ }
143
+ break;
144
+ }
145
+ };
146
+ var aoFecharConexao = function () {
147
+ process.stdout.write('\n[Depurador] Conexão de ' + enderecoRemoto + ' fechada\ndelegua> ');
148
+ };
149
+ var aoObterErro = function (erro) {
150
+ process.stdout.write('\n[Depurador] Conexão ' + enderecoRemoto + ' com erro: ' + erro.message + '\ndelegua> ');
151
+ };
152
+ // `.bind()` é necessário aqui para que os eventos não usem net.Socket ou net.Server como o `this`,
153
+ // como acontece normalmente se o `.bind()` não é chamado.
154
+ conexao.on('data', aoReceberDados.bind(_this));
155
+ conexao.once('close', aoFecharConexao.bind(_this));
156
+ conexao.on('error', aoObterErro.bind(_this));
157
+ };
158
+ this.instanciaDelegua = _instanciaDelegua;
159
+ // Isso é só um exemplo de definição de ponto de parada para testar
160
+ // `Interpretador.executar()`.
161
+ // Deve ser removido num futuro próximo.
162
+ /* (this.instanciaDelegua.interpretador as any).pontosParada.push({
163
+ hashArquivo: cyrb53('./testes/exemplos/importacao/importacao-2.egua'),
164
+ linha: 4
165
+ }); */
166
+ this.servidor = net.createServer();
167
+ this.conexoes = {};
168
+ this.contadorConexoes = 0;
169
+ this.operarConexao.bind(this);
170
+ }
171
+ ServidorDepuracao.prototype.iniciarServidorDepuracao = function () {
172
+ // É necessário mudar o `this` aqui por `.bind()`, senão `this` será net.Server dentro dos métodos.
173
+ this.servidor.on('connection', this.operarConexao.bind(this));
174
+ this.servidor.listen(7777);
175
+ return this.servidor.address();
176
+ };
177
+ ServidorDepuracao.prototype.finalizarServidorDepuracao = function () {
178
+ var _this = this;
179
+ Object.keys(this.conexoes).forEach(function (chave) {
180
+ _this.conexoes[chave].destroy();
181
+ });
182
+ this.servidor.close();
183
+ };
184
+ return ServidorDepuracao;
185
+ }());
186
+ exports.ServidorDepuracao = ServidorDepuracao;
187
+ //# sourceMappingURL=servidor-depuracao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servidor-depuracao.js","sourceRoot":"","sources":["../../../fontes/depuracao/servidor-depuracao.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare class DeleguaFuncao extends Chamavel {
6
6
  declaracao: any;
7
7
  eInicializador: boolean;
8
8
  instancia: ObjetoDeleguaClasse;
9
- constructor(nome: string, declaracao: string, instancia?: ObjetoDeleguaClasse, eInicializador?: boolean);
9
+ constructor(nome: string, declaracao: any, instancia?: ObjetoDeleguaClasse, eInicializador?: boolean);
10
10
  aridade(): number;
11
11
  paraTexto(): string;
12
12
  chamar(interpretador: InterpretadorInterface, argumentos: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"funcao.js","sourceRoot":"","sources":["../../../fontes/estruturas/funcao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,wCAAuC;AAGvC,sCAA2C;AAG3C;IAAmC,iCAAQ;IAMvC,uBAAY,IAAY,EAAE,UAAkB,EAAE,SAA0C,EAAE,cAAsB;QAAlE,0BAAA,EAAA,qBAA0C;QAAE,+BAAA,EAAA,sBAAsB;QAAhH,YACI,iBAAO,SAKV;QAJG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;;IACzC,CAAC;IAED,+BAAO,GAAP;;QACI,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;IACpD,CAAC;IAED,iCAAS,GAAT;QACI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,UAAU,CAAC;QAC1C,OAAO,4BAAW,IAAI,CAAC,IAAI,MAAG,CAAC;IACnC,CAAC;IAED,8BAAM,GAAN,UAAO,aAAqC,EAAE,UAAe;QACzD,IAAI,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE5C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEhC,IAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBACtC,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACxB,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClE;gBAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAC7C;QAED,IAAM,YAAY,GAAQ,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,YAAY,YAAY,uBAAa,EAAE;YACvC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,cAAc,EAAG;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IAExB,CAAC;IAED,wCAAgB,GAAhB,UAAiB,SAA8B;QAC3C,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,SAAS,EACT,IAAI,CAAC,cAAc,CACtB,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAlED,CAAmC,mBAAQ,GAkE1C;AAlEY,sCAAa"}
1
+ {"version":3,"file":"funcao.js","sourceRoot":"","sources":["../../../fontes/estruturas/funcao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,wCAAuC;AAGvC,sCAA2C;AAG3C;IAAmC,iCAAQ;IAMvC,uBAAY,IAAY,EAAE,UAAe,EAAE,SAA0C,EAAE,cAAsB;QAAlE,0BAAA,EAAA,qBAA0C;QAAE,+BAAA,EAAA,sBAAsB;QAA7G,YACI,iBAAO,SAKV;QAJG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;;IACzC,CAAC;IAED,+BAAO,GAAP;;QACI,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;IACpD,CAAC;IAED,iCAAS,GAAT;QACI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,UAAU,CAAC;QAC1C,OAAO,4BAAW,IAAI,CAAC,IAAI,MAAG,CAAC;IACnC,CAAC;IAED,8BAAM,GAAN,UAAO,aAAqC,EAAE,UAAe;QACzD,IAAI,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE5C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEhC,IAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBACtC,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACxB,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClE;gBAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAC7C;QAED,IAAM,YAAY,GAAQ,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,YAAY,YAAY,uBAAa,EAAE;YACvC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,cAAc,EAAG;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IAExB,CAAC;IAED,wCAAgB,GAAhB,UAAiB,SAA8B;QAC3C,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,SAAS,EACT,IAAI,CAAC,cAAc,CACtB,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAlED,CAAmC,mBAAQ,GAkE1C;AAlEY,sCAAa"}
@@ -1,9 +1,26 @@
1
1
  import { AvaliadorSintaticoInterface, LexadorInterface } from '../interfaces';
2
2
  import { ImportadorInterface } from "../interfaces/importador-interface";
3
3
  import { RetornoImportador } from './retorno-importador';
4
+ /**
5
+ * O Importador é responsável por manusear arquivos. Coordena as fases de lexação, avaliação sintática,
6
+ * cataloga informações do arquivo no núcleo da linguagem (através das referências `arquivosAbertos` e
7
+ * `conteudoArquivosAbertos`) e aponta erros caso ocorram.
8
+ *
9
+ */
4
10
  export declare class Importador implements ImportadorInterface {
5
11
  lexador: LexadorInterface;
6
12
  avaliadorSintatico: AvaliadorSintaticoInterface;
7
- constructor(lexador: LexadorInterface, avaliadorSintatico: AvaliadorSintaticoInterface);
13
+ arquivosAbertos: {
14
+ [identificador: string]: string;
15
+ };
16
+ conteudoArquivosAbertos: {
17
+ [identificador: string]: string[];
18
+ };
19
+ depuracao: boolean;
20
+ constructor(lexador: LexadorInterface, avaliadorSintatico: AvaliadorSintaticoInterface, arquivosAbertos: {
21
+ [identificador: string]: string;
22
+ }, conteudoArquivosAbertos: {
23
+ [identificador: string]: string[];
24
+ }, depuracao: boolean);
8
25
  importar(caminhoRelativoArquivo: string): RetornoImportador;
9
26
  }
@@ -22,19 +22,33 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  exports.Importador = void 0;
27
30
  var fs = __importStar(require("fs"));
28
31
  var caminho = __importStar(require("path"));
32
+ var cyrb53_1 = __importDefault(require("../depuracao/cyrb53"));
33
+ /**
34
+ * O Importador é responsável por manusear arquivos. Coordena as fases de lexação, avaliação sintática,
35
+ * cataloga informações do arquivo no núcleo da linguagem (através das referências `arquivosAbertos` e
36
+ * `conteudoArquivosAbertos`) e aponta erros caso ocorram.
37
+ *
38
+ */
29
39
  var Importador = /** @class */ (function () {
30
- function Importador(lexador, avaliadorSintatico) {
40
+ function Importador(lexador, avaliadorSintatico, arquivosAbertos, conteudoArquivosAbertos, depuracao) {
31
41
  this.lexador = lexador;
32
42
  this.avaliadorSintatico = avaliadorSintatico;
43
+ this.arquivosAbertos = arquivosAbertos;
44
+ this.conteudoArquivosAbertos = conteudoArquivosAbertos;
45
+ this.depuracao = depuracao;
33
46
  }
34
47
  Importador.prototype.importar = function (caminhoRelativoArquivo) {
35
48
  var nomeArquivo = caminho.basename(caminhoRelativoArquivo);
36
- // const hashArquivo =
49
+ var hashArquivo = (0, cyrb53_1.default)(caminhoRelativoArquivo);
37
50
  if (!fs.existsSync(nomeArquivo)) {
51
+ // TODO: Terminar.
38
52
  /* throw new ErroEmTempoDeExecucao(
39
53
  declaracao.simboloFechamento,
40
54
  'Não foi possível encontrar arquivo importado.',
@@ -45,11 +59,15 @@ var Importador = /** @class */ (function () {
45
59
  var conteudoDoArquivo = dadosDoArquivo
46
60
  .toString()
47
61
  .split('\n');
48
- var retornoLexador = this.lexador.mapear(conteudoDoArquivo);
49
- var retornoAvaliadorSintatico = this.avaliadorSintatico.analisar(retornoLexador);
62
+ var retornoLexador = this.lexador.mapear(conteudoDoArquivo, hashArquivo);
63
+ var retornoAvaliadorSintatico = this.avaliadorSintatico.analisar(retornoLexador, hashArquivo);
64
+ this.arquivosAbertos[hashArquivo] = caminho.resolve(caminhoRelativoArquivo);
65
+ if (this.depuracao) {
66
+ this.conteudoArquivosAbertos[hashArquivo] = conteudoDoArquivo;
67
+ }
50
68
  return {
51
69
  nomeArquivo: nomeArquivo,
52
- codigo: conteudoDoArquivo,
70
+ hashArquivo: hashArquivo,
53
71
  retornoLexador: retornoLexador,
54
72
  retornoAvaliadorSintatico: retornoAvaliadorSintatico
55
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"importador.js","sourceRoot":"","sources":["../../../fontes/importador/importador.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,4CAAgC;AAOhC;IAII,oBAAY,OAAyB,EAAE,kBAA+C;QAClF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACjD,CAAC;IAED,6BAAQ,GAAR,UAAS,sBAA8B;QACnC,IAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC7D,uBAAuB;QAEvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC7B;;;;iBAIK;SACR;QAED,IAAM,cAAc,GAAW,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACvE,IAAM,iBAAiB,GAAa,cAAc;aAC7C,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAM,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAEnF,OAAO;YACH,WAAW,aAAA;YACX,MAAM,EAAE,iBAAiB;YACzB,cAAc,gBAAA;YACd,yBAAyB,2BAAA;SACP,CAAC;IAC3B,CAAC;IACL,iBAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,gCAAU"}
1
+ {"version":3,"file":"importador.js","sourceRoot":"","sources":["../../../fontes/importador/importador.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,4CAAgC;AAEhC,+DAAyC;AAOzC;;;;;GAKG;AACH;IAOI,oBACI,OAAyB,EACzB,kBAA+C,EAC/C,eAAoD,EACpD,uBAA8D,EAC9D,SAAkB;QAElB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,6BAAQ,GAAR,UAAS,sBAA8B;QACnC,IAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAM,WAAW,GAAG,IAAA,gBAAM,EAAC,sBAAsB,CAAC,CAAC;QAEnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC7B,kBAAkB;YAClB;;;;iBAIK;SACR;QAED,IAAM,cAAc,GAAW,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACvE,IAAM,iBAAiB,GAAa,cAAc;aAC7C,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAM,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAChG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAE5E,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC;SACjE;QAED,OAAO;YACH,WAAW,aAAA;YACX,WAAW,aAAA;YACX,cAAc,gBAAA;YACd,yBAAyB,2BAAA;SACP,CAAC;IAC3B,CAAC;IACL,iBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,gCAAU"}
@@ -1,9 +1,8 @@
1
- import { RetornoAvaliadorSintatico } from "../avaliador-sintatico/retorno-avaliador-sintatico";
2
- import { RetornoLexador } from "../lexador/retorno-lexador";
1
+ import { RetornoAvaliadorSintatico } from "../interfaces/retornos/retorno-avaliador-sintatico";
2
+ import { RetornoLexador } from "../interfaces/retornos/retorno-lexador";
3
3
  export interface RetornoImportador {
4
4
  nomeArquivo: string;
5
5
  hashArquivo: number;
6
- codigo: string[];
7
6
  retornoLexador: RetornoLexador;
8
7
  retornoAvaliadorSintatico: RetornoAvaliadorSintatico;
9
8
  }
@@ -1,8 +1,8 @@
1
1
  import { ErroAvaliadorSintatico } from '../avaliador-sintatico/erro-avaliador-sintatico';
2
- import { RetornoAvaliadorSintatico } from '../avaliador-sintatico/retorno-avaliador-sintatico';
2
+ import { RetornoAvaliadorSintatico } from './retornos/retorno-avaliador-sintatico';
3
3
  import { Construto, Funcao } from '../construtos';
4
4
  import { Classe, Continua, Enquanto, Escolha, Escreva, Fazer, Funcao as FuncaoDeclaracao, Importar, Para, Retorna, Se, Sustar, Tente, Var } from '../declaracoes';
5
- import { RetornoLexador } from '../lexador/retorno-lexador';
5
+ import { RetornoLexador } from './retornos/retorno-lexador';
6
6
  import { SimboloInterface } from './simbolo-interface';
7
7
  export interface AvaliadorSintaticoInterface {
8
8
  simbolos: SimboloInterface[];
@@ -56,5 +56,5 @@ export interface AvaliadorSintaticoInterface {
56
56
  corpoDaFuncao(tipo: any): Funcao;
57
57
  declaracaoDeClasse(): Classe;
58
58
  declaracao(): any;
59
- analisar(retornoLexador: RetornoLexador): RetornoAvaliadorSintatico;
59
+ analisar(retornoLexador: RetornoLexador, hashArquivo?: number): RetornoAvaliadorSintatico;
60
60
  }
@@ -1,20 +1,18 @@
1
1
  import { RetornoImportador } from "../importador";
2
- import { AvaliadorSintaticoInterface, ImportadorInterface, InterpretadorInterface, LexadorInterface, ResolvedorInterface, RetornoExecucaoInterface, SimboloInterface } from "../interfaces";
2
+ import { AvaliadorSintaticoInterface, ImportadorInterface, InterpretadorComDepuracaoInterface, InterpretadorInterface, LexadorInterface, ResolvedorInterface, RetornoExecucaoInterface, SimboloInterface } from "../interfaces";
3
3
  export interface DeleguaInterface {
4
- nomeArquivo: string;
5
4
  teveErro: boolean;
6
5
  teveErroEmTempoDeExecucao: boolean;
7
6
  dialeto: string;
8
7
  arquivosAbertos: {
9
8
  [identificador: string]: string;
10
9
  };
11
- interpretador: InterpretadorInterface;
10
+ interpretador: InterpretadorInterface | InterpretadorComDepuracaoInterface;
12
11
  lexador: LexadorInterface;
13
12
  avaliadorSintatico: AvaliadorSintaticoInterface;
14
13
  resolvedor: ResolvedorInterface;
15
14
  importador: ImportadorInterface;
16
15
  versao(): string;
17
- iniciarDelegua(): void;
18
16
  carregarArquivo(caminhoRelativoArquivo: string): void;
19
17
  executar(retornoImportador: RetornoImportador): RetornoExecucaoInterface;
20
18
  reportar(linha: number, onde: any, mensagem: string): void;
@@ -1,9 +1,10 @@
1
1
  export * from './avaliador-sintatico-interface';
2
2
  export * from './delegua-interface';
3
3
  export * from './importador-interface';
4
+ export * from './interpretador-com-depuracao-interface';
4
5
  export * from './interpretador-interface';
5
6
  export * from './lexador-interface';
6
7
  export * from './pilha-interface';
7
8
  export * from './resolvedor-interface';
8
- export * from './retorno-execucao-interface';
9
+ export * from './retornos/retorno-execucao-interface';
9
10
  export * from './simbolo-interface';
@@ -17,10 +17,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./avaliador-sintatico-interface"), exports);
18
18
  __exportStar(require("./delegua-interface"), exports);
19
19
  __exportStar(require("./importador-interface"), exports);
20
+ __exportStar(require("./interpretador-com-depuracao-interface"), exports);
20
21
  __exportStar(require("./interpretador-interface"), exports);
21
22
  __exportStar(require("./lexador-interface"), exports);
22
23
  __exportStar(require("./pilha-interface"), exports);
23
24
  __exportStar(require("./resolvedor-interface"), exports);
24
- __exportStar(require("./retorno-execucao-interface"), exports);
25
+ __exportStar(require("./retornos/retorno-execucao-interface"), exports);
25
26
  __exportStar(require("./simbolo-interface"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,sDAAoC;AACpC,oDAAkC;AAClC,yDAAuC;AACvC,+DAA6C;AAC7C,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,0EAAwD;AACxD,4DAA0C;AAC1C,sDAAoC;AACpC,oDAAkC;AAClC,yDAAuC;AACvC,wEAAsD;AACtD,sDAAoC"}
@@ -0,0 +1,11 @@
1
+ import { PontoParada } from "../depuracao";
2
+ import { InterpretadorInterface } from "./interpretador-interface";
3
+ export interface InterpretadorComDepuracaoInterface extends InterpretadorInterface {
4
+ adentrarEscopoAtivo: boolean;
5
+ pontoDeParadaAtivo: boolean;
6
+ pontosParada: PontoParada[];
7
+ interpretacaoApenasUmaInstrucao(): void;
8
+ continuarInterpretacao(): void;
9
+ interpretacaoApenasUmaInstrucao(): void;
10
+ proximoESair(): void;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interpretador-com-depuracao-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretador-com-depuracao-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/interpretador-com-depuracao-interface.ts"],"names":[],"mappings":""}
@@ -1,13 +1,12 @@
1
1
  import { Ambiente } from "../ambiente";
2
2
  import { Construto } from "../construtos";
3
3
  import { Declaracao } from "../declaracoes";
4
- import { RetornoInterpretador } from "../interpretador/retorno-interpretador";
5
- import { EscopoExecucao } from "./escopo-execucao";
6
- import { PilhaInterface } from "./pilha-interface";
4
+ import { PilhaEscoposExecucaoInterface } from "./pilha-escopos-execucao-interface";
5
+ import { RetornoInterpretador } from "./retornos/retorno-interpretador";
7
6
  export interface InterpretadorInterface {
8
7
  diretorioBase: any;
9
8
  locais: Map<Construto, number>;
10
- pilhaEscoposExecucao: PilhaInterface<EscopoExecucao>;
9
+ pilhaEscoposExecucao: PilhaEscoposExecucaoInterface;
11
10
  visitarExpressaoLiteral(expressao: any): any;
12
11
  avaliar(expressao: any): any;
13
12
  visitarExpressaoAgrupamento(expressao: any): any;
@@ -1,4 +1,4 @@
1
- import { RetornoLexador } from "../lexador/retorno-lexador";
1
+ import { RetornoLexador } from "./retornos/retorno-lexador";
2
2
  import { SimboloInterface } from "./simbolo-interface";
3
3
  export interface LexadorInterface {
4
4
  simbolos: SimboloInterface[];
@@ -20,5 +20,5 @@ export interface LexadorInterface {
20
20
  analisarNumero(): void;
21
21
  identificarPalavraChave(): void;
22
22
  analisarToken(): void;
23
- mapear(codigo?: string[]): RetornoLexador;
23
+ mapear(codigo: string[], hashArquivo: number): RetornoLexador;
24
24
  }
@@ -0,0 +1,17 @@
1
+ import { DeleguaFuncao } from "../estruturas";
2
+ import { EscopoExecucao } from "./escopo-execucao";
3
+ import { PilhaInterface } from "./pilha-interface";
4
+ import { SimboloInterface } from "./simbolo-interface";
5
+ export interface PilhaEscoposExecucaoInterface extends PilhaInterface<EscopoExecucao> {
6
+ atribuirVariavel(simbolo: SimboloInterface, valor: any): void;
7
+ atribuirVariavelEm(distancia: number, simbolo: any, valor: any): void;
8
+ definirVariavel(nomeVariavel: string, valor: any): void;
9
+ elementos(): number;
10
+ naPosicao(posicao: number): EscopoExecucao;
11
+ obterTodasVariaveis(todasVariaveis: any[]): any[];
12
+ obterVariavel(simbolo: SimboloInterface): any;
13
+ obterVariavelEm(distancia: number, nome: string): any;
14
+ obterTodasDeleguaFuncao(): {
15
+ [nome: string]: DeleguaFuncao;
16
+ };
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pilha-escopos-execucao-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pilha-escopos-execucao-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/pilha-escopos-execucao-interface.ts"],"names":[],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  export interface PilhaInterface<T> {
2
2
  pilha: Array<T>;
3
- empilhar(item: T): any;
4
- eVazio(item: T): Boolean;
3
+ empilhar(item: T): void;
4
+ eVazio(): boolean;
5
5
  topoDaPilha(): T;
6
6
  removerUltimo(): T;
7
7
  }
@@ -0,0 +1,4 @@
1
+ export * from './retorno-avaliador-sintatico';
2
+ export * from './retorno-execucao-interface';
3
+ export * from './retorno-interpretador';
4
+ export * from './retorno-lexador';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./retorno-avaliador-sintatico"), exports);
18
+ __exportStar(require("./retorno-execucao-interface"), exports);
19
+ __exportStar(require("./retorno-interpretador"), exports);
20
+ __exportStar(require("./retorno-lexador"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/interfaces/retornos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,+DAA6C;AAC7C,0DAAwC;AACxC,oDAAkC"}
@@ -0,0 +1,6 @@
1
+ import { Declaracao } from "../../declaracoes";
2
+ import { ErroAvaliadorSintatico } from "../../avaliador-sintatico/erro-avaliador-sintatico";
3
+ export interface RetornoAvaliadorSintatico {
4
+ declaracoes: Declaracao[];
5
+ erros: ErroAvaliadorSintatico[];
6
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retorno-avaliador-sintatico.js","sourceRoot":"","sources":["../../../../fontes/interfaces/retornos/retorno-avaliador-sintatico.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
- import { ErroAvaliadorSintatico } from "../avaliador-sintatico";
2
- import { ErroInterpretador } from "../interpretador";
3
- import { ErroLexador } from "../lexador/erro-lexador";
1
+ import { ErroAvaliadorSintatico } from "../../avaliador-sintatico";
2
+ import { ErroInterpretador } from "../../interpretador";
3
+ import { ErroLexador } from "../../lexador/erro-lexador";
4
4
  export interface RetornoExecucaoInterface {
5
5
  erros: {
6
6
  avaliadorSintatico?: Array<ErroAvaliadorSintatico>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retorno-execucao-interface.js","sourceRoot":"","sources":["../../../../fontes/interfaces/retornos/retorno-execucao-interface.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { ErroInterpretador } from "./erro-interpretador";
1
+ import { ErroInterpretador } from "../../interpretador/erro-interpretador";
2
2
  export interface RetornoInterpretador {
3
3
  erros: ErroInterpretador[];
4
4
  resultado: String[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retorno-interpretador.js","sourceRoot":"","sources":["../../../../fontes/interfaces/retornos/retorno-interpretador.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { SimboloInterface } from "..";
2
+ import { Pragma } from "../../lexador/dialetos/pragma";
3
+ import { ErroLexador } from "../../lexador/erro-lexador";
4
+ export interface RetornoLexador {
5
+ simbolos: SimboloInterface[];
6
+ erros: ErroLexador[];
7
+ pragmas?: {
8
+ [linha: number]: Pragma;
9
+ };
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retorno-lexador.js","sourceRoot":"","sources":["../../../../fontes/interfaces/retornos/retorno-lexador.ts"],"names":[],"mappings":""}
@@ -3,4 +3,5 @@ export interface SimboloInterface {
3
3
  tipo: string;
4
4
  literal: string;
5
5
  linha: string | number;
6
+ hashArquivo: number;
6
7
  }
@@ -4,7 +4,7 @@ import { DeleguaFuncao } from '../../estruturas/funcao';
4
4
  import { InterpretadorInterface, SimboloInterface } from '../../interfaces';
5
5
  import { Classe, Declaracao, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao, Importar, Para, Se, Tente, Var } from '../../declaracoes';
6
6
  import { Atribuir, Construto, Literal, Super, Variavel } from '../../construtos';
7
- import { RetornoInterpretador } from '../retorno-interpretador';
7
+ import { RetornoInterpretador } from '../../interfaces/retornos/retorno-interpretador';
8
8
  import { ErroInterpretador } from '../erro-interpretador';
9
9
  import { PilhaEscoposExecucao } from '../pilha-escopos-execucao';
10
10
  import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../../quebras';