@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.
- package/README.md +25 -3
- package/bin/delegua +1 -1
- package/bin/delegua.cmd +1 -1
- package/bin/package.json +7 -5
- package/coverage/lcov-report/sorter.js +4 -4
- package/coverage/lcov-report/sorter.js.map +1 -1
- package/execucao.d.ts +1 -0
- package/execucao.js +29 -0
- package/execucao.js.map +1 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +108 -105
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +226 -232
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +35 -55
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +211 -216
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +231 -237
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +3 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +188 -121
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
- package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +6 -24
- package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -1
- package/fontes/bibliotecas/biblioteca-global.js +206 -367
- package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
- package/fontes/bibliotecas/importar-biblioteca.js +28 -29
- package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
- package/fontes/bibliotecas/primitivas-texto.js +9 -22
- package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
- package/fontes/bibliotecas/primitivas-vetor.js +12 -14
- package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
- package/fontes/construtos/acesso-indice-variavel.js +6 -50
- package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
- package/fontes/construtos/acesso-metodo.js +6 -50
- package/fontes/construtos/acesso-metodo.js.map +1 -1
- package/fontes/construtos/agrupamento.js +6 -50
- package/fontes/construtos/agrupamento.js.map +1 -1
- package/fontes/construtos/atribuicao-sobrescrita.js +6 -50
- package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
- package/fontes/construtos/atribuir.js +6 -50
- package/fontes/construtos/atribuir.js.map +1 -1
- package/fontes/construtos/binario.js +6 -50
- package/fontes/construtos/binario.js.map +1 -1
- package/fontes/construtos/chamada.js +6 -50
- package/fontes/construtos/chamada.js.map +1 -1
- package/fontes/construtos/definir-valor.js +6 -50
- package/fontes/construtos/definir-valor.js.map +1 -1
- package/fontes/construtos/dicionario.js +6 -50
- package/fontes/construtos/dicionario.js.map +1 -1
- package/fontes/construtos/funcao.d.ts +2 -2
- package/fontes/construtos/funcao.js +6 -47
- package/fontes/construtos/funcao.js.map +1 -1
- package/fontes/construtos/isto.js +6 -47
- package/fontes/construtos/isto.js.map +1 -1
- package/fontes/construtos/literal.js +6 -47
- package/fontes/construtos/literal.js.map +1 -1
- package/fontes/construtos/logico.js +6 -50
- package/fontes/construtos/logico.js.map +1 -1
- package/fontes/construtos/super.js +6 -47
- package/fontes/construtos/super.js.map +1 -1
- package/fontes/construtos/unario.js +6 -50
- package/fontes/construtos/unario.js.map +1 -1
- package/fontes/construtos/variavel.js +6 -47
- package/fontes/construtos/variavel.js.map +1 -1
- package/fontes/construtos/vetor.js +6 -50
- package/fontes/construtos/vetor.js.map +1 -1
- package/fontes/declaracoes/bloco.js +9 -70
- package/fontes/declaracoes/bloco.js.map +1 -1
- package/fontes/declaracoes/classe.js +11 -72
- package/fontes/declaracoes/classe.js.map +1 -1
- package/fontes/declaracoes/continua.js +8 -65
- package/fontes/declaracoes/continua.js.map +1 -1
- package/fontes/declaracoes/declaracao.js +6 -47
- package/fontes/declaracoes/declaracao.js.map +1 -1
- package/fontes/declaracoes/enquanto.js +10 -71
- package/fontes/declaracoes/enquanto.js.map +1 -1
- package/fontes/declaracoes/escolha.js +11 -72
- package/fontes/declaracoes/escolha.js.map +1 -1
- package/fontes/declaracoes/escreva.js +9 -70
- package/fontes/declaracoes/escreva.js.map +1 -1
- package/fontes/declaracoes/expressao.js +9 -70
- package/fontes/declaracoes/expressao.js.map +1 -1
- package/fontes/declaracoes/fazer.js +10 -71
- package/fontes/declaracoes/fazer.js.map +1 -1
- package/fontes/declaracoes/funcao.js +10 -68
- package/fontes/declaracoes/funcao.js.map +1 -1
- package/fontes/declaracoes/importar.js +10 -71
- package/fontes/declaracoes/importar.js.map +1 -1
- package/fontes/declaracoes/leia.js +9 -70
- package/fontes/declaracoes/leia.js.map +1 -1
- package/fontes/declaracoes/para.js +12 -73
- package/fontes/declaracoes/para.js.map +1 -1
- package/fontes/declaracoes/retorna.js +10 -71
- package/fontes/declaracoes/retorna.js.map +1 -1
- package/fontes/declaracoes/se.js +12 -73
- package/fontes/declaracoes/se.js.map +1 -1
- package/fontes/declaracoes/sustar.js +8 -65
- package/fontes/declaracoes/sustar.js.map +1 -1
- package/fontes/declaracoes/tente.js +12 -73
- package/fontes/declaracoes/tente.js.map +1 -1
- package/fontes/declaracoes/var.js +10 -71
- package/fontes/declaracoes/var.js.map +1 -1
- package/fontes/delegua.js +117 -200
- package/fontes/delegua.js.map +1 -1
- package/fontes/depuracao/cyrb53.js +3 -4
- package/fontes/depuracao/cyrb53.js.map +1 -1
- package/fontes/depuracao/servidor-depuracao.js +125 -209
- package/fontes/depuracao/servidor-depuracao.js.map +1 -1
- package/fontes/espaco-variaveis.js +3 -4
- package/fontes/espaco-variaveis.js.map +1 -1
- package/fontes/estruturas/chamavel.js +6 -9
- package/fontes/estruturas/chamavel.js.map +1 -1
- package/fontes/estruturas/classe-padrao.js +17 -35
- package/fontes/estruturas/classe-padrao.js.map +1 -1
- package/fontes/estruturas/delegua-classe.d.ts +2 -2
- package/fontes/estruturas/delegua-classe.js +21 -39
- package/fontes/estruturas/delegua-classe.js.map +1 -1
- package/fontes/estruturas/delegua-funcao.js +48 -114
- package/fontes/estruturas/delegua-funcao.js.map +1 -1
- package/fontes/estruturas/funcao-padrao.js +13 -75
- package/fontes/estruturas/funcao-padrao.js.map +1 -1
- package/fontes/estruturas/metodo-primitiva.js +11 -39
- package/fontes/estruturas/metodo-primitiva.js.map +1 -1
- package/fontes/estruturas/modulo.js +6 -7
- package/fontes/estruturas/modulo.js.map +1 -1
- package/fontes/estruturas/objeto-delegua-classe.d.ts +3 -3
- package/fontes/estruturas/objeto-delegua-classe.js +12 -13
- package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
- package/fontes/estruturas/objeto-padrao.js +9 -11
- package/fontes/estruturas/objeto-padrao.js.map +1 -1
- package/fontes/excecoes/erro-em-tempo-de-execucao.js +8 -26
- package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
- package/fontes/importador/importador.js +21 -22
- package/fontes/importador/importador.js.map +1 -1
- package/fontes/interfaces/parametro-interface.d.ts +1 -1
- package/fontes/interpretador/dialetos/egua-classico.js +592 -1019
- package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
- package/fontes/interpretador/inferenciador.js +1 -1
- package/fontes/interpretador/inferenciador.js.map +1 -1
- package/fontes/interpretador/interpretador-com-depuracao.js +186 -336
- package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
- package/fontes/interpretador/interpretador.js +706 -1175
- package/fontes/interpretador/interpretador.js.map +1 -1
- package/fontes/interpretador/pilha-escopos-execucao.js +52 -57
- package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-birl.d.ts +1 -0
- package/fontes/lexador/dialetos/lexador-birl.js +55 -64
- package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-egua-classico.js +43 -46
- package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-eguap.js +59 -63
- package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-visualg.js +45 -54
- package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +24 -0
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +25 -1
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
- package/fontes/lexador/lexador-base-linha-unica.js +28 -29
- package/fontes/lexador/lexador-base-linha-unica.js.map +1 -1
- package/fontes/lexador/lexador.js +53 -57
- package/fontes/lexador/lexador.js.map +1 -1
- package/fontes/lexador/palavras-reservadas.js +1 -1
- package/fontes/lexador/palavras-reservadas.js.map +1 -1
- package/fontes/lexador/simbolo.js +5 -6
- package/fontes/lexador/simbolo.js.map +1 -1
- package/fontes/quebras/index.js +11 -42
- package/fontes/quebras/index.js.map +1 -1
- package/fontes/resolvedor/dialetos/egua-classico.js +143 -144
- package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
- package/fontes/resolvedor/erro-resolvedor.js +6 -24
- package/fontes/resolvedor/erro-resolvedor.js.map +1 -1
- package/fontes/resolvedor/pilha-escopos.js +11 -12
- package/fontes/resolvedor/pilha-escopos.js.map +1 -1
- package/fontes/tipos-de-simbolos/birl.d.ts +1 -0
- package/fontes/tipos-de-simbolos/birl.js +1 -0
- package/fontes/tipos-de-simbolos/birl.js.map +1 -1
- package/fontes/tipos-de-simbolos/comum.d.ts +2 -0
- package/fontes/tipos-de-simbolos/comum.js +2 -0
- package/fontes/tipos-de-simbolos/comum.js.map +1 -1
- package/fontes/tipos-de-simbolos/visualg.d.ts +9 -0
- package/fontes/tipos-de-simbolos/visualg.js +9 -0
- package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
- package/index.d.ts +4 -0
- package/index.js +4 -26
- package/index.js.map +1 -1
- package/jest.config.js +9 -47
- package/jest.config.js.map +1 -1
- package/package.json +7 -5
- package/testes/__mocks__/estatistica.js +1 -1
- package/testes/__mocks__/estatistica.js.map +1 -1
- package/testes/__mocks__/fisica.js +1 -1
- package/testes/__mocks__/fisica.js.map +1 -1
- package/testes/__mocks__/matematica.js +1 -1
- package/testes/__mocks__/matematica.js.map +1 -1
- package/testes/avaliador-sintatico.test.js +27 -27
- package/testes/avaliador-sintatico.test.js.map +1 -1
- package/testes/biblioteca-global.test.js +197 -440
- package/testes/biblioteca-global.test.js.map +1 -1
- package/testes/birl/avaliador-sintatico.test.js +8 -8
- package/testes/birl/avaliador-sintatico.test.js.map +1 -1
- package/testes/birl/lexador.test.js +10 -10
- package/testes/birl/lexador.test.js.map +1 -1
- package/testes/delegua.test.js +7 -7
- package/testes/delegua.test.js.map +1 -1
- package/testes/egua-classico/avaliador-sintatico.test.js +14 -14
- package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
- package/testes/egua-classico/delegua.test.js +5 -5
- package/testes/egua-classico/delegua.test.js.map +1 -1
- package/testes/egua-classico/interpretador.test.js +180 -396
- package/testes/egua-classico/interpretador.test.js.map +1 -1
- package/testes/egua-classico/lexador.test.js +23 -23
- package/testes/egua-classico/lexador.test.js.map +1 -1
- package/testes/egua-classico/resolvedor.test.js +12 -12
- package/testes/egua-classico/resolvedor.test.js.map +1 -1
- package/testes/eguap/avaliador-sintatico.test.js +11 -11
- package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
- package/testes/eguap/interpretador.test.js +189 -405
- package/testes/eguap/interpretador.test.js.map +1 -1
- package/testes/eguap/lexador.test.js +18 -18
- package/testes/eguap/lexador.test.js.map +1 -1
- package/testes/interpretador.test.js +431 -908
- package/testes/interpretador.test.js.map +1 -1
- package/testes/lexador.test.js +42 -42
- package/testes/lexador.test.js.map +1 -1
- package/testes/visualg/avaliador-sintatico.test.js +23 -23
- package/testes/visualg/avaliador-sintatico.test.js.map +1 -1
- package/testes/visualg/interpretador.test.js +16 -61
- package/testes/visualg/interpretador.test.js.map +1 -1
- package/testes/visualg/lexador.test.js +15 -15
- package/testes/visualg/lexador.test.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objeto-delegua-classe.js","sourceRoot":"","sources":["../../../fontes/estruturas/objeto-delegua-classe.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"objeto-delegua-classe.js","sourceRoot":"","sources":["../../../fontes/estruturas/objeto-delegua-classe.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AAIpD,MAAa,mBAAmB;IAI5B,YAAY,MAAW;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAyB;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACtC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,IAAI,gCAAqB,CAC3B,OAAO,EACP,mCAAmC,CACtC,CAAC;IACN,CAAC;IAED,OAAO,CAAC,OAAyB,EAAE,KAAU;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;IAC/C,CAAC;CACJ;AA9BD,kDA8BC"}
|
|
@@ -4,20 +4,18 @@ exports.ObjetoPadrao = void 0;
|
|
|
4
4
|
/**
|
|
5
5
|
* Um objeto padrão é uma instância de uma Classe Padrão (JavaScript).
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
class ObjetoPadrao {
|
|
8
|
+
constructor(classePadrao) {
|
|
9
9
|
this.classePadrao = classePadrao;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
for (
|
|
14
|
-
|
|
15
|
-
retornoTexto += " - ".concat(nome, ": ").concat(valor, "\n");
|
|
11
|
+
paraTexto() {
|
|
12
|
+
let retornoTexto = `<objeto-padrão da classe ${this.classePadrao}>\n`;
|
|
13
|
+
for (const [nome, valor] of Object.entries(this)) {
|
|
14
|
+
retornoTexto += ` - ${nome}: ${valor}\n`;
|
|
16
15
|
}
|
|
17
|
-
retornoTexto +=
|
|
16
|
+
retornoTexto += `</objeto-padrão>`;
|
|
18
17
|
return retornoTexto;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
}());
|
|
18
|
+
}
|
|
19
|
+
}
|
|
22
20
|
exports.ObjetoPadrao = ObjetoPadrao;
|
|
23
21
|
//# sourceMappingURL=objeto-padrao.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objeto-padrao.js","sourceRoot":"","sources":["../../../fontes/estruturas/objeto-padrao.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"objeto-padrao.js","sourceRoot":"","sources":["../../../fontes/estruturas/objeto-padrao.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,YAAY;IAGrB,YAAY,YAAoB;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,SAAS;QACL,IAAI,YAAY,GAAG,4BAA4B,IAAI,CAAC,YAAY,KAAK,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC9C,YAAY,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;SAC/C;QACD,YAAY,IAAI,kBAAkB,CAAC;QACnC,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAfD,oCAeC"}
|
|
@@ -1,32 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.ErroEmTempoDeExecucao = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Object.setPrototypeOf(_this, ErroEmTempoDeExecucao.prototype);
|
|
27
|
-
return _this;
|
|
4
|
+
class ErroEmTempoDeExecucao extends Error {
|
|
5
|
+
constructor(simbolo, mensagem, linha) {
|
|
6
|
+
super(mensagem);
|
|
7
|
+
this.simbolo = simbolo;
|
|
8
|
+
this.mensagem = mensagem;
|
|
9
|
+
this.linha = linha;
|
|
10
|
+
Object.setPrototypeOf(this, ErroEmTempoDeExecucao.prototype);
|
|
28
11
|
}
|
|
29
|
-
|
|
30
|
-
}(Error));
|
|
12
|
+
}
|
|
31
13
|
exports.ErroEmTempoDeExecucao = ErroEmTempoDeExecucao;
|
|
32
14
|
//# sourceMappingURL=erro-em-tempo-de-execucao.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erro-em-tempo-de-execucao.js","sourceRoot":"","sources":["../../../fontes/excecoes/erro-em-tempo-de-execucao.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"erro-em-tempo-de-execucao.js","sourceRoot":"","sources":["../../../fontes/excecoes/erro-em-tempo-de-execucao.ts"],"names":[],"mappings":";;;AAEA,MAAa,qBAAsB,SAAQ,KAAK;IAK5C,YAAY,OAA0B,EAAE,QAAiB,EAAE,KAAc;QACrE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACJ;AAZD,sDAYC"}
|
|
@@ -27,28 +27,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.Importador = void 0;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
const fs = __importStar(require("fs"));
|
|
31
|
+
const caminho = __importStar(require("path"));
|
|
32
|
+
const sistemaOperacional = __importStar(require("os"));
|
|
33
|
+
const cyrb53_1 = __importDefault(require("../depuracao/cyrb53"));
|
|
34
34
|
/**
|
|
35
35
|
* O Importador é responsável por manusear arquivos. Coordena as fases de lexação, avaliação sintática,
|
|
36
36
|
* cataloga informações do arquivo no núcleo da linguagem (através das referências `arquivosAbertos` e
|
|
37
37
|
* `conteudoArquivosAbertos`) e aponta erros caso ocorram.
|
|
38
38
|
*
|
|
39
39
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
class Importador {
|
|
41
|
+
constructor(lexador, avaliadorSintatico, arquivosAbertos, conteudoArquivosAbertos, depuracao) {
|
|
42
42
|
this.lexador = lexador;
|
|
43
43
|
this.avaliadorSintatico = avaliadorSintatico;
|
|
44
44
|
this.arquivosAbertos = arquivosAbertos;
|
|
45
45
|
this.conteudoArquivosAbertos = conteudoArquivosAbertos;
|
|
46
46
|
this.depuracao = depuracao;
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
importar(caminhoRelativoArquivo) {
|
|
49
|
+
const nomeArquivo = caminho.basename(caminhoRelativoArquivo);
|
|
50
|
+
const caminhoAbsolutoArquivo = caminho.resolve(caminhoRelativoArquivo);
|
|
51
|
+
const hashArquivo = (0, cyrb53_1.default)(caminhoAbsolutoArquivo.toLowerCase());
|
|
52
52
|
if (!fs.existsSync(nomeArquivo)) {
|
|
53
53
|
// TODO: Terminar.
|
|
54
54
|
/* throw new ErroEmTempoDeExecucao(
|
|
@@ -57,28 +57,27 @@ var Importador = /** @class */ (function () {
|
|
|
57
57
|
declaracao.linha
|
|
58
58
|
); */
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const dadosDoArquivo = fs.readFileSync(caminhoRelativoArquivo);
|
|
61
|
+
const conteudoDoArquivo = dadosDoArquivo
|
|
62
62
|
.toString()
|
|
63
63
|
.replace(sistemaOperacional.EOL, '\n')
|
|
64
64
|
.split('\n');
|
|
65
|
-
for (
|
|
65
|
+
for (let linha = 0; linha < conteudoDoArquivo.length; linha++) {
|
|
66
66
|
conteudoDoArquivo[linha] += '\0';
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
const retornoLexador = this.lexador.mapear(conteudoDoArquivo, hashArquivo);
|
|
69
|
+
const retornoAvaliadorSintatico = this.avaliadorSintatico.analisar(retornoLexador, hashArquivo);
|
|
70
70
|
this.arquivosAbertos[hashArquivo] = caminho.resolve(caminhoRelativoArquivo);
|
|
71
71
|
if (this.depuracao) {
|
|
72
72
|
this.conteudoArquivosAbertos[hashArquivo] = conteudoDoArquivo;
|
|
73
73
|
}
|
|
74
74
|
return {
|
|
75
|
-
nomeArquivo
|
|
76
|
-
hashArquivo
|
|
77
|
-
retornoLexador
|
|
78
|
-
retornoAvaliadorSintatico
|
|
75
|
+
nomeArquivo,
|
|
76
|
+
hashArquivo,
|
|
77
|
+
retornoLexador,
|
|
78
|
+
retornoAvaliadorSintatico,
|
|
79
79
|
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}());
|
|
80
|
+
}
|
|
81
|
+
}
|
|
83
82
|
exports.Importador = Importador;
|
|
84
83
|
//# sourceMappingURL=importador.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importador.js","sourceRoot":"","sources":["../../../fontes/importador/importador.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"importador.js","sourceRoot":"","sources":["../../../fontes/importador/importador.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,8CAAgC;AAChC,uDAAyC;AAEzC,iEAAyC;AAOzC;;;;;GAKG;AACH,MAAa,UAAU;IAOnB,YACI,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,QAAQ,CAAC,sBAA8B;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC7D,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,IAAA,gBAAM,EAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC7B,kBAAkB;YAClB;;;;iBAIK;SACR;QAED,MAAM,cAAc,GAAW,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAa,cAAc;aAC7C,QAAQ,EAAE;aACV,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC;aACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC3D,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;SACpC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACtC,iBAAiB,EACjB,WAAW,CACd,CAAC;QACF,MAAM,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAC9D,cAAc,EACd,WAAW,CACd,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAC/C,sBAAsB,CACzB,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC;SACjE;QAED,OAAO;YACH,WAAW;YACX,WAAW;YACX,cAAc;YACd,yBAAyB;SACP,CAAC;IAC3B,CAAC;CACJ;AApED,gCAoEC"}
|