@designliquido/delegua 0.1.7 → 0.1.11
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 +13 -9
- package/bin/package.json +4 -3
- package/index.d.ts +1 -0
- package/package.json +4 -3
- 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 +12 -12
- 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/index.d.ts +61 -0
- package/src/avaliador-sintatico/index.js +20 -22
- package/src/avaliador-sintatico/index.js.map +1 -1
- package/src/bibliotecas/bibliotecaGlobal.d.ts +1 -0
- package/src/bibliotecas/bibliotecaGlobal.js +1 -1
- package/src/bibliotecas/bibliotecaGlobal.js.map +1 -1
- 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/{block.js → bloco.js} +9 -9
- package/src/declaracoes/bloco.js.map +1 -0
- package/src/declaracoes/classe.d.ts +8 -0
- package/src/declaracoes/classe.js +2 -2
- package/src/declaracoes/classe.js.map +1 -1
- package/src/declaracoes/continua.d.ts +5 -0
- package/src/declaracoes/continua.js +2 -2
- package/src/declaracoes/continua.js.map +1 -1
- package/src/declaracoes/enquanto.d.ts +7 -0
- package/src/declaracoes/enquanto.js +2 -2
- package/src/declaracoes/enquanto.js.map +1 -1
- package/src/declaracoes/escolha.d.ts +8 -0
- package/src/declaracoes/escolha.js +2 -2
- package/src/declaracoes/escolha.js.map +1 -1
- package/src/declaracoes/escreva.d.ts +6 -0
- package/src/declaracoes/escreva.js +2 -2
- package/src/declaracoes/escreva.js.map +1 -1
- package/src/declaracoes/expressao.d.ts +6 -0
- package/src/declaracoes/expressao.js +2 -2
- package/src/declaracoes/expressao.js.map +1 -1
- package/src/declaracoes/fazer.d.ts +7 -0
- package/src/declaracoes/fazer.js +2 -2
- package/src/declaracoes/fazer.js.map +1 -1
- package/src/declaracoes/funcao.d.ts +7 -0
- package/src/declaracoes/funcao.js +2 -2
- package/src/declaracoes/funcao.js.map +1 -1
- package/src/declaracoes/importar.d.ts +7 -0
- package/src/declaracoes/importar.js +2 -2
- package/src/declaracoes/importar.js.map +1 -1
- package/src/declaracoes/index.d.ts +17 -0
- package/src/declaracoes/index.js +1 -1
- package/src/declaracoes/para.d.ts +9 -0
- package/src/declaracoes/para.js +2 -2
- package/src/declaracoes/para.js.map +1 -1
- package/src/declaracoes/pausa.d.ts +5 -0
- package/src/declaracoes/pausa.js +2 -2
- package/src/declaracoes/pausa.js.map +1 -1
- package/src/declaracoes/retorna.d.ts +7 -0
- package/src/declaracoes/retorna.js +2 -2
- package/src/declaracoes/retorna.js.map +1 -1
- package/src/declaracoes/se.d.ts +9 -0
- package/src/declaracoes/se.js +2 -2
- package/src/declaracoes/se.js.map +1 -1
- package/src/declaracoes/stmt.d.ts +3 -0
- package/src/declaracoes/stmt.js +1 -1
- package/src/declaracoes/stmt.js.map +1 -1
- package/src/declaracoes/tente.d.ts +9 -0
- package/src/declaracoes/tente.js +2 -2
- package/src/declaracoes/tente.js.map +1 -1
- package/src/declaracoes/var.d.ts +7 -0
- package/src/declaracoes/var.js +2 -2
- package/src/declaracoes/var.js.map +1 -1
- package/src/delegua.d.ts +21 -0
- package/src/delegua.js +8 -7
- 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/classe.js +1 -1
- package/src/estruturas/classe.js.map +1 -1
- package/src/estruturas/funcao-padrao.d.ts +9 -0
- package/src/estruturas/funcao.d.ts +12 -0
- package/src/estruturas/funcao.js +8 -8
- 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/instancia.js +1 -1
- package/src/estruturas/instancia.js.map +1 -1
- 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 +49 -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 +1 -1
- 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 +1 -1
- 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 +5 -5
- 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 +22 -10
- package/src/lexador/index.js.map +1 -1
- package/src/resolvedor/dialetos/egua-classico.d.ts +57 -0
- package/src/resolvedor/dialetos/egua-classico.js +9 -9
- package/src/resolvedor/dialetos/egua-classico.js.map +1 -1
- package/src/resolvedor/dialetos/index.d.ts +1 -0
- package/src/resolvedor/erro-resolvedor.d.ts +4 -0
- package/src/resolvedor/{ResolverError.js → erro-resolvedor.js} +7 -7
- package/src/resolvedor/erro-resolvedor.js.map +1 -0
- package/src/resolvedor/index.d.ts +57 -0
- package/src/resolvedor/index.js +10 -10
- package/src/resolvedor/index.js.map +1 -1
- package/src/resolvedor/pilha-escopos.d.ts +9 -0
- package/src/resolvedor/pilha-escopos.js +27 -0
- package/src/resolvedor/pilha-escopos.js.map +1 -0
- package/src/tiposDeSimbolos.d.ts +68 -0
- package/src/tiposDeSimbolos.js +7 -6
- package/src/tiposDeSimbolos.js.map +1 -1
- package/src/declaracoes/block.js.map +0 -1
- package/src/resolvedor/Pilha.js +0 -27
- package/src/resolvedor/Pilha.js.map +0 -1
- package/src/resolvedor/ResolverError.js.map +0 -1
- package/src/web.js +0 -66
- package/src/web.js.map +0 -1
package/src/delegua.js
CHANGED
|
@@ -54,7 +54,7 @@ var Delegua = /** @class */ (function () {
|
|
|
54
54
|
}
|
|
55
55
|
Delegua.prototype.versao = function () {
|
|
56
56
|
try {
|
|
57
|
-
var manifesto = caminho.resolve(
|
|
57
|
+
var manifesto = caminho.resolve('package.json');
|
|
58
58
|
return JSON.parse(fs.readFileSync(manifesto, { encoding: 'utf8' })).version || '0.1';
|
|
59
59
|
}
|
|
60
60
|
catch (error) {
|
|
@@ -64,6 +64,7 @@ var Delegua = /** @class */ (function () {
|
|
|
64
64
|
Delegua.prototype.iniciarDelegua = function () {
|
|
65
65
|
var _this = this;
|
|
66
66
|
console.log("Console da Linguagem Del\u00E9gua v".concat(this.versao()));
|
|
67
|
+
console.log('Pressione Ctrl + C para sair');
|
|
67
68
|
var leiaLinha = readline.createInterface({
|
|
68
69
|
input: process.stdin,
|
|
69
70
|
output: process.stdout,
|
|
@@ -87,14 +88,14 @@ var Delegua = /** @class */ (function () {
|
|
|
87
88
|
process.exit(70);
|
|
88
89
|
};
|
|
89
90
|
Delegua.prototype.executar = function (codigo) {
|
|
90
|
-
var simbolos = this.lexador.
|
|
91
|
-
if (this.teveErro
|
|
91
|
+
var simbolos = this.lexador.mapear(codigo);
|
|
92
|
+
if (this.teveErro)
|
|
92
93
|
return;
|
|
93
94
|
var declaracoes = this.avaliadorSintatico.analisar(simbolos);
|
|
94
|
-
if (this.teveErro
|
|
95
|
+
if (this.teveErro)
|
|
95
96
|
return;
|
|
96
97
|
this.resolvedor.resolver(declaracoes);
|
|
97
|
-
if (this.teveErro
|
|
98
|
+
if (this.teveErro)
|
|
98
99
|
return;
|
|
99
100
|
this.interpretador.interpretar(declaracoes);
|
|
100
101
|
};
|
|
@@ -107,10 +108,10 @@ var Delegua = /** @class */ (function () {
|
|
|
107
108
|
};
|
|
108
109
|
Delegua.prototype.erro = function (simbolo, mensagemDeErro) {
|
|
109
110
|
if (simbolo.tipo === tiposDeSimbolos_1.default.EOF) {
|
|
110
|
-
this.reportar(simbolo.
|
|
111
|
+
this.reportar(simbolo.linha, " no final", mensagemDeErro);
|
|
111
112
|
}
|
|
112
113
|
else {
|
|
113
|
-
this.reportar(simbolo.
|
|
114
|
+
this.reportar(simbolo.linha, " no '".concat(simbolo.lexema, "'"), mensagemDeErro);
|
|
114
115
|
}
|
|
115
116
|
};
|
|
116
117
|
Delegua.prototype.erroNoLexador = function (linha, caractere, mensagem) {
|
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,IAAI;YACA,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,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
|
+
}
|
package/src/estruturas/classe.js
CHANGED
|
@@ -47,7 +47,7 @@ var DeleguaClasse = /** @class */ (function (_super) {
|
|
|
47
47
|
var instancia = new instancia_1.DeleguaInstancia(this);
|
|
48
48
|
var inicializador = this.encontrarMetodo("construtor");
|
|
49
49
|
if (inicializador) {
|
|
50
|
-
inicializador.
|
|
50
|
+
inicializador.definirEscopo(instancia).chamar(interpretador, argumentos);
|
|
51
51
|
}
|
|
52
52
|
return instancia;
|
|
53
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classe.js","sourceRoot":"","sources":["../../../src/estruturas/classe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,yCAA+C;AAE/C;IAAmC,iCAAQ;IAKvC,uBAAY,IAAU,EAAE,WAAiB,EAAE,OAAa;QAAxD,YACI,iBAAO,SAIV;QAHG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;IAC3B,CAAC;IAED,uCAAe,GAAf,UAAgB,IAAS;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACjD;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,gCAAQ,GAAR;QACI,OAAO,kBAAW,IAAI,CAAC,IAAI,MAAG,CAAC;IACnC,CAAC;IAED,+BAAO,GAAP;QACI,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,8BAAM,GAAN,UAAO,aAAkB,EAAE,UAAe;QACtC,IAAI,SAAS,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,aAAa,EAAE;YACf,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"classe.js","sourceRoot":"","sources":["../../../src/estruturas/classe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,yCAA+C;AAE/C;IAAmC,iCAAQ;IAKvC,uBAAY,IAAU,EAAE,WAAiB,EAAE,OAAa;QAAxD,YACI,iBAAO,SAIV;QAHG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;IAC3B,CAAC;IAED,uCAAe,GAAf,UAAgB,IAAS;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACjD;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,gCAAQ,GAAR;QACI,OAAO,kBAAW,IAAI,CAAC,IAAI,MAAG,CAAC;IACnC,CAAC;IAED,+BAAO,GAAP;QACI,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,8BAAM,GAAN,UAAO,aAAkB,EAAE,UAAe;QACtC,IAAI,SAAS,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,aAAa,EAAE;YACf,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;SAC5E;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IACL,oBAAC;AAAD,CAAC,AA3CD,CAAmC,mBAAQ,GA2C1C;AA3CY,sCAAa"}
|
|
@@ -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
|
+
definirEscopo(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.executarBloco(this.declaracao.
|
|
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
|
-
DeleguaFuncao.prototype.
|
|
74
|
-
var ambiente = new ambiente_1.Ambiente(this.
|
|
73
|
+
DeleguaFuncao.prototype.definirEscopo = function (instancia) {
|
|
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,qCAAa,GAAb,UAAc,SAAc;QACxB,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"}
|
|
@@ -13,7 +13,7 @@ var DeleguaInstancia = /** @class */ (function () {
|
|
|
13
13
|
}
|
|
14
14
|
var metodo = this.criarClasse.encontrarMetodo(nome.lexema);
|
|
15
15
|
if (metodo)
|
|
16
|
-
return metodo.
|
|
16
|
+
return metodo.definirEscopo(this);
|
|
17
17
|
throw new excecoes_1.ErroEmTempoDeExecucao(nome, "Método indefinido não recuperado.");
|
|
18
18
|
};
|
|
19
19
|
DeleguaInstancia.prototype.set = function (nome, valor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instancia.js","sourceRoot":"","sources":["../../../src/estruturas/instancia.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAEpD;IAII,0BAAY,WAAW;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,8BAAG,GAAH,UAAI,IAAS;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"instancia.js","sourceRoot":"","sources":["../../../src/estruturas/instancia.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAEpD;IAII,0BAAY,WAAW;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,8BAAG,GAAH,UAAI,IAAS;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,IAAI,gCAAqB,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;IAC/E,CAAC;IAED,8BAAG,GAAH,UAAI,IAAS,EAAE,KAAU;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,mCAAQ,GAAR;QACI,OAAO,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC;IACpD,CAAC;IACL,uBAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,4CAAgB"}
|
|
@@ -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,49 @@
|
|
|
1
|
+
import { PilhaEscopos } from "../resolvedor/pilha-escopos";
|
|
2
|
+
export interface ResolvedorInterface {
|
|
3
|
+
interpretador: any;
|
|
4
|
+
Delegua: any;
|
|
5
|
+
escopos: PilhaEscopos;
|
|
6
|
+
FuncaoAtual: any;
|
|
7
|
+
ClasseAtual: any;
|
|
8
|
+
cicloAtual: any;
|
|
9
|
+
definir(nome: any): void;
|
|
10
|
+
declarar(nome: any): void;
|
|
11
|
+
inicioDoEscopo(): void;
|
|
12
|
+
finalDoEscopo(): void;
|
|
13
|
+
resolver(declaracoes: any): void;
|
|
14
|
+
resolverLocal(expr: any, nome: any): void;
|
|
15
|
+
visitarExpressaoBloco(stmt: any): any;
|
|
16
|
+
visitarExpressaoDeVariavel(expr: any): any;
|
|
17
|
+
visitarExpressaoVar(stmt: any): any;
|
|
18
|
+
visitarExpressaoDeAtribuicao(expr: any): any;
|
|
19
|
+
resolverFuncao(funcao: any, funcType: any): void;
|
|
20
|
+
visitarExpressaoFuncao(stmt: any): any;
|
|
21
|
+
visitarExpressaoDeleguaFuncao(stmt: any): any;
|
|
22
|
+
visitarExpressaoTente(stmt: any): any;
|
|
23
|
+
visitarExpressaoClasse(stmt: any): any;
|
|
24
|
+
visitarExpressaoSuper(expr: any): any;
|
|
25
|
+
visitarExpressaoObter(expr: any): any;
|
|
26
|
+
visitarDeclaracaoDeExpressao(stmt: any): any;
|
|
27
|
+
visitarExpressaoSe(stmt: any): any;
|
|
28
|
+
visitarExpressaoImportar(stmt: any): void;
|
|
29
|
+
visitarExpressaoEscreva(stmt: any): void;
|
|
30
|
+
visitarExpressaoRetornar(stmt: any): any;
|
|
31
|
+
visitarExpressaoEscolha(stmt: any): void;
|
|
32
|
+
visitarExpressaoEnquanto(stmt: any): any;
|
|
33
|
+
visitarExpressaoPara(stmt: any): any;
|
|
34
|
+
visitarExpressaoFazer(stmt: any): any;
|
|
35
|
+
visitarExpressaoBinaria(expr: any): any;
|
|
36
|
+
visitarExpressaoDeChamada(expr: any): any;
|
|
37
|
+
visitarExpressaoAgrupamento(expr: any): any;
|
|
38
|
+
visitarExpressaoDicionario(expr: any): any;
|
|
39
|
+
visitarExpressaoVetor(expr: any): any;
|
|
40
|
+
visitarExpressaoVetorIndice(expr: any): any;
|
|
41
|
+
visitarExpressaoContinua(stmt?: any): any;
|
|
42
|
+
visitarExpressaoPausa(stmt?: any): any;
|
|
43
|
+
visitarExpressaoAtribuicaoSobrescrita(expr?: any): any;
|
|
44
|
+
visitarExpressaoLiteral(expr?: any): any;
|
|
45
|
+
visitarExpressaoLogica(expr?: any): any;
|
|
46
|
+
visitarExpressaoUnaria(expr?: any): any;
|
|
47
|
+
visitarExpressaoDefinir(expr?: any): any;
|
|
48
|
+
visitarExpressaoIsto(expr?: any): any;
|
|
49
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -611,7 +611,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
|
|
|
611
611
|
if (metodo === undefined) {
|
|
612
612
|
throw new excecoes_1.ErroEmTempoDeExecucao(expr.metodo, "Método chamado indefinido.");
|
|
613
613
|
}
|
|
614
|
-
return metodo.
|
|
614
|
+
return metodo.definirEscopo(objeto);
|
|
615
615
|
};
|
|
616
616
|
InterpretadorEguaClassico.prototype.paraTexto = function (objeto) {
|
|
617
617
|
if (objeto === null)
|