@designliquido/delegua 0.2.2 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/package.json +3 -3
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +67 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +663 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -0
- package/fontes/avaliador-sintatico/dialetos/{egua-classico.d.ts → avaliador-sintatico-egua-classico.d.ts} +2 -1
- package/fontes/avaliador-sintatico/dialetos/{egua-classico.js → avaliador-sintatico-egua-classico.js} +153 -155
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +80 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +708 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -0
- package/fontes/avaliador-sintatico/dialetos/index.d.ts +1 -1
- package/fontes/avaliador-sintatico/dialetos/index.js +1 -1
- package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -1
- package/fontes/avaliador-sintatico/index.d.ts +2 -66
- package/fontes/avaliador-sintatico/index.js +15 -661
- package/fontes/avaliador-sintatico/index.js.map +1 -1
- package/fontes/delegua.d.ts +6 -3
- package/fontes/delegua.js +35 -21
- package/fontes/delegua.js.map +1 -1
- package/fontes/interfaces/avaliador-sintatico-interface.d.ts +4 -3
- package/fontes/interfaces/delegua-interface.d.ts +3 -0
- package/fontes/interfaces/delegua-interface.js +3 -0
- package/fontes/interfaces/delegua-interface.js.map +1 -0
- package/fontes/interfaces/index.d.ts +7 -6
- package/fontes/interfaces/index.js +1 -0
- package/fontes/interfaces/index.js.map +1 -1
- package/fontes/interfaces/interpretador-interface.d.ts +4 -5
- package/fontes/interfaces/lexador-interface.d.ts +1 -1
- package/fontes/interfaces/pilha-interface.d.ts +6 -6
- package/fontes/interfaces/resolvedor-interface.d.ts +2 -2
- package/fontes/interpretador/dialetos/egua-classico.d.ts +6 -4
- package/fontes/interpretador/dialetos/egua-classico.js +34 -31
- package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
- package/fontes/interpretador/erro-interpretador.d.ts +5 -0
- package/fontes/interpretador/erro-interpretador.js +3 -0
- package/fontes/interpretador/erro-interpretador.js.map +1 -0
- package/fontes/interpretador/index.d.ts +6 -3
- package/fontes/interpretador/index.js +32 -26
- package/fontes/interpretador/index.js.map +1 -1
- package/fontes/interpretador/retorno-interpretador.d.ts +4 -0
- package/fontes/interpretador/retorno-interpretador.js +3 -0
- package/fontes/interpretador/retorno-interpretador.js.map +1 -0
- package/fontes/lexador/dialetos/index.d.ts +1 -1
- package/fontes/lexador/dialetos/index.js +1 -1
- package/fontes/lexador/dialetos/index.js.map +1 -1
- package/fontes/lexador/dialetos/{egua-classico.d.ts → lexador-egua-classico.d.ts} +2 -2
- package/fontes/lexador/dialetos/{egua-classico.js → lexador-egua-classico.js} +41 -82
- package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -0
- package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -0
- package/fontes/lexador/dialetos/lexador-eguap.js +395 -0
- package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -0
- package/fontes/lexador/dialetos/pragma.d.ts +8 -0
- package/fontes/lexador/dialetos/pragma.js +3 -0
- package/fontes/lexador/dialetos/pragma.js.map +1 -0
- package/fontes/{tiposDeSimbolos.d.ts → lexador/dialetos/tipos-de-simbolos-eguap.d.ts} +2 -1
- package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js +74 -0
- package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js.map +1 -0
- package/fontes/lexador/index.d.ts +2 -43
- package/fontes/lexador/index.js +15 -412
- package/fontes/lexador/index.js.map +1 -1
- package/fontes/lexador/lexador.d.ts +43 -0
- package/fontes/lexador/lexador.js +372 -0
- package/fontes/lexador/lexador.js.map +1 -0
- package/fontes/lexador/palavras-reservadas.d.ts +35 -0
- package/fontes/lexador/palavras-reservadas.js +41 -0
- package/fontes/lexador/palavras-reservadas.js.map +1 -0
- package/fontes/lexador/retorno-lexador.d.ts +4 -0
- package/fontes/lexador/simbolo.d.ts +9 -0
- package/fontes/lexador/simbolo.js +17 -0
- package/fontes/lexador/simbolo.js.map +1 -0
- package/fontes/lexador/tipos-de-simbolos.d.ts +72 -0
- package/fontes/{tiposDeSimbolos.js → lexador/tipos-de-simbolos.js} +2 -1
- package/fontes/lexador/tipos-de-simbolos.js.map +1 -0
- package/fontes/resolvedor/dialetos/egua-classico.d.ts +3 -3
- package/fontes/resolvedor/dialetos/egua-classico.js +5 -4
- package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
- package/fontes/resolvedor/index.d.ts +3 -3
- package/fontes/resolvedor/index.js +5 -4
- package/fontes/resolvedor/index.js.map +1 -1
- package/fontes/resolvedor/pilha-escopos.d.ts +1 -1
- package/fontes/resolvedor/retorno-resolvedor.d.ts +2 -0
- package/fontes/tipos-de-simbolos.d.ts +72 -0
- package/fontes/tipos-de-simbolos.js +74 -0
- package/fontes/tipos-de-simbolos.js.map +1 -0
- package/package.json +3 -3
- package/testes/avaliador-sintatico.test.js +2 -2
- package/testes/avaliador-sintatico.test.js.map +1 -1
- package/testes/biblioteca-global.test.js +57 -57
- package/testes/biblioteca-global.test.js.map +1 -1
- package/testes/egua-classico/avaliador-sintatico.test.js +7 -16
- package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
- package/testes/egua-classico/interpretador.test.js +81 -81
- package/testes/egua-classico/interpretador.test.js.map +1 -1
- package/testes/egua-classico/resolvedor.test.js +4 -4
- package/testes/egua-classico/resolvedor.test.js.map +1 -1
- package/testes/eguap/lexador.test.d.ts +1 -0
- package/testes/eguap/lexador.test.js +53 -0
- package/testes/eguap/lexador.test.js.map +1 -0
- package/testes/interpretador.test.js +81 -81
- package/testes/interpretador.test.js.map +1 -1
- package/testes/resolvedor.test.js +1 -1
- package/testes/resolvedor.test.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/egua-classico.js.map +0 -1
- package/fontes/lexador/dialetos/egua-classico.js.map +0 -1
- package/fontes/tiposDeSimbolos.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,6DAA2C"}
|
package/fontes/delegua.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { AvaliadorSintaticoInterface, InterpretadorInterface, LexadorInterface, SimboloInterface } from './interfaces';
|
|
1
|
+
import { AvaliadorSintaticoInterface, DeleguaInterface, InterpretadorInterface, LexadorInterface, SimboloInterface } from './interfaces';
|
|
2
2
|
import { ResolvedorInterface } from './interfaces/resolvedor-interface';
|
|
3
|
-
export declare class Delegua {
|
|
3
|
+
export declare class Delegua implements DeleguaInterface {
|
|
4
4
|
nomeArquivo: string;
|
|
5
5
|
teveErro: boolean;
|
|
6
6
|
teveErroEmTempoDeExecucao: boolean;
|
|
7
7
|
dialeto: string;
|
|
8
|
+
arquivosAbertos: {
|
|
9
|
+
[identificador: string]: string;
|
|
10
|
+
};
|
|
8
11
|
interpretador: InterpretadorInterface;
|
|
9
12
|
lexador: LexadorInterface;
|
|
10
13
|
avaliadorSintatico: AvaliadorSintaticoInterface;
|
|
@@ -12,7 +15,7 @@ export declare class Delegua {
|
|
|
12
15
|
constructor(dialeto?: string, performance?: boolean, nomeArquivo?: string);
|
|
13
16
|
versao(): string;
|
|
14
17
|
iniciarDelegua(): void;
|
|
15
|
-
carregarArquivo(
|
|
18
|
+
carregarArquivo(caminhoRelativoArquivo: string): void;
|
|
16
19
|
executar(codigo: string[], nomeArquivo?: string): void;
|
|
17
20
|
reportar(linha: number, onde: any, mensagem: string): void;
|
|
18
21
|
erro(simbolo: SimboloInterface, mensagemDeErro: string): void;
|
package/fontes/delegua.js
CHANGED
|
@@ -31,16 +31,18 @@ var fs = __importStar(require("fs"));
|
|
|
31
31
|
var caminho = __importStar(require("path"));
|
|
32
32
|
var readline = __importStar(require("readline"));
|
|
33
33
|
var chalk_1 = __importDefault(require("chalk"));
|
|
34
|
-
var lexador_1 = require("./lexador");
|
|
35
|
-
var avaliador_sintatico_1 = require("./avaliador-sintatico");
|
|
34
|
+
var lexador_1 = require("./lexador/lexador");
|
|
35
|
+
var avaliador_sintatico_1 = require("./avaliador-sintatico/avaliador-sintatico");
|
|
36
36
|
var resolvedor_1 = require("./resolvedor");
|
|
37
37
|
var interpretador_1 = require("./interpretador");
|
|
38
|
-
var
|
|
38
|
+
var tipos_de_simbolos_1 = __importDefault(require("./lexador/tipos-de-simbolos"));
|
|
39
39
|
var excecoes_1 = require("./excecoes");
|
|
40
40
|
var egua_classico_1 = require("./interpretador/dialetos/egua-classico");
|
|
41
|
+
var lexador_egua_classico_1 = require("./lexador/dialetos/lexador-egua-classico");
|
|
42
|
+
var lexador_eguap_1 = require("./lexador/dialetos/lexador-eguap");
|
|
43
|
+
var avaliador_sintatico_eguap_1 = require("./avaliador-sintatico/dialetos/avaliador-sintatico-eguap");
|
|
41
44
|
var egua_classico_2 = require("./resolvedor/dialetos/egua-classico");
|
|
42
|
-
var
|
|
43
|
-
var egua_classico_4 = require("./lexador/dialetos/egua-classico");
|
|
45
|
+
var dialetos_1 = require("./avaliador-sintatico/dialetos");
|
|
44
46
|
var Delegua = /** @class */ (function () {
|
|
45
47
|
function Delegua(dialeto, performance, nomeArquivo) {
|
|
46
48
|
if (dialeto === void 0) { dialeto = 'delegua'; }
|
|
@@ -52,23 +54,23 @@ var Delegua = /** @class */ (function () {
|
|
|
52
54
|
switch (this.dialeto) {
|
|
53
55
|
case 'egua':
|
|
54
56
|
this.interpretador = new egua_classico_1.InterpretadorEguaClassico(this, process.cwd());
|
|
55
|
-
this.lexador = new
|
|
56
|
-
this.avaliadorSintatico = new
|
|
57
|
-
this.resolvedor = new egua_classico_2.ResolvedorEguaClassico(
|
|
57
|
+
this.lexador = new lexador_egua_classico_1.LexadorEguaClassico();
|
|
58
|
+
this.avaliadorSintatico = new dialetos_1.AvaliadorSintaticoEguaClassico();
|
|
59
|
+
this.resolvedor = new egua_classico_2.ResolvedorEguaClassico();
|
|
58
60
|
console.log('Usando dialeto: Égua');
|
|
59
61
|
break;
|
|
60
62
|
case 'eguap':
|
|
61
63
|
this.interpretador = new interpretador_1.Interpretador(this, process.cwd());
|
|
62
|
-
this.lexador = new
|
|
63
|
-
this.avaliadorSintatico = new
|
|
64
|
-
this.resolvedor = new resolvedor_1.Resolvedor(
|
|
64
|
+
this.lexador = new lexador_eguap_1.LexadorEguaP();
|
|
65
|
+
this.avaliadorSintatico = new avaliador_sintatico_eguap_1.AvaliadorSintaticoEguaP();
|
|
66
|
+
this.resolvedor = new resolvedor_1.Resolvedor();
|
|
65
67
|
console.log('Usando dialeto: ÉguaP');
|
|
66
68
|
break;
|
|
67
69
|
default:
|
|
68
70
|
this.interpretador = new interpretador_1.Interpretador(this, process.cwd(), performance);
|
|
69
71
|
this.lexador = new lexador_1.Lexador(performance);
|
|
70
72
|
this.avaliadorSintatico = new avaliador_sintatico_1.AvaliadorSintatico(performance);
|
|
71
|
-
this.resolvedor = new resolvedor_1.Resolvedor(
|
|
73
|
+
this.resolvedor = new resolvedor_1.Resolvedor();
|
|
72
74
|
console.log('Usando dialeto: padrão');
|
|
73
75
|
break;
|
|
74
76
|
}
|
|
@@ -100,9 +102,9 @@ var Delegua = /** @class */ (function () {
|
|
|
100
102
|
leiaLinha.prompt();
|
|
101
103
|
});
|
|
102
104
|
};
|
|
103
|
-
Delegua.prototype.carregarArquivo = function (
|
|
104
|
-
this.nomeArquivo = caminho.basename(
|
|
105
|
-
var dadosDoArquivo = fs.readFileSync(
|
|
105
|
+
Delegua.prototype.carregarArquivo = function (caminhoRelativoArquivo) {
|
|
106
|
+
this.nomeArquivo = caminho.basename(caminhoRelativoArquivo);
|
|
107
|
+
var dadosDoArquivo = fs.readFileSync(caminhoRelativoArquivo);
|
|
106
108
|
var conteudoDoArquivo = dadosDoArquivo
|
|
107
109
|
.toString()
|
|
108
110
|
.split('\n');
|
|
@@ -122,7 +124,7 @@ var Delegua = /** @class */ (function () {
|
|
|
122
124
|
}
|
|
123
125
|
return;
|
|
124
126
|
}
|
|
125
|
-
var retornoAvaliadorSintatico = this.avaliadorSintatico.analisar(retornoLexador
|
|
127
|
+
var retornoAvaliadorSintatico = this.avaliadorSintatico.analisar(retornoLexador);
|
|
126
128
|
if (retornoAvaliadorSintatico.erros.length > 0) {
|
|
127
129
|
for (var _b = 0, _c = retornoAvaliadorSintatico.erros; _b < _c.length; _b++) {
|
|
128
130
|
var erroAvaliadorSintatico = _c[_b];
|
|
@@ -138,7 +140,20 @@ var Delegua = /** @class */ (function () {
|
|
|
138
140
|
}
|
|
139
141
|
return;
|
|
140
142
|
}
|
|
141
|
-
this.interpretador.interpretar(retornoAvaliadorSintatico);
|
|
143
|
+
var retornoInterpretador = this.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes, retornoResolvedor.locais);
|
|
144
|
+
if (retornoInterpretador.erros.length > 0) {
|
|
145
|
+
for (var _f = 0, _g = retornoInterpretador.erros; _f < _g.length; _f++) {
|
|
146
|
+
var erroInterpretador = _g[_f];
|
|
147
|
+
if (erroInterpretador.simbolo) {
|
|
148
|
+
this.erroEmTempoDeExecucao(erroInterpretador.simbolo);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
var erroEmJavaScript = erroInterpretador;
|
|
152
|
+
console.error(chalk_1.default.red("Erro em JavaScript: ") + "".concat(erroEmJavaScript.message));
|
|
153
|
+
console.error(chalk_1.default.red("Pilha de execu\u00E7\u00E3o: ") + "".concat(erroEmJavaScript.stack));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
142
157
|
};
|
|
143
158
|
Delegua.prototype.reportar = function (linha, onde, mensagem) {
|
|
144
159
|
if (this.nomeArquivo)
|
|
@@ -148,7 +163,7 @@ var Delegua = /** @class */ (function () {
|
|
|
148
163
|
this.teveErro = true;
|
|
149
164
|
};
|
|
150
165
|
Delegua.prototype.erro = function (simbolo, mensagemDeErro) {
|
|
151
|
-
if (simbolo.tipo ===
|
|
166
|
+
if (simbolo.tipo === tipos_de_simbolos_1.default.EOF) {
|
|
152
167
|
this.reportar(Number(simbolo.linha), ' no final', mensagemDeErro);
|
|
153
168
|
}
|
|
154
169
|
else {
|
|
@@ -156,14 +171,13 @@ var Delegua = /** @class */ (function () {
|
|
|
156
171
|
}
|
|
157
172
|
};
|
|
158
173
|
Delegua.prototype.erroEmTempoDeExecucao = function (erro) {
|
|
159
|
-
if (erro
|
|
174
|
+
if (erro && erro.simbolo && erro.simbolo.linha) {
|
|
160
175
|
if (this.nomeArquivo)
|
|
161
176
|
console.error(chalk_1.default.red("Erro: [Arquivo: ".concat(this.nomeArquivo, "] [Linha: ").concat(erro.simbolo.linha, "]")) + " ".concat(erro.mensagem));
|
|
162
177
|
else
|
|
163
178
|
console.error(chalk_1.default.red("Erro: [Linha: ".concat(erro.simbolo.linha, "]")) + " ".concat(erro.mensagem));
|
|
164
179
|
}
|
|
165
|
-
else if (!(erro instanceof excecoes_1.ExcecaoRetornar)) {
|
|
166
|
-
// TODO: Ao se livrar de ReturnException, remover isto.
|
|
180
|
+
else if (!(erro instanceof excecoes_1.ExcecaoRetornar)) { // TODO: Se livrar de ExcecaoRetornar.
|
|
167
181
|
console.error(chalk_1.default.red("Erro: [Linha: ".concat(erro.linha || 0, "]")) + " ".concat(erro.mensagem));
|
|
168
182
|
}
|
|
169
183
|
this.teveErroEmTempoDeExecucao = true;
|
package/fontes/delegua.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/delegua.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,4CAAgC;AAChC,iDAAqC;AACrC,gDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/delegua.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ErroAvaliadorSintatico } from '../avaliador-sintatico/erro-avaliador-si
|
|
|
2
2
|
import { RetornoAvaliadorSintatico } from '../avaliador-sintatico/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
6
|
import { SimboloInterface } from './simbolo-interface';
|
|
6
7
|
export interface AvaliadorSintaticoInterface {
|
|
7
8
|
simbolos: SimboloInterface[];
|
|
@@ -9,8 +10,8 @@ export interface AvaliadorSintaticoInterface {
|
|
|
9
10
|
atual: number;
|
|
10
11
|
ciclos: number;
|
|
11
12
|
sincronizar(): void;
|
|
13
|
+
consumir(tipo: any, mensagemDeErro: string): any;
|
|
12
14
|
erro(simbolo: SimboloInterface, mensagemDeErro: string): ErroAvaliadorSintatico;
|
|
13
|
-
consumir(tipo: any, mensagemDeErro: any): any;
|
|
14
15
|
verificarTipoSimboloAtual(tipo: any): boolean;
|
|
15
16
|
verificarTipoProximoSimbolo(tipo: any): boolean;
|
|
16
17
|
simboloAtual(): SimboloInterface;
|
|
@@ -21,7 +22,7 @@ export interface AvaliadorSintaticoInterface {
|
|
|
21
22
|
verificarSeSimboloAtualEIgualA(...argumentos: any[]): boolean;
|
|
22
23
|
primario(): any;
|
|
23
24
|
finalizarChamada(entidadeChamada: Construto): Construto;
|
|
24
|
-
chamar():
|
|
25
|
+
chamar(): any;
|
|
25
26
|
unario(): Construto;
|
|
26
27
|
exponenciacao(): Construto;
|
|
27
28
|
multiplicar(): Construto;
|
|
@@ -55,5 +56,5 @@ export interface AvaliadorSintaticoInterface {
|
|
|
55
56
|
corpoDaFuncao(tipo: any): Funcao;
|
|
56
57
|
declaracaoDeClasse(): Classe;
|
|
57
58
|
declaracao(): any;
|
|
58
|
-
analisar(
|
|
59
|
+
analisar(retornoLexador: RetornoLexador): RetornoAvaliadorSintatico;
|
|
59
60
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegua-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/delegua-interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
1
|
+
export * from './avaliador-sintatico-interface';
|
|
2
|
+
export * from './delegua-interface';
|
|
3
|
+
export * from './interpretador-interface';
|
|
4
|
+
export * from './lexador-interface';
|
|
5
|
+
export * from './pilha-interface';
|
|
6
|
+
export * from './resolvedor-interface';
|
|
7
|
+
export * from './simbolo-interface';
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./avaliador-sintatico-interface"), exports);
|
|
18
|
+
__exportStar(require("./delegua-interface"), exports);
|
|
18
19
|
__exportStar(require("./interpretador-interface"), exports);
|
|
19
20
|
__exportStar(require("./lexador-interface"), exports);
|
|
20
21
|
__exportStar(require("./pilha-interface"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,4DAA0C;AAC1C,sDAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,sDAAoC;AACpC,4DAA0C;AAC1C,sDAAoC;AACpC,oDAAkC;AAClC,yDAAuC;AACvC,sDAAoC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Ambiente } from "../ambiente";
|
|
2
|
-
import {
|
|
2
|
+
import { Construto } from "../construtos";
|
|
3
|
+
import { RetornoInterpretador } from "../interpretador/retorno-interpretador";
|
|
3
4
|
export interface InterpretadorInterface {
|
|
4
|
-
Delegua: Delegua;
|
|
5
5
|
diretorioBase: any;
|
|
6
6
|
global: Ambiente;
|
|
7
7
|
ambiente: Ambiente;
|
|
8
|
-
locais:
|
|
9
|
-
resolver(expressao: any, profundidade: number): void;
|
|
8
|
+
locais: Map<Construto, number>;
|
|
10
9
|
visitarExpressaoLiteral(expressao: any): any;
|
|
11
10
|
avaliar(expressao: any): any;
|
|
12
11
|
visitarExpressaoAgrupamento(expressao: any): any;
|
|
@@ -49,5 +48,5 @@ export interface InterpretadorInterface {
|
|
|
49
48
|
visitarExpressaoSuper(expressao: any): any;
|
|
50
49
|
paraTexto(objeto: any): any;
|
|
51
50
|
executar(declaracao: any, mostrarResultado: boolean): void;
|
|
52
|
-
interpretar(declaracoes: any):
|
|
51
|
+
interpretar(declaracoes: any, locais: Map<Construto, number>): RetornoInterpretador;
|
|
53
52
|
}
|
|
@@ -16,7 +16,7 @@ export interface LexadorInterface {
|
|
|
16
16
|
simboloAtual(): string;
|
|
17
17
|
proximoSimbolo(): string;
|
|
18
18
|
simboloAnterior(): string;
|
|
19
|
-
analisarTexto(
|
|
19
|
+
analisarTexto(delimitador: string): void;
|
|
20
20
|
analisarNumero(): void;
|
|
21
21
|
identificarPalavraChave(): void;
|
|
22
22
|
analisarToken(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export interface PilhaInterface {
|
|
2
|
-
pilha: Array<
|
|
3
|
-
empilhar(item:
|
|
4
|
-
eVazio(item:
|
|
5
|
-
topoDaPilha(): Array<
|
|
6
|
-
removerUltimo(): Array<
|
|
1
|
+
export interface PilhaInterface<T> {
|
|
2
|
+
pilha: Array<T>;
|
|
3
|
+
empilhar(item: T): any;
|
|
4
|
+
eVazio(item: T): Boolean;
|
|
5
|
+
topoDaPilha(): Array<T>;
|
|
6
|
+
removerUltimo(): Array<T>;
|
|
7
7
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { Construto } from "../construtos";
|
|
1
2
|
import { ErroResolvedor } from "../resolvedor/erro-resolvedor";
|
|
2
3
|
import { PilhaEscopos } from "../resolvedor/pilha-escopos";
|
|
3
4
|
import { RetornoResolvedor } from "../resolvedor/retorno-resolvedor";
|
|
4
|
-
import { InterpretadorInterface } from "./interpretador-interface";
|
|
5
5
|
import { SimboloInterface } from "./simbolo-interface";
|
|
6
6
|
export interface ResolvedorInterface {
|
|
7
|
-
interpretador: InterpretadorInterface;
|
|
8
7
|
erros: ErroResolvedor[];
|
|
9
8
|
escopos: PilhaEscopos;
|
|
9
|
+
locais: Map<Construto, number>;
|
|
10
10
|
funcaoAtual: any;
|
|
11
11
|
classeAtual: any;
|
|
12
12
|
cicloAtual: any;
|
|
@@ -3,7 +3,9 @@ import { Delegua } from '../../delegua';
|
|
|
3
3
|
import { DeleguaFuncao } from '../../estruturas/funcao';
|
|
4
4
|
import { InterpretadorInterface, SimboloInterface } from '../../interfaces';
|
|
5
5
|
import { Classe, Enquanto, Escolha, Escreva, Fazer, Funcao, Importar, Para, Se, Tente } from '../../declaracoes';
|
|
6
|
-
import { Super } from '../../construtos';
|
|
6
|
+
import { Construto, Super } from '../../construtos';
|
|
7
|
+
import { RetornoInterpretador } from '../retorno-interpretador';
|
|
8
|
+
import { ErroInterpretador } from '../erro-interpretador';
|
|
7
9
|
/**
|
|
8
10
|
* O Interpretador visita todos os elementos complexos gerados pelo analisador sintático (Parser)
|
|
9
11
|
* e de fato executa a lógica de programação descrita no código.
|
|
@@ -13,9 +15,9 @@ export declare class InterpretadorEguaClassico implements InterpretadorInterface
|
|
|
13
15
|
diretorioBase: any;
|
|
14
16
|
global: Ambiente;
|
|
15
17
|
ambiente: Ambiente;
|
|
16
|
-
locais: Map<
|
|
18
|
+
locais: Map<Construto, number>;
|
|
19
|
+
erros: ErroInterpretador[];
|
|
17
20
|
constructor(Delegua: Delegua, diretorioBase: string);
|
|
18
|
-
resolver(expressao: any, profundidade: number): void;
|
|
19
21
|
visitarExpressaoLiteral(expressao: any): any;
|
|
20
22
|
avaliar(expressao: any): any;
|
|
21
23
|
visitarExpressaoAgrupamento(expressao: any): any;
|
|
@@ -58,5 +60,5 @@ export declare class InterpretadorEguaClassico implements InterpretadorInterface
|
|
|
58
60
|
visitarExpressaoSuper(expressao: Super): any;
|
|
59
61
|
paraTexto(objeto: any): any;
|
|
60
62
|
executar(declaracao: any, mostrarResultado?: boolean): void;
|
|
61
|
-
interpretar(declaracoes: any):
|
|
63
|
+
interpretar(declaracoes: any, locais: Map<Construto, number>): RetornoInterpretador;
|
|
62
64
|
}
|
|
@@ -27,12 +27,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.InterpretadorEguaClassico = void 0;
|
|
30
|
-
var
|
|
30
|
+
var caminho = __importStar(require("path"));
|
|
31
|
+
var fs = __importStar(require("fs"));
|
|
32
|
+
var tipos_de_simbolos_1 = __importDefault(require("../../lexador/tipos-de-simbolos"));
|
|
31
33
|
var ambiente_1 = require("../../ambiente");
|
|
32
34
|
var delegua_1 = require("../../delegua");
|
|
33
35
|
var biblioteca_global_1 = __importDefault(require("../../bibliotecas/biblioteca-global"));
|
|
34
|
-
var caminho = __importStar(require("path"));
|
|
35
|
-
var fs = __importStar(require("fs"));
|
|
36
36
|
var importar_biblioteca_1 = __importDefault(require("../../bibliotecas/importar-biblioteca"));
|
|
37
37
|
var chamavel_1 = require("../../estruturas/chamavel");
|
|
38
38
|
var funcao_padrao_1 = require("../../estruturas/funcao-padrao");
|
|
@@ -52,11 +52,9 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
52
52
|
this.global = new ambiente_1.Ambiente();
|
|
53
53
|
this.ambiente = this.global;
|
|
54
54
|
this.locais = new Map();
|
|
55
|
+
this.erros = [];
|
|
55
56
|
this.global = (0, biblioteca_global_1.default)(this, this.global);
|
|
56
57
|
}
|
|
57
|
-
InterpretadorEguaClassico.prototype.resolver = function (expressao, profundidade) {
|
|
58
|
-
this.locais.set(expressao, profundidade);
|
|
59
|
-
};
|
|
60
58
|
InterpretadorEguaClassico.prototype.visitarExpressaoLiteral = function (expressao) {
|
|
61
59
|
return expressao.valor;
|
|
62
60
|
};
|
|
@@ -83,12 +81,12 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
83
81
|
InterpretadorEguaClassico.prototype.visitarExpressaoUnaria = function (expr) {
|
|
84
82
|
var direita = this.avaliar(expr.direita);
|
|
85
83
|
switch (expr.operador.tipo) {
|
|
86
|
-
case
|
|
84
|
+
case tipos_de_simbolos_1.default.SUBTRACAO:
|
|
87
85
|
this.verificarOperandoNumero(expr.operador, direita);
|
|
88
86
|
return -direita;
|
|
89
|
-
case
|
|
87
|
+
case tipos_de_simbolos_1.default.NEGACAO:
|
|
90
88
|
return !this.eVerdadeiro(direita);
|
|
91
|
-
case
|
|
89
|
+
case tipos_de_simbolos_1.default.BIT_NOT:
|
|
92
90
|
return ~direita;
|
|
93
91
|
}
|
|
94
92
|
return null;
|
|
@@ -109,25 +107,25 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
109
107
|
var esquerda = this.avaliar(expr.esquerda);
|
|
110
108
|
var direita = this.avaliar(expr.direita);
|
|
111
109
|
switch (expr.operador.tipo) {
|
|
112
|
-
case
|
|
110
|
+
case tipos_de_simbolos_1.default.EXPONENCIACAO:
|
|
113
111
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
114
112
|
return Math.pow(esquerda, direita);
|
|
115
|
-
case
|
|
113
|
+
case tipos_de_simbolos_1.default.MAIOR:
|
|
116
114
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
117
115
|
return Number(esquerda) > Number(direita);
|
|
118
|
-
case
|
|
116
|
+
case tipos_de_simbolos_1.default.MAIOR_IGUAL:
|
|
119
117
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
120
118
|
return Number(esquerda) >= Number(direita);
|
|
121
|
-
case
|
|
119
|
+
case tipos_de_simbolos_1.default.MENOR:
|
|
122
120
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
123
121
|
return Number(esquerda) < Number(direita);
|
|
124
|
-
case
|
|
122
|
+
case tipos_de_simbolos_1.default.MENOR_IGUAL:
|
|
125
123
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
126
124
|
return Number(esquerda) <= Number(direita);
|
|
127
|
-
case
|
|
125
|
+
case tipos_de_simbolos_1.default.SUBTRACAO:
|
|
128
126
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
129
127
|
return Number(esquerda) - Number(direita);
|
|
130
|
-
case
|
|
128
|
+
case tipos_de_simbolos_1.default.ADICAO:
|
|
131
129
|
if (typeof esquerda === 'number' &&
|
|
132
130
|
typeof direita === 'number') {
|
|
133
131
|
return Number(esquerda) + Number(direita);
|
|
@@ -137,33 +135,33 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
137
135
|
return String(esquerda) + String(direita);
|
|
138
136
|
}
|
|
139
137
|
throw new excecoes_1.ErroEmTempoDeExecucao(expr.operador, 'Operadores precisam ser dois números ou duas strings.');
|
|
140
|
-
case
|
|
138
|
+
case tipos_de_simbolos_1.default.DIVISAO:
|
|
141
139
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
142
140
|
return Number(esquerda) / Number(direita);
|
|
143
|
-
case
|
|
141
|
+
case tipos_de_simbolos_1.default.MULTIPLICACAO:
|
|
144
142
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
145
143
|
return Number(esquerda) * Number(direita);
|
|
146
|
-
case
|
|
144
|
+
case tipos_de_simbolos_1.default.MODULO:
|
|
147
145
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
148
146
|
return Number(esquerda) % Number(direita);
|
|
149
|
-
case
|
|
147
|
+
case tipos_de_simbolos_1.default.BIT_AND:
|
|
150
148
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
151
149
|
return Number(esquerda) & Number(direita);
|
|
152
|
-
case
|
|
150
|
+
case tipos_de_simbolos_1.default.BIT_XOR:
|
|
153
151
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
154
152
|
return Number(esquerda) ^ Number(direita);
|
|
155
|
-
case
|
|
153
|
+
case tipos_de_simbolos_1.default.BIT_OR:
|
|
156
154
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
157
155
|
return Number(esquerda) | Number(direita);
|
|
158
|
-
case
|
|
156
|
+
case tipos_de_simbolos_1.default.MENOR_MENOR:
|
|
159
157
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
160
158
|
return Number(esquerda) << Number(direita);
|
|
161
|
-
case
|
|
159
|
+
case tipos_de_simbolos_1.default.MAIOR_MAIOR:
|
|
162
160
|
this.verificarOperandosNumeros(expr.operador, esquerda, direita);
|
|
163
161
|
return Number(esquerda) >> Number(direita);
|
|
164
|
-
case
|
|
162
|
+
case tipos_de_simbolos_1.default.DIFERENTE:
|
|
165
163
|
return !this.eIgual(esquerda, direita);
|
|
166
|
-
case
|
|
164
|
+
case tipos_de_simbolos_1.default.IGUAL_IGUAL:
|
|
167
165
|
return this.eIgual(esquerda, direita);
|
|
168
166
|
}
|
|
169
167
|
return null;
|
|
@@ -238,7 +236,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
238
236
|
};
|
|
239
237
|
InterpretadorEguaClassico.prototype.visitarExpressaoLogica = function (expressao) {
|
|
240
238
|
var esquerda = this.avaliar(expressao.esquerda);
|
|
241
|
-
if (expressao.operador.tipo ===
|
|
239
|
+
if (expressao.operador.tipo === tipos_de_simbolos_1.default.EM) {
|
|
242
240
|
var direita = this.avaliar(expressao.direita);
|
|
243
241
|
if (Array.isArray(direita) || typeof direita === 'string') {
|
|
244
242
|
return direita.includes(esquerda);
|
|
@@ -251,12 +249,12 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
251
249
|
}
|
|
252
250
|
}
|
|
253
251
|
// se um estado for verdadeiro, retorna verdadeiro
|
|
254
|
-
if (expressao.operador.tipo ===
|
|
252
|
+
if (expressao.operador.tipo === tipos_de_simbolos_1.default.OU) {
|
|
255
253
|
if (this.eVerdadeiro(esquerda))
|
|
256
254
|
return esquerda;
|
|
257
255
|
}
|
|
258
256
|
// se um estado for falso, retorna falso
|
|
259
|
-
if (expressao.operador.tipo ===
|
|
257
|
+
if (expressao.operador.tipo === tipos_de_simbolos_1.default.E) {
|
|
260
258
|
if (!this.eVerdadeiro(esquerda))
|
|
261
259
|
return esquerda;
|
|
262
260
|
}
|
|
@@ -662,15 +660,20 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
662
660
|
if (mostrarResultado === void 0) { mostrarResultado = false; }
|
|
663
661
|
declaracao.aceitar(this);
|
|
664
662
|
};
|
|
665
|
-
InterpretadorEguaClassico.prototype.interpretar = function (declaracoes) {
|
|
663
|
+
InterpretadorEguaClassico.prototype.interpretar = function (declaracoes, locais) {
|
|
664
|
+
this.locais = locais;
|
|
665
|
+
this.erros = [];
|
|
666
666
|
try {
|
|
667
667
|
for (var i = 0; i < declaracoes.length; i++) {
|
|
668
668
|
this.executar(declaracoes[i], false);
|
|
669
669
|
}
|
|
670
670
|
}
|
|
671
671
|
catch (erro) {
|
|
672
|
-
this.
|
|
672
|
+
this.erros.push(erro);
|
|
673
673
|
}
|
|
674
|
+
return {
|
|
675
|
+
erros: this.erros
|
|
676
|
+
};
|
|
674
677
|
};
|
|
675
678
|
return InterpretadorEguaClassico;
|
|
676
679
|
}());
|