@designliquido/delegua 0.1.6 → 0.1.10
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 +2 -1
- package/bin/package.json +6 -4
- package/index.d.ts +1 -0
- package/package.json +5 -4
- package/src/ambiente.d.ts +11 -0
- package/src/avaliador-sintatico/dialetos/egua-classico.d.ts +60 -0
- package/src/avaliador-sintatico/dialetos/egua-classico.js +123 -123
- package/src/avaliador-sintatico/dialetos/egua-classico.js.map +1 -1
- package/src/avaliador-sintatico/dialetos/index.d.ts +1 -0
- package/src/avaliador-sintatico/erros-avaliador.d.ts +2 -0
- package/src/avaliador-sintatico/{parser-error.js → erros-avaliador.js} +1 -1
- package/src/avaliador-sintatico/erros-avaliador.js.map +1 -0
- package/src/avaliador-sintatico/index.d.ts +61 -0
- package/src/avaliador-sintatico/index.js +135 -137
- package/src/avaliador-sintatico/index.js.map +1 -1
- package/src/bibliotecas/bibliotecaGlobal.d.ts +1 -0
- package/src/bibliotecas/importarBiblioteca.d.ts +2 -0
- package/src/construtos/assign-subscript.d.ts +8 -0
- package/src/construtos/assign-subscript.js +2 -2
- package/src/construtos/assign-subscript.js.map +1 -1
- package/src/construtos/atribuir.d.ts +7 -0
- package/src/construtos/atribuir.js +2 -2
- package/src/construtos/atribuir.js.map +1 -1
- package/src/construtos/binario.d.ts +8 -0
- package/src/construtos/binario.js +2 -2
- package/src/construtos/binario.js.map +1 -1
- package/src/construtos/call.d.ts +8 -0
- package/src/construtos/call.js +2 -2
- package/src/construtos/call.js.map +1 -1
- package/src/construtos/conjunto.d.ts +8 -0
- package/src/construtos/conjunto.js +2 -2
- package/src/construtos/conjunto.js.map +1 -1
- package/src/construtos/dicionario.d.ts +7 -0
- package/src/construtos/dicionario.js +2 -2
- package/src/construtos/dicionario.js.map +1 -1
- package/src/construtos/expr.d.ts +3 -0
- package/src/construtos/expr.js +1 -1
- package/src/construtos/expr.js.map +1 -1
- package/src/construtos/funcao.d.ts +7 -0
- package/src/construtos/funcao.js +2 -2
- package/src/construtos/funcao.js.map +1 -1
- package/src/construtos/get.d.ts +7 -0
- package/src/construtos/get.js +2 -2
- package/src/construtos/get.js.map +1 -1
- package/src/construtos/grouping.d.ts +6 -0
- package/src/construtos/grouping.js +2 -2
- package/src/construtos/grouping.js.map +1 -1
- package/src/construtos/index.d.ts +18 -0
- package/src/construtos/isto.d.ts +6 -0
- package/src/construtos/isto.js +2 -2
- package/src/construtos/isto.js.map +1 -1
- package/src/construtos/literal.d.ts +6 -0
- package/src/construtos/literal.js +2 -2
- package/src/construtos/literal.js.map +1 -1
- package/src/construtos/logical.d.ts +8 -0
- package/src/construtos/logical.js +2 -2
- package/src/construtos/logical.js.map +1 -1
- package/src/construtos/subscript.d.ts +8 -0
- package/src/construtos/subscript.js +2 -2
- package/src/construtos/subscript.js.map +1 -1
- package/src/construtos/super.d.ts +7 -0
- package/src/construtos/super.js +2 -2
- package/src/construtos/super.js.map +1 -1
- package/src/construtos/unario.d.ts +7 -0
- package/src/construtos/unario.js +2 -2
- package/src/construtos/unario.js.map +1 -1
- package/src/construtos/variavel.d.ts +6 -0
- package/src/construtos/variavel.js +2 -2
- package/src/construtos/variavel.js.map +1 -1
- package/src/construtos/vetor.d.ts +6 -0
- package/src/construtos/vetor.js +2 -2
- package/src/construtos/vetor.js.map +1 -1
- package/src/declaracoes/bloco.d.ts +6 -0
- package/src/declaracoes/bloco.js +33 -0
- package/src/declaracoes/bloco.js.map +1 -0
- package/src/declaracoes/classe.d.ts +8 -0
- package/src/declaracoes/classe.js +35 -0
- package/src/declaracoes/classe.js.map +1 -0
- package/src/declaracoes/continua.d.ts +5 -0
- package/src/declaracoes/continua.js +31 -0
- package/src/declaracoes/continua.js.map +1 -0
- package/src/declaracoes/enquanto.d.ts +7 -0
- package/src/declaracoes/enquanto.js +34 -0
- package/src/declaracoes/enquanto.js.map +1 -0
- package/src/declaracoes/escolha.d.ts +8 -0
- package/src/declaracoes/escolha.js +35 -0
- package/src/declaracoes/escolha.js.map +1 -0
- package/src/declaracoes/escreva.d.ts +6 -0
- package/src/declaracoes/escreva.js +33 -0
- package/src/declaracoes/escreva.js.map +1 -0
- package/src/declaracoes/expressao.d.ts +6 -0
- package/src/declaracoes/expressao.js +33 -0
- package/src/declaracoes/expressao.js.map +1 -0
- package/src/declaracoes/fazer.d.ts +7 -0
- package/src/declaracoes/fazer.js +34 -0
- package/src/declaracoes/fazer.js.map +1 -0
- package/src/declaracoes/funcao.d.ts +7 -0
- package/src/declaracoes/funcao.js +34 -0
- package/src/declaracoes/funcao.js.map +1 -0
- package/src/declaracoes/importar.d.ts +7 -0
- package/src/declaracoes/importar.js +34 -0
- package/src/declaracoes/importar.js.map +1 -0
- package/src/declaracoes/index.d.ts +17 -0
- package/src/declaracoes/index.js +27 -246
- package/src/declaracoes/index.js.map +1 -1
- package/src/declaracoes/para.d.ts +9 -0
- package/src/declaracoes/para.js +36 -0
- package/src/declaracoes/para.js.map +1 -0
- package/src/declaracoes/pausa.d.ts +5 -0
- package/src/declaracoes/pausa.js +31 -0
- package/src/declaracoes/pausa.js.map +1 -0
- package/src/declaracoes/retorna.d.ts +7 -0
- package/src/declaracoes/retorna.js +34 -0
- package/src/declaracoes/retorna.js.map +1 -0
- package/src/declaracoes/se.d.ts +9 -0
- package/src/declaracoes/se.js +36 -0
- package/src/declaracoes/se.js.map +1 -0
- package/src/declaracoes/stmt.d.ts +3 -0
- package/src/declaracoes/stmt.js +11 -0
- package/src/declaracoes/stmt.js.map +1 -0
- package/src/declaracoes/tente.d.ts +9 -0
- package/src/declaracoes/tente.js +36 -0
- package/src/declaracoes/tente.js.map +1 -0
- package/src/declaracoes/var.d.ts +7 -0
- package/src/declaracoes/var.js +34 -0
- package/src/declaracoes/var.js.map +1 -0
- package/src/delegua.d.ts +21 -0
- package/src/delegua.js +18 -12
- package/src/delegua.js.map +1 -1
- package/src/estruturas/callable.d.ts +5 -0
- package/src/estruturas/classe.d.ts +11 -0
- package/src/estruturas/funcao-padrao.d.ts +9 -0
- package/src/estruturas/funcao.d.ts +12 -0
- package/src/estruturas/funcao.js +7 -7
- package/src/estruturas/funcao.js.map +1 -1
- package/src/estruturas/index.d.ts +6 -0
- package/src/estruturas/instancia.d.ts +8 -0
- package/src/estruturas/modulo.d.ts +5 -0
- package/src/excecoes/break-exception.d.ts +2 -0
- package/src/excecoes/continue-exception.d.ts +2 -0
- package/src/excecoes/erro-em-tempo-de-execucao.d.ts +5 -0
- package/src/excecoes/index.d.ts +4 -0
- package/src/excecoes/return-exception.d.ts +4 -0
- package/src/interfaces/avaliador-sintatico-interface.d.ts +55 -0
- package/src/interfaces/index.d.ts +6 -0
- package/src/interfaces/interpretador-interface.d.ts +51 -0
- package/src/interfaces/lexador-interface.d.ts +23 -0
- package/src/interfaces/pilha-interface.d.ts +7 -0
- package/src/interfaces/resolvedor-interface.d.ts +48 -0
- package/src/interfaces/simbolo-interface.d.ts +6 -0
- package/src/interpretador/dialetos/egua-classico.d.ts +58 -0
- package/src/interpretador/dialetos/egua-classico.js +64 -68
- package/src/interpretador/dialetos/egua-classico.js.map +1 -1
- package/src/interpretador/dialetos/index.d.ts +1 -0
- package/src/interpretador/index.d.ts +58 -0
- package/src/interpretador/index.js +74 -75
- package/src/interpretador/index.js.map +1 -1
- package/src/lexador/dialetos/egua-classico.d.ts +31 -0
- package/src/lexador/dialetos/egua-classico.js +10 -12
- package/src/lexador/dialetos/egua-classico.js.map +1 -1
- package/src/lexador/dialetos/index.d.ts +1 -0
- package/src/lexador/index.d.ts +31 -0
- package/src/lexador/index.js +28 -19
- package/src/lexador/index.js.map +1 -1
- package/src/resolvedor/Pilha.d.ts +9 -0
- package/src/resolvedor/Pilha.js +1 -1
- package/src/resolvedor/Pilha.js.map +1 -1
- package/src/resolvedor/ResolverError.d.ts +4 -0
- package/src/resolvedor/dialetos/egua-classico.d.ts +56 -0
- package/src/resolvedor/dialetos/egua-classico.js +39 -39
- package/src/resolvedor/dialetos/egua-classico.js.map +1 -1
- package/src/resolvedor/dialetos/index.d.ts +1 -0
- package/src/resolvedor/index.d.ts +56 -0
- package/src/resolvedor/index.js +45 -45
- package/src/resolvedor/index.js.map +1 -1
- package/src/tiposDeSimbolos.d.ts +68 -0
- package/src/tiposDeSimbolos.js +8 -7
- package/src/tiposDeSimbolos.js.map +1 -1
- package/src/avaliador-sintatico/parser-error.js.map +0 -1
- package/src/web.js +0 -66
- package/src/web.js.map +0 -1
package/src/delegua.js
CHANGED
|
@@ -53,12 +53,18 @@ var Delegua = /** @class */ (function () {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
Delegua.prototype.versao = function () {
|
|
56
|
-
|
|
56
|
+
try {
|
|
57
|
+
var manifesto = caminho.resolve('package.json');
|
|
58
|
+
return JSON.parse(fs.readFileSync(manifesto, { encoding: 'utf8' })).version || '0.1';
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return '0.1 (desenvolvimento)';
|
|
62
|
+
}
|
|
57
63
|
};
|
|
58
64
|
Delegua.prototype.iniciarDelegua = function () {
|
|
59
65
|
var _this = this;
|
|
60
|
-
var interpretador = new interpretador_1.Interpretador(this, process.cwd());
|
|
61
66
|
console.log("Console da Linguagem Del\u00E9gua v".concat(this.versao()));
|
|
67
|
+
console.log('Pressione Ctrl + C para sair');
|
|
62
68
|
var leiaLinha = readline.createInterface({
|
|
63
69
|
input: process.stdin,
|
|
64
70
|
output: process.stdout,
|
|
@@ -68,28 +74,28 @@ var Delegua = /** @class */ (function () {
|
|
|
68
74
|
leiaLinha.on("line", function (linha) {
|
|
69
75
|
_this.teveErro = false;
|
|
70
76
|
_this.teveErroEmTempoDeExecucao = false;
|
|
71
|
-
_this.
|
|
77
|
+
_this.executar(linha);
|
|
72
78
|
leiaLinha.prompt();
|
|
73
79
|
});
|
|
74
80
|
};
|
|
75
81
|
Delegua.prototype.carregarArquivo = function (nomeArquivo) {
|
|
76
82
|
this.nomeArquivo = caminho.basename(nomeArquivo);
|
|
77
83
|
var dadosDoArquivo = fs.readFileSync(nomeArquivo).toString();
|
|
78
|
-
this.
|
|
84
|
+
this.executar(dadosDoArquivo);
|
|
79
85
|
if (this.teveErro)
|
|
80
86
|
process.exit(65);
|
|
81
87
|
if (this.teveErroEmTempoDeExecucao)
|
|
82
88
|
process.exit(70);
|
|
83
89
|
};
|
|
84
|
-
Delegua.prototype.
|
|
85
|
-
var simbolos = this.lexador.
|
|
86
|
-
if (this.teveErro
|
|
90
|
+
Delegua.prototype.executar = function (codigo) {
|
|
91
|
+
var simbolos = this.lexador.mapear(codigo);
|
|
92
|
+
if (this.teveErro)
|
|
87
93
|
return;
|
|
88
94
|
var declaracoes = this.avaliadorSintatico.analisar(simbolos);
|
|
89
|
-
if (this.teveErro
|
|
95
|
+
if (this.teveErro)
|
|
90
96
|
return;
|
|
91
97
|
this.resolvedor.resolver(declaracoes);
|
|
92
|
-
if (this.teveErro
|
|
98
|
+
if (this.teveErro)
|
|
93
99
|
return;
|
|
94
100
|
this.interpretador.interpretar(declaracoes);
|
|
95
101
|
};
|
|
@@ -102,13 +108,13 @@ var Delegua = /** @class */ (function () {
|
|
|
102
108
|
};
|
|
103
109
|
Delegua.prototype.erro = function (simbolo, mensagemDeErro) {
|
|
104
110
|
if (simbolo.tipo === tiposDeSimbolos_1.default.EOF) {
|
|
105
|
-
this.reportar(simbolo.
|
|
111
|
+
this.reportar(simbolo.linha, " no final", mensagemDeErro);
|
|
106
112
|
}
|
|
107
113
|
else {
|
|
108
|
-
this.reportar(simbolo.
|
|
114
|
+
this.reportar(simbolo.linha, " no '".concat(simbolo.lexema, "'"), mensagemDeErro);
|
|
109
115
|
}
|
|
110
116
|
};
|
|
111
|
-
Delegua.prototype.
|
|
117
|
+
Delegua.prototype.erroNoLexador = function (linha, caractere, mensagem) {
|
|
112
118
|
this.reportar(linha, " no '".concat(caractere, "'"), mensagem);
|
|
113
119
|
};
|
|
114
120
|
Delegua.prototype.erroEmTempoDeExecucao = function (erro) {
|
package/src/delegua.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../src/delegua.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AACzB,8BAAgC;AAChC,mCAAqC;AAErC,qCAAkC;AAClC,6DAA+C;AAC/C,2CAAwC;AACxC,iDAAgD;AAChD,qDAAgD;AAEhD,uCAA6C;AAG7C,wEAAmF;AACnF,qEAA2E;AAC3E,8EAAkF;AAClF,kEAAqE;AAErE;IAWI,iBAAY,OAA2B,EAAE,WAAoB;QAAjD,wBAAA,EAAA,mBAA2B;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,QAAQ,IAAI,CAAC,OAAO,EAAE;YAClB,KAAK,MAAM;gBACP,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,GAAG,IAAI,iCAAiB,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,kCAAkB,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,UAAU,GAAG,IAAI,oCAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,4BAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,4BAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,MAAM;YACV;gBACI,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,4BAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBACtC,MAAM;SACb;IACL,CAAC;IAED,wBAAM,GAAN;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../src/delegua.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Callable } from "./callable";
|
|
2
|
+
export declare class DeleguaClasse extends Callable {
|
|
3
|
+
nome: any;
|
|
4
|
+
superClasse: any;
|
|
5
|
+
metodos: any;
|
|
6
|
+
constructor(nome?: any, superClasse?: any, metodos?: any);
|
|
7
|
+
encontrarMetodo(nome: any): any;
|
|
8
|
+
toString(): string;
|
|
9
|
+
aridade(): any;
|
|
10
|
+
chamar(interpretador: any, argumentos: any): any;
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Callable } from "./callable";
|
|
2
|
+
export declare class FuncaoPadrao extends Callable {
|
|
3
|
+
valorAridade: any;
|
|
4
|
+
funcao: any;
|
|
5
|
+
simbolo: any;
|
|
6
|
+
constructor(valorAridade: any, funcao: any);
|
|
7
|
+
chamar(interpretador: any, argumentos: any, simbolo: any): any;
|
|
8
|
+
toString(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Callable } from "./callable";
|
|
2
|
+
export declare class DeleguaFuncao extends Callable {
|
|
3
|
+
nome: any;
|
|
4
|
+
declaracao: any;
|
|
5
|
+
ambienteAnterior: any;
|
|
6
|
+
eInicializador: any;
|
|
7
|
+
constructor(nome: any, declaracao: any, ambienteAnterior: any, eInicializador?: boolean);
|
|
8
|
+
aridade(): any;
|
|
9
|
+
toString(): string;
|
|
10
|
+
chamar(interpretador: any, argumentos: any): any;
|
|
11
|
+
bind(instancia: any): any;
|
|
12
|
+
}
|
package/src/estruturas/funcao.js
CHANGED
|
@@ -21,12 +21,12 @@ var ambiente_1 = require("../ambiente");
|
|
|
21
21
|
var excecoes_1 = require("../excecoes");
|
|
22
22
|
var DeleguaFuncao = /** @class */ (function (_super) {
|
|
23
23
|
__extends(DeleguaFuncao, _super);
|
|
24
|
-
function DeleguaFuncao(nome, declaracao,
|
|
24
|
+
function DeleguaFuncao(nome, declaracao, ambienteAnterior, eInicializador) {
|
|
25
25
|
if (eInicializador === void 0) { eInicializador = false; }
|
|
26
26
|
var _this = _super.call(this) || this;
|
|
27
27
|
_this.nome = nome;
|
|
28
28
|
_this.declaracao = declaracao;
|
|
29
|
-
_this.
|
|
29
|
+
_this.ambienteAnterior = ambienteAnterior;
|
|
30
30
|
_this.eInicializador = eInicializador;
|
|
31
31
|
return _this;
|
|
32
32
|
}
|
|
@@ -40,7 +40,7 @@ var DeleguaFuncao = /** @class */ (function (_super) {
|
|
|
40
40
|
return "<fun\u00E7\u00E3o ".concat(this.nome, ">");
|
|
41
41
|
};
|
|
42
42
|
DeleguaFuncao.prototype.chamar = function (interpretador, argumentos) {
|
|
43
|
-
var ambiente = new ambiente_1.Ambiente(this.
|
|
43
|
+
var ambiente = new ambiente_1.Ambiente(this.ambienteAnterior);
|
|
44
44
|
var parametros = this.declaracao.parametros;
|
|
45
45
|
if (parametros && parametros.length) {
|
|
46
46
|
for (var i = 0; i < parametros.length; i++) {
|
|
@@ -54,12 +54,12 @@ var DeleguaFuncao = /** @class */ (function (_super) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
try {
|
|
57
|
-
interpretador.
|
|
57
|
+
interpretador.executarBloco(this.declaracao.corpo, ambiente);
|
|
58
58
|
}
|
|
59
59
|
catch (erro) {
|
|
60
60
|
if (erro instanceof excecoes_1.ReturnException) {
|
|
61
61
|
if (this.eInicializador)
|
|
62
|
-
return this.
|
|
62
|
+
return this.ambienteAnterior.obterVariavelEm(0, "isto");
|
|
63
63
|
return erro.valor;
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
@@ -67,11 +67,11 @@ var DeleguaFuncao = /** @class */ (function (_super) {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
if (this.eInicializador)
|
|
70
|
-
return this.
|
|
70
|
+
return this.ambienteAnterior.obterVariavelEm(0, "isto");
|
|
71
71
|
return null;
|
|
72
72
|
};
|
|
73
73
|
DeleguaFuncao.prototype.bind = function (instancia) {
|
|
74
|
-
var ambiente = new ambiente_1.Ambiente(this.
|
|
74
|
+
var ambiente = new ambiente_1.Ambiente(this.ambienteAnterior);
|
|
75
75
|
ambiente.definirVariavel("isto", instancia);
|
|
76
76
|
return new DeleguaFuncao(this.nome, this.declaracao, ambiente, this.eInicializador);
|
|
77
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funcao.js","sourceRoot":"","sources":["../../../src/estruturas/funcao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,wCAAuC;AACvC,wCAA8C;AAE9C;IAAmC,iCAAQ;IAMvC,uBAAY,IAAS,EAAE,UAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"funcao.js","sourceRoot":"","sources":["../../../src/estruturas/funcao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,wCAAuC;AACvC,wCAA8C;AAE9C;IAAmC,iCAAQ;IAMvC,uBAAY,IAAS,EAAE,UAAe,EAAE,gBAAqB,EAAE,cAAsB;QAAtB,+BAAA,EAAA,sBAAsB;QAArF,YACI,iBAAO,SAKV;QAJG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,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,gCAAQ,GAAR;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,aAAkB,EAAE,UAAe;QACtC,IAAI,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,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,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAE5B,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBAClC,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACxB,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC1D;gBACD,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACzC;SACJ;QAED,IAAI;YACA,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAChE;QAAC,OAAO,IAAI,EAAE;YACX,IAAI,IAAI,YAAY,0BAAe,EAAE;gBACjC,IAAI,IAAI,CAAC,cAAc;oBAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACjF,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;iBAAM;gBACH,MAAM,IAAI,CAAC;aACd;SACJ;QAED,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4BAAI,GAAJ,UAAK,SAAc;QACf,IAAI,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,IAAI,CAAC,cAAc,CACtB,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAjED,CAAmC,mBAAQ,GAiE1C;AAjEY,sCAAa"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { SimboloInterface } from "./simbolo-interface";
|
|
2
|
+
export interface AvaliadorSintaticoInterface {
|
|
3
|
+
simbolos: SimboloInterface[];
|
|
4
|
+
Delegua: any;
|
|
5
|
+
atual: number;
|
|
6
|
+
ciclos: number;
|
|
7
|
+
sincronizar(): void;
|
|
8
|
+
erro(simbolo: any, mensagemDeErro: any): any;
|
|
9
|
+
consumir(tipo: any, mensagemDeErro: any): any;
|
|
10
|
+
verificar(tipo: any): boolean;
|
|
11
|
+
verificarProximo(tipo: any): boolean;
|
|
12
|
+
simboloAtual(): any;
|
|
13
|
+
voltar(): any;
|
|
14
|
+
procurar(posicao: number): any;
|
|
15
|
+
estaNoFinal(): boolean;
|
|
16
|
+
avancar(): any;
|
|
17
|
+
verificarSeSimboloAtualEIgualA(...argumentos: any[]): boolean;
|
|
18
|
+
primario(): any;
|
|
19
|
+
finalizarChamada(callee: any): any;
|
|
20
|
+
chamar(): any;
|
|
21
|
+
unario(): any;
|
|
22
|
+
exponenciacao(): any;
|
|
23
|
+
multiplicar(): any;
|
|
24
|
+
adicionar(): any;
|
|
25
|
+
bitFill(): any;
|
|
26
|
+
bitE(): any;
|
|
27
|
+
bitOu(): any;
|
|
28
|
+
comparar(): any;
|
|
29
|
+
comparacaoIgualdade(): any;
|
|
30
|
+
em(): any;
|
|
31
|
+
e(): any;
|
|
32
|
+
ou(): any;
|
|
33
|
+
atribuir(): any;
|
|
34
|
+
expressao(): any;
|
|
35
|
+
declaracaoMostrar(): any;
|
|
36
|
+
declaracaoExpressao(): any;
|
|
37
|
+
blocoEscopo(): any;
|
|
38
|
+
declaracaoSe(): any;
|
|
39
|
+
declaracaoEnquanto(): any;
|
|
40
|
+
declaracaoPara(): any;
|
|
41
|
+
declaracaoInterromper(): any;
|
|
42
|
+
declaracaoContinua(): any;
|
|
43
|
+
declaracaoRetorna(): any;
|
|
44
|
+
declaracaoEscolha(): any;
|
|
45
|
+
declaracaoImportar(): any;
|
|
46
|
+
declaracaoTentar(): any;
|
|
47
|
+
declaracaoFazer(): any;
|
|
48
|
+
resolverDeclaracao(): any;
|
|
49
|
+
declaracaoDeVariavel(): any;
|
|
50
|
+
funcao(kind: any): any;
|
|
51
|
+
corpoDaFuncao(kind: any): any;
|
|
52
|
+
declaracaoDeClasse(): any;
|
|
53
|
+
declaracao(): any;
|
|
54
|
+
analisar(simbolos?: SimboloInterface[]): any;
|
|
55
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface InterpretadorInterface {
|
|
2
|
+
Delegua: any;
|
|
3
|
+
diretorioBase: any;
|
|
4
|
+
global: any;
|
|
5
|
+
ambiente: any;
|
|
6
|
+
locais: any;
|
|
7
|
+
resolver(expr: any, depth: any): void;
|
|
8
|
+
visitarExpressaoLiteral(expr: any): any;
|
|
9
|
+
avaliar(expr: any): any;
|
|
10
|
+
visitarExpressaoAgrupamento(expr: any): any;
|
|
11
|
+
eVerdadeiro(objeto: any): boolean;
|
|
12
|
+
verificarOperandoNumero(operador: any, operand: any): void;
|
|
13
|
+
visitarExpressaoUnaria(expr: any): any;
|
|
14
|
+
eIgual(esquerda: any, direita: any): any;
|
|
15
|
+
verificarOperandosNumeros(operador: any, direita: any, esquerda: any): void;
|
|
16
|
+
visitarExpressaoBinaria(expr: any): any;
|
|
17
|
+
visitarExpressaoDeChamada(expr: any): any;
|
|
18
|
+
visitarExpressaoDeAtribuicao(expr: any): any;
|
|
19
|
+
procurarVariavel(nome: any, expr: any): any;
|
|
20
|
+
visitarExpressaoDeVariavel(expr: any): any;
|
|
21
|
+
visitarDeclaracaoDeExpressao(stmt: any): any;
|
|
22
|
+
visitarExpressaoLogica(expr: any): any;
|
|
23
|
+
visitarExpressaoSe(stmt: any): any;
|
|
24
|
+
visitarExpressaoPara(stmt: any): any;
|
|
25
|
+
visitarExpressaoFazer(stmt: any): any;
|
|
26
|
+
visitarExpressaoEscolha(stmt: any): any;
|
|
27
|
+
visitarExpressaoTente(stmt: any): any;
|
|
28
|
+
visitarExpressaoEnquanto(stmt: any): any;
|
|
29
|
+
visitarExpressaoImportar(stmt: any): any;
|
|
30
|
+
visitarExpressaoEscreva(stmt: any): any;
|
|
31
|
+
executarBloco(declaracoes: any, ambiente: any): void;
|
|
32
|
+
visitarExpressaoBloco(stmt: any): null;
|
|
33
|
+
visitarExpressaoVar(stmt: any): null;
|
|
34
|
+
visitarExpressaoContinua(stmt?: any): void;
|
|
35
|
+
visitarExpressaoPausa(stmt?: any): void;
|
|
36
|
+
visitarExpressaoRetornar(stmt: any): void;
|
|
37
|
+
visitarExpressaoDeleguaFuncao(expr: any): any;
|
|
38
|
+
visitarExpressaoAtribuicaoSobrescrita(expr: any): void;
|
|
39
|
+
visitarExpressaoVetorIndice(expressao: any): any;
|
|
40
|
+
visitarExpressaoDefinir(expr: any): any;
|
|
41
|
+
visitarExpressaoFuncao(stmt: any): any;
|
|
42
|
+
visitarExpressaoClasse(stmt: any): any;
|
|
43
|
+
visitarExpressaoObter(expr: any): any;
|
|
44
|
+
visitarExpressaoIsto(expr: any): any;
|
|
45
|
+
visitarExpressaoDicionario(expr: any): any;
|
|
46
|
+
visitarExpressaoVetor(expr: any): any;
|
|
47
|
+
visitarExpressaoSuper(expr: any): any;
|
|
48
|
+
paraTexto(objeto: any): any;
|
|
49
|
+
executar(stmt: any, mostrarResultado: boolean): void;
|
|
50
|
+
interpretar(declaracoes: any): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface LexadorInterface {
|
|
2
|
+
Delegua: any;
|
|
3
|
+
codigo: any;
|
|
4
|
+
simbolos: any;
|
|
5
|
+
inicio: any;
|
|
6
|
+
atual: any;
|
|
7
|
+
linha: any;
|
|
8
|
+
eDigito(caractere: any): boolean;
|
|
9
|
+
eAlfabeto(caractere: any): boolean;
|
|
10
|
+
eAlfabetoOuDigito(caractere: any): boolean;
|
|
11
|
+
eFinalDoCodigo(): boolean;
|
|
12
|
+
avancar(): void;
|
|
13
|
+
adicionarSimbolo(tipo: any, literal: any): void;
|
|
14
|
+
match(esperado: any): boolean;
|
|
15
|
+
peek(): any;
|
|
16
|
+
peekNext(): any;
|
|
17
|
+
voltar(): any;
|
|
18
|
+
analisarTexto(texto: string): void;
|
|
19
|
+
analisarNumero(): void;
|
|
20
|
+
identificarPalavraChave(): void;
|
|
21
|
+
scanToken(): void;
|
|
22
|
+
mapear(codigo?: any): any;
|
|
23
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface ResolvedorInterface {
|
|
2
|
+
interpretador: any;
|
|
3
|
+
Delegua: any;
|
|
4
|
+
escopos: any;
|
|
5
|
+
FuncaoAtual: any;
|
|
6
|
+
ClasseAtual: any;
|
|
7
|
+
cicloAtual: any;
|
|
8
|
+
definir(nome: any): void;
|
|
9
|
+
declarar(nome: any): void;
|
|
10
|
+
inicioDoEscopo(): void;
|
|
11
|
+
finalDoEscopo(): void;
|
|
12
|
+
resolver(declaracoes: any): void;
|
|
13
|
+
resolverLocal(expr: any, nome: any): void;
|
|
14
|
+
visitarExpressaoBloco(stmt: any): any;
|
|
15
|
+
visitarExpressaoDeVariavel(expr: any): any;
|
|
16
|
+
visitarExpressaoVar(stmt: any): any;
|
|
17
|
+
visitarExpressaoDeAtribuicao(expr: any): any;
|
|
18
|
+
resolverFuncao(funcao: any, funcType: any): void;
|
|
19
|
+
visitarExpressaoFuncao(stmt: any): any;
|
|
20
|
+
visitarExpressaoDeleguaFuncao(stmt: any): any;
|
|
21
|
+
visitarExpressaoTente(stmt: any): any;
|
|
22
|
+
visitarExpressaoClasse(stmt: any): any;
|
|
23
|
+
visitarExpressaoSuper(expr: any): any;
|
|
24
|
+
visitarExpressaoObter(expr: any): any;
|
|
25
|
+
visitarDeclaracaoDeExpressao(stmt: any): any;
|
|
26
|
+
visitarExpressaoSe(stmt: any): any;
|
|
27
|
+
visitarExpressaoImportar(stmt: any): void;
|
|
28
|
+
visitarExpressaoEscreva(stmt: any): void;
|
|
29
|
+
visitarExpressaoRetornar(stmt: any): any;
|
|
30
|
+
visitarExpressaoEscolha(stmt: any): void;
|
|
31
|
+
visitarExpressaoEnquanto(stmt: any): any;
|
|
32
|
+
visitarExpressaoPara(stmt: any): any;
|
|
33
|
+
visitarExpressaoFazer(stmt: any): any;
|
|
34
|
+
visitarExpressaoBinaria(expr: any): any;
|
|
35
|
+
visitarExpressaoDeChamada(expr: any): any;
|
|
36
|
+
visitarExpressaoAgrupamento(expr: any): any;
|
|
37
|
+
visitarExpressaoDicionario(expr: any): any;
|
|
38
|
+
visitarExpressaoVetor(expr: any): any;
|
|
39
|
+
visitarExpressaoVetorIndice(expr: any): any;
|
|
40
|
+
visitarExpressaoContinua(stmt?: any): any;
|
|
41
|
+
visitarExpressaoPausa(stmt?: any): any;
|
|
42
|
+
visitarExpressaoAtribuicaoSobrescrita(expr?: any): any;
|
|
43
|
+
visitarExpressaoLiteral(expr?: any): any;
|
|
44
|
+
visitarExpressaoLogica(expr?: any): any;
|
|
45
|
+
visitarExpressaoUnaria(expr?: any): any;
|
|
46
|
+
visitarExpressaoDefinir(expr?: any): any;
|
|
47
|
+
visitarExpressaoIsto(expr?: any): any;
|
|
48
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DeleguaFuncao } from "../../estruturas/funcao";
|
|
2
|
+
import { InterpretadorInterface } from "../../interfaces";
|
|
3
|
+
/**
|
|
4
|
+
* O Interpretador visita todos os elementos complexos gerados pelo analisador sintático (Parser)
|
|
5
|
+
* e de fato executa a lógica de programação descrita no código.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InterpretadorEguaClassico implements InterpretadorInterface {
|
|
8
|
+
Delegua: any;
|
|
9
|
+
diretorioBase: any;
|
|
10
|
+
global: any;
|
|
11
|
+
ambiente: any;
|
|
12
|
+
locais: any;
|
|
13
|
+
constructor(Delegua: any, diretorioBase: any);
|
|
14
|
+
resolver(expr: any, depth: any): void;
|
|
15
|
+
visitarExpressaoLiteral(expr: any): any;
|
|
16
|
+
avaliar(expr: any): any;
|
|
17
|
+
visitarExpressaoAgrupamento(expr: any): any;
|
|
18
|
+
eVerdadeiro(objeto: any): boolean;
|
|
19
|
+
verificarOperandoNumero(operador: any, operand: any): void;
|
|
20
|
+
visitarExpressaoUnaria(expr: any): number | boolean;
|
|
21
|
+
eIgual(esquerda: any, direita: any): boolean;
|
|
22
|
+
verificarOperandosNumeros(operador: any, direita: any, esquerda: any): void;
|
|
23
|
+
visitarExpressaoBinaria(expr: any): string | number | boolean;
|
|
24
|
+
visitarExpressaoDeChamada(expr: any): any;
|
|
25
|
+
visitarExpressaoDeAtribuicao(expr: any): any;
|
|
26
|
+
procurarVariavel(nome: any, expr: any): any;
|
|
27
|
+
visitarExpressaoDeVariavel(expr: any): any;
|
|
28
|
+
visitarDeclaracaoDeExpressao(stmt: any): any;
|
|
29
|
+
visitarExpressaoLogica(expr: any): any;
|
|
30
|
+
visitarExpressaoSe(stmt: any): any;
|
|
31
|
+
visitarExpressaoPara(stmt: any): any;
|
|
32
|
+
visitarExpressaoFazer(stmt: any): void;
|
|
33
|
+
visitarExpressaoEscolha(stmt: any): void;
|
|
34
|
+
visitarExpressaoTente(stmt: any): void;
|
|
35
|
+
visitarExpressaoEnquanto(stmt: any): any;
|
|
36
|
+
visitarExpressaoImportar(stmt: any): any;
|
|
37
|
+
visitarExpressaoEscreva(stmt: any): any;
|
|
38
|
+
executarBloco(declaracoes: any, ambiente: any): void;
|
|
39
|
+
visitarExpressaoBloco(stmt: any): any;
|
|
40
|
+
visitarExpressaoVar(stmt: any): any;
|
|
41
|
+
visitarExpressaoContinua(stmt?: any): void;
|
|
42
|
+
visitarExpressaoPausa(stmt?: any): void;
|
|
43
|
+
visitarExpressaoRetornar(stmt: any): void;
|
|
44
|
+
visitarExpressaoDeleguaFuncao(expr: any): DeleguaFuncao;
|
|
45
|
+
visitarExpressaoAtribuicaoSobrescrita(expr: any): void;
|
|
46
|
+
visitarExpressaoVetorIndice(expressao: any): any;
|
|
47
|
+
visitarExpressaoDefinir(expr: any): any;
|
|
48
|
+
visitarExpressaoFuncao(stmt: any): void;
|
|
49
|
+
visitarExpressaoClasse(stmt: any): any;
|
|
50
|
+
visitarExpressaoObter(expr: any): any;
|
|
51
|
+
visitarExpressaoIsto(expr: any): any;
|
|
52
|
+
visitarExpressaoDicionario(expr: any): {};
|
|
53
|
+
visitarExpressaoVetor(expr: any): any[];
|
|
54
|
+
visitarExpressaoSuper(expr: any): any;
|
|
55
|
+
paraTexto(objeto: any): any;
|
|
56
|
+
executar(stmt: any, mostrarResultado?: boolean): void;
|
|
57
|
+
interpretar(declaracoes: any): void;
|
|
58
|
+
}
|