@designliquido/delegua 0.20.13 → 0.20.15
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 +1 -1
- package/fontes/analisador-semantico/analisador-semantico.d.ts +1 -1
- package/fontes/analisador-semantico/analisador-semantico.js +1 -1
- package/fontes/analisador-semantico/analisador-semantico.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +2 -2
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +3 -3
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +34 -14
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +2 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +7 -5
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.d.ts +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js +9 -9
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-potigol.d.ts +20 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-potigol.js +96 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-potigol.js.map +1 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +3 -3
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/index.d.ts +1 -0
- package/fontes/avaliador-sintatico/dialetos/index.js +1 -0
- package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -1
- package/fontes/avaliador-sintatico/index.d.ts +1 -0
- package/fontes/avaliador-sintatico/index.js +1 -0
- package/fontes/avaliador-sintatico/index.js.map +1 -1
- package/fontes/avaliador-sintatico/micro-avaliador-sintatico.d.ts +36 -0
- package/fontes/avaliador-sintatico/micro-avaliador-sintatico.js +286 -0
- package/fontes/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -0
- package/fontes/bibliotecas/primitivas-vetor.js +5 -5
- package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
- package/fontes/construtos/{atribuicao-sobrescrita.d.ts → atribuicao-por-indice.d.ts} +1 -1
- package/fontes/construtos/{atribuicao-sobrescrita.js → atribuicao-por-indice.js} +5 -5
- package/fontes/construtos/atribuicao-por-indice.js.map +1 -0
- package/fontes/construtos/index.d.ts +1 -1
- package/fontes/construtos/index.js +1 -1
- package/fontes/construtos/index.js.map +1 -1
- package/fontes/construtos/literal.js +1 -1
- package/fontes/construtos/literal.js.map +1 -1
- package/fontes/interfaces/resolvedor-interface.d.ts +1 -1
- package/fontes/interfaces/visitante-comum-interface.d.ts +1 -1
- package/fontes/interpretador/dialetos/birl/interpretador-birl.d.ts +32 -11
- package/fontes/interpretador/dialetos/birl/interpretador-birl.js +267 -28
- package/fontes/interpretador/dialetos/birl/interpretador-birl.js.map +1 -1
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +1 -1
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -1
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +1 -1
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +1 -1
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
- package/fontes/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +1 -1
- package/fontes/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +2 -2
- package/fontes/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
- package/fontes/interpretador/inferenciador.js.map +1 -1
- package/fontes/interpretador/interpretador-base.d.ts +6 -2
- package/fontes/interpretador/interpretador-base.js +28 -19
- package/fontes/interpretador/interpretador-base.js.map +1 -1
- package/fontes/lexador/dialetos/index.d.ts +1 -0
- package/fontes/lexador/dialetos/index.js +1 -0
- package/fontes/lexador/dialetos/index.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-birl.js +14 -2
- package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-egua-classico.js +2 -2
- package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-eguap.js +3 -3
- package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-guarani.js +2 -2
- package/fontes/lexador/dialetos/lexador-guarani.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-mapler.js +3 -3
- package/fontes/lexador/dialetos/lexador-mapler.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-portugol-ipt.js +3 -3
- package/fontes/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-portugol-studio.js +3 -2
- package/fontes/lexador/dialetos/lexador-portugol-studio.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-potigol.d.ts +11 -0
- package/fontes/lexador/dialetos/lexador-potigol.js +254 -0
- package/fontes/lexador/dialetos/lexador-potigol.js.map +1 -0
- package/fontes/lexador/dialetos/lexador-visualg.js +3 -3
- package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +2 -6
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +4 -6
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/index.d.ts +3 -3
- package/fontes/lexador/dialetos/palavras-reservadas/index.js +7 -17
- package/fontes/lexador/dialetos/palavras-reservadas/index.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/mapler.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/mapler.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/mapler.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/potigol.d.ts +10 -0
- package/fontes/lexador/dialetos/palavras-reservadas/potigol.js +18 -0
- package/fontes/lexador/dialetos/palavras-reservadas/potigol.js.map +1 -0
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +1 -2
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +2 -1
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
- package/fontes/lexador/index.d.ts +1 -0
- package/fontes/lexador/index.js +1 -0
- package/fontes/lexador/index.js.map +1 -1
- package/fontes/lexador/lexador.js +2 -2
- package/fontes/lexador/lexador.js.map +1 -1
- package/fontes/lexador/micro-lexador.d.ts +29 -0
- package/fontes/lexador/micro-lexador.js +208 -0
- package/fontes/lexador/micro-lexador.js.map +1 -0
- package/fontes/lexador/palavras-reservadas.d.ts +9 -2
- package/fontes/lexador/palavras-reservadas.js +10 -1
- package/fontes/lexador/palavras-reservadas.js.map +1 -1
- package/fontes/tipos-de-simbolos/birl.d.ts +18 -2
- package/fontes/tipos-de-simbolos/birl.js +18 -2
- package/fontes/tipos-de-simbolos/birl.js.map +1 -1
- package/fontes/tipos-de-simbolos/egua-classico.d.ts +0 -2
- package/fontes/tipos-de-simbolos/egua-classico.js +0 -2
- package/fontes/tipos-de-simbolos/egua-classico.js.map +1 -1
- package/fontes/tipos-de-simbolos/microgramaticas/delegua.d.ts +46 -0
- package/fontes/tipos-de-simbolos/microgramaticas/delegua.js +48 -0
- package/fontes/tipos-de-simbolos/microgramaticas/delegua.js.map +1 -0
- package/fontes/tipos-de-simbolos/potigol.d.ts +27 -0
- package/fontes/tipos-de-simbolos/potigol.js +29 -0
- package/fontes/tipos-de-simbolos/potigol.js.map +1 -0
- package/fontes/tradutores/index.d.ts +3 -0
- package/fontes/tradutores/index.js +3 -0
- package/fontes/tradutores/index.js.map +1 -1
- package/fontes/tradutores/python/python3-lexer.d.ts +5 -5
- package/fontes/tradutores/python/python3-lexer.js +567 -841
- package/fontes/tradutores/python/python3-lexer.js.map +1 -1
- package/fontes/tradutores/python/python3-listener.d.ts +184 -173
- package/fontes/tradutores/python/python3-listener.js +1 -0
- package/fontes/tradutores/python/python3-listener.js.map +1 -1
- package/fontes/tradutores/python/python3-parser.d.ts +85 -73
- package/fontes/tradutores/python/python3-parser.js +1485 -1415
- package/fontes/tradutores/python/python3-parser.js.map +1 -1
- package/fontes/tradutores/python/python3-visitor.d.ts +94 -87
- package/fontes/tradutores/python/python3-visitor.js +1 -0
- package/fontes/tradutores/python/python3-visitor.js.map +1 -1
- package/fontes/tradutores/tradutor-javascript.d.ts +5 -5
- package/fontes/tradutores/tradutor-javascript.js +8 -8
- package/fontes/tradutores/tradutor-javascript.js.map +1 -1
- package/fontes/tradutores/tradutor-portugol-ipt.d.ts +21 -0
- package/fontes/tradutores/tradutor-portugol-ipt.js +61 -0
- package/fontes/tradutores/tradutor-portugol-ipt.js.map +1 -0
- package/fontes/tradutores/tradutor-python.d.ts +16 -1
- package/fontes/tradutores/tradutor-python.js +41 -28
- package/fontes/tradutores/tradutor-python.js.map +1 -1
- package/fontes/tradutores/tradutor-reverso-python.d.ts +32 -0
- package/fontes/tradutores/tradutor-reverso-python.js +72 -0
- package/fontes/tradutores/tradutor-reverso-python.js.map +1 -0
- package/fontes/tradutores/tradutor-visualg.js +8 -8
- package/fontes/tradutores/tradutor-visualg.js.map +1 -1
- package/package.json +1 -1
- package/fontes/construtos/atribuicao-sobrescrita.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"micro-avaliador-sintatico.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/micro-avaliador-sintatico.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ exports.default = {
|
|
|
38
38
|
}
|
|
39
39
|
return vetor;
|
|
40
40
|
}
|
|
41
|
-
return vetor.sort();
|
|
41
|
+
return vetor.sort((a, b) => a - b);
|
|
42
42
|
},
|
|
43
43
|
remover: (interpretador, vetor, elemento) => {
|
|
44
44
|
const index = vetor.indexOf(elemento);
|
|
@@ -47,12 +47,12 @@ exports.default = {
|
|
|
47
47
|
return Promise.resolve(vetor);
|
|
48
48
|
},
|
|
49
49
|
removerPrimeiro: (interpretador, vetor) => {
|
|
50
|
-
vetor.shift();
|
|
51
|
-
return Promise.resolve(
|
|
50
|
+
let elemento = vetor.shift();
|
|
51
|
+
return Promise.resolve(elemento);
|
|
52
52
|
},
|
|
53
53
|
removerUltimo: (interpretador, vetor) => {
|
|
54
|
-
vetor.pop();
|
|
55
|
-
return Promise.resolve(
|
|
54
|
+
let elemento = vetor.pop();
|
|
55
|
+
return Promise.resolve(elemento);
|
|
56
56
|
},
|
|
57
57
|
somar: (interpretador, vetor) => Promise.resolve(vetor.reduce((a, b) => a + b)),
|
|
58
58
|
tamanho: (interpretador, vetor) => Promise.resolve(vetor.length),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitivas-vetor.js","sourceRoot":"","sources":["../../../fontes/bibliotecas/primitivas-vetor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"primitivas-vetor.js","sourceRoot":"","sources":["../../../fontes/bibliotecas/primitivas-vetor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VisitanteComumInterface } from '../interfaces';
|
|
2
2
|
import { Construto } from './construto';
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class AtribuicaoPorIndice implements Construto {
|
|
4
4
|
linha: number;
|
|
5
5
|
hashArquivo: number;
|
|
6
6
|
objeto: any;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
class
|
|
3
|
+
exports.AtribuicaoPorIndice = void 0;
|
|
4
|
+
class AtribuicaoPorIndice {
|
|
5
5
|
constructor(hashArquivo, linha, objeto, indice, valor) {
|
|
6
6
|
this.linha = linha;
|
|
7
7
|
this.hashArquivo = hashArquivo;
|
|
@@ -10,8 +10,8 @@ class AtribuicaoSobrescrita {
|
|
|
10
10
|
this.valor = valor;
|
|
11
11
|
}
|
|
12
12
|
async aceitar(visitante) {
|
|
13
|
-
return await visitante.
|
|
13
|
+
return await visitante.visitarExpressaoAtribuicaoPorIndice(this);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
exports.
|
|
17
|
-
//# sourceMappingURL=atribuicao-
|
|
16
|
+
exports.AtribuicaoPorIndice = AtribuicaoPorIndice;
|
|
17
|
+
//# sourceMappingURL=atribuicao-por-indice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atribuicao-por-indice.js","sourceRoot":"","sources":["../../../fontes/construtos/atribuicao-por-indice.ts"],"names":[],"mappings":";;;AAGA,MAAa,mBAAmB;IAQ5B,YAAY,WAAmB,EAAE,KAAa,EAAE,MAAW,EAAE,MAAW,EAAE,KAAU;QAChF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,MAAM,SAAS,CAAC,mCAAmC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;CACJ;AApBD,kDAoBC"}
|
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./atribuicao-
|
|
17
|
+
__exportStar(require("./atribuicao-por-indice"), exports);
|
|
18
18
|
__exportStar(require("./atribuir"), exports);
|
|
19
19
|
__exportStar(require("./binario"), exports);
|
|
20
20
|
__exportStar(require("./chamada"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/construtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/construtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,8CAA4B;AAC5B,kDAAgC;AAChC,+CAA6B;AAC7B,8CAA4B;AAC5B,6CAA2B;AAC3B,uDAAqC;AACrC,2CAAyB;AACzB,kDAAgC;AAChC,gDAA8B;AAC9B,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,2DAAyC;AACzC,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../fontes/construtos/literal.ts"],"names":[],"mappings":";;;AAKA,MAAa,OAAO;IAMhB,YAAY,WAAmB,EAAE,KAAa,EAAE,KAAmB;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../fontes/construtos/literal.ts"],"names":[],"mappings":";;;AAKA,MAAa,OAAO;IAMhB,YAAY,WAAmB,EAAE,KAAa,EAAE,KAAmB;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,MAAM,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;CACJ;AAhBD,0BAgBC"}
|
|
@@ -32,7 +32,7 @@ export interface ResolvedorInterface {
|
|
|
32
32
|
visitarExpressaoAcessoIndiceVariavel(expressao: any): any;
|
|
33
33
|
visitarExpressaoContinua(declaracao?: any): any;
|
|
34
34
|
visitarExpressaoSustar(declaracao?: any): any;
|
|
35
|
-
|
|
35
|
+
visitarExpressaoAtribuicaoPorIndice(expressao?: any): any;
|
|
36
36
|
visitarExpressaoLiteral(expressao?: any): any;
|
|
37
37
|
visitarExpressaoLogica(expressao?: any): any;
|
|
38
38
|
visitarExpressaoUnaria(expressao?: any): any;
|
|
@@ -33,7 +33,7 @@ export interface VisitanteComumInterface {
|
|
|
33
33
|
visitarExpressaoSustar(declaracao?: Sustar): SustarQuebra;
|
|
34
34
|
visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
|
|
35
35
|
visitarExpressaoDeleguaFuncao(expressao: any): any;
|
|
36
|
-
|
|
36
|
+
visitarExpressaoAtribuicaoPorIndice(expressao: any): Promise<any>;
|
|
37
37
|
visitarExpressaoAcessoIndiceVariavel(expressao: any): any;
|
|
38
38
|
visitarExpressaoDefinirValor(expressao: any): any;
|
|
39
39
|
visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): any;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Construto, Atribuir, Literal, FimPara, FormatacaoEscrita, Super } from '../../../construtos';
|
|
1
|
+
import { Construto, Atribuir, Literal, FimPara, FormatacaoEscrita, Super, Variavel, Unario } from '../../../construtos';
|
|
2
2
|
import { Declaracao, Expressao, Leia, Para, ParaCada, Se, Fazer, Escolha, Tente, Enquanto, Importar, Escreva, EscrevaMesmaLinha, Bloco, Var, Const, Continua, Sustar, Retorna, FuncaoDeclaracao, Classe } from '../../../declaracoes';
|
|
3
3
|
import { EspacoVariaveis } from '../../../espaco-variaveis';
|
|
4
|
-
import { InterpretadorInterface } from '../../../interfaces';
|
|
4
|
+
import { InterpretadorInterface, SimboloInterface, VariavelInterface } from '../../../interfaces';
|
|
5
5
|
import { ErroInterpretador } from '../../../interfaces/erros/erro-interpretador';
|
|
6
6
|
import { PilhaEscoposExecucaoInterface } from '../../../interfaces/pilha-escopos-execucao-interface';
|
|
7
7
|
import { RetornoInterpretador } from '../../../interfaces/retornos';
|
|
@@ -18,13 +18,34 @@ export declare class InterpretadorBirl implements InterpretadorInterface {
|
|
|
18
18
|
regexInterpolacao: RegExp;
|
|
19
19
|
constructor(diretorioBase: string, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
|
|
20
20
|
avaliar(expressao: Construto | Declaracao): Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* Empilha declarações na pilha de escopos de execução, cria um novo ambiente e
|
|
23
|
+
* executa as declarações empilhadas.
|
|
24
|
+
* Se o retorno do último bloco foi uma exceção (normalmente um erro em tempo de execução),
|
|
25
|
+
* atira a exceção daqui.
|
|
26
|
+
* Isso é usado, por exemplo, em blocos tente ... pegue ... finalmente.
|
|
27
|
+
* @param declaracoes Um vetor de declaracoes a ser executado.
|
|
28
|
+
* @param ambiente O ambiente de execução quando houver, como parâmetros, argumentos, etc.
|
|
29
|
+
*/
|
|
21
30
|
executarBloco(declaracoes: Declaracao[], ambiente?: EspacoVariaveis): Promise<any>;
|
|
22
31
|
visitarExpressaoAgrupamento(expressao: any): Promise<any>;
|
|
23
|
-
|
|
24
|
-
|
|
32
|
+
protected verificarOperandoNumero(operador: SimboloInterface, operando: any): void;
|
|
33
|
+
visitarExpressaoUnaria(expressao: Unario): Promise<any>;
|
|
34
|
+
protected eIgual(esquerda: VariavelInterface | any, direita: VariavelInterface | any): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Verifica se operandos são números, que podem ser tanto variáveis puras do JavaScript
|
|
37
|
+
* (neste caso, `number`), ou podem ser variáveis de Delégua com inferência (`VariavelInterface`).
|
|
38
|
+
* @param operador O símbolo do operador.
|
|
39
|
+
* @param direita O operando direito.
|
|
40
|
+
* @param esquerda O operando esquerdo.
|
|
41
|
+
* @returns Se ambos os operandos são números ou não.
|
|
42
|
+
*/
|
|
43
|
+
protected verificarOperandosNumeros(operador: SimboloInterface, direita: VariavelInterface | any, esquerda: VariavelInterface | any): void;
|
|
44
|
+
visitarExpressaoBinaria(expressao: any): Promise<any>;
|
|
25
45
|
visitarExpressaoDeChamada(expressao: any): void;
|
|
26
46
|
visitarDeclaracaoDeAtribuicao(expressao: Atribuir): void;
|
|
27
|
-
|
|
47
|
+
protected procurarVariavel(simbolo: SimboloInterface): any;
|
|
48
|
+
visitarExpressaoDeVariavel(expressao: Variavel): any;
|
|
28
49
|
visitarDeclaracaoDeExpressao(declaracao: Expressao): void;
|
|
29
50
|
/**
|
|
30
51
|
* Execução da leitura de valores da entrada configurada no
|
|
@@ -40,11 +61,11 @@ export declare class InterpretadorBirl implements InterpretadorInterface {
|
|
|
40
61
|
*/
|
|
41
62
|
private buscarVariaveisInterpolacao;
|
|
42
63
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
* Retira a interpolação de um texto.
|
|
65
|
+
* @param {texto} texto O texto
|
|
66
|
+
* @param {any[]} variaveis A lista de variaveis interpoladas
|
|
67
|
+
* @returns O texto com o valor das variaveis.
|
|
68
|
+
*/
|
|
48
69
|
private retirarInterpolacao;
|
|
49
70
|
visitarExpressaoLiteral(expressao: Literal): any;
|
|
50
71
|
visitarExpressaoLogica(expressao: any): void;
|
|
@@ -87,7 +108,7 @@ export declare class InterpretadorBirl implements InterpretadorInterface {
|
|
|
87
108
|
visitarExpressaoSustar(declaracao?: Sustar): SustarQuebra;
|
|
88
109
|
visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
|
|
89
110
|
visitarExpressaoDeleguaFuncao(expressao: any): void;
|
|
90
|
-
|
|
111
|
+
visitarExpressaoAtribuicaoPorIndice(expressao: any): Promise<any>;
|
|
91
112
|
visitarExpressaoAcessoIndiceVariavel(expressao: any): void;
|
|
92
113
|
visitarExpressaoDefinirValor(expressao: any): void;
|
|
93
114
|
visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): void;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.InterpretadorBirl = void 0;
|
|
7
|
+
const construtos_1 = require("../../../construtos");
|
|
4
8
|
const espaco_variaveis_1 = require("../../../espaco-variaveis");
|
|
5
9
|
const estruturas_1 = require("../../../estruturas");
|
|
6
10
|
const excecoes_1 = require("../../../excecoes");
|
|
7
11
|
const quebras_1 = require("../../../quebras");
|
|
12
|
+
const inferenciador_1 = require("../../inferenciador");
|
|
8
13
|
const pilha_escopos_execucao_1 = require("../../pilha-escopos-execucao");
|
|
14
|
+
const birl_1 = __importDefault(require("../../../tipos-de-simbolos/birl"));
|
|
9
15
|
class InterpretadorBirl {
|
|
10
16
|
constructor(diretorioBase, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
|
|
11
17
|
this.funcaoDeRetorno = null;
|
|
@@ -24,7 +30,7 @@ class InterpretadorBirl {
|
|
|
24
30
|
ambiente: new espaco_variaveis_1.EspacoVariaveis(),
|
|
25
31
|
finalizado: false,
|
|
26
32
|
tipo: 'outro',
|
|
27
|
-
emLacoRepeticao: false
|
|
33
|
+
emLacoRepeticao: false,
|
|
28
34
|
};
|
|
29
35
|
this.pilhaEscoposExecucao.empilhar(escopoExecucao);
|
|
30
36
|
}
|
|
@@ -38,17 +44,199 @@ class InterpretadorBirl {
|
|
|
38
44
|
} */
|
|
39
45
|
return await expressao.aceitar(this);
|
|
40
46
|
}
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Empilha declarações na pilha de escopos de execução, cria um novo ambiente e
|
|
49
|
+
* executa as declarações empilhadas.
|
|
50
|
+
* Se o retorno do último bloco foi uma exceção (normalmente um erro em tempo de execução),
|
|
51
|
+
* atira a exceção daqui.
|
|
52
|
+
* Isso é usado, por exemplo, em blocos tente ... pegue ... finalmente.
|
|
53
|
+
* @param declaracoes Um vetor de declaracoes a ser executado.
|
|
54
|
+
* @param ambiente O ambiente de execução quando houver, como parâmetros, argumentos, etc.
|
|
55
|
+
*/
|
|
56
|
+
async executarBloco(declaracoes, ambiente) {
|
|
57
|
+
const escopoExecucao = {
|
|
58
|
+
declaracoes: declaracoes,
|
|
59
|
+
declaracaoAtual: 0,
|
|
60
|
+
ambiente: ambiente || new espaco_variaveis_1.EspacoVariaveis(),
|
|
61
|
+
finalizado: false,
|
|
62
|
+
tipo: 'outro',
|
|
63
|
+
emLacoRepeticao: false,
|
|
64
|
+
};
|
|
65
|
+
this.pilhaEscoposExecucao.empilhar(escopoExecucao);
|
|
66
|
+
const retornoUltimoEscopo = await this.executarUltimoEscopo();
|
|
67
|
+
if (retornoUltimoEscopo instanceof excecoes_1.ErroEmTempoDeExecucao) {
|
|
68
|
+
return Promise.reject(retornoUltimoEscopo);
|
|
69
|
+
}
|
|
70
|
+
return retornoUltimoEscopo;
|
|
43
71
|
}
|
|
44
72
|
visitarExpressaoAgrupamento(expressao) {
|
|
45
73
|
throw new Error('Método não implementado.');
|
|
46
74
|
}
|
|
47
|
-
|
|
48
|
-
|
|
75
|
+
verificarOperandoNumero(operador, operando) {
|
|
76
|
+
if (typeof operando === 'number' || operando.tipo === 'número')
|
|
77
|
+
return;
|
|
78
|
+
throw new excecoes_1.ErroEmTempoDeExecucao(operador, 'Operando precisa ser um número.', Number(operador.linha));
|
|
79
|
+
}
|
|
80
|
+
async visitarExpressaoUnaria(expressao) {
|
|
81
|
+
const operando = await this.avaliar(expressao.operando);
|
|
82
|
+
let valor = operando.hasOwnProperty('valor') ? operando.valor : operando;
|
|
83
|
+
switch (expressao.operador.tipo) {
|
|
84
|
+
case birl_1.default.SUBTRACAO:
|
|
85
|
+
this.verificarOperandoNumero(expressao.operador, valor);
|
|
86
|
+
return -valor;
|
|
87
|
+
case birl_1.default.NEGACAO:
|
|
88
|
+
return !this.eVerdadeiro(valor);
|
|
89
|
+
case birl_1.default.BIT_NOT:
|
|
90
|
+
return ~valor;
|
|
91
|
+
// Para incrementar e decrementar, primeiro precisamos saber se o operador
|
|
92
|
+
// veio antes do literal ou variável.
|
|
93
|
+
// Se veio antes e o operando é uma variável, precisamos incrementar/decrementar,
|
|
94
|
+
// armazenar o valor da variável pra só então devolver o valor.
|
|
95
|
+
case birl_1.default.INCREMENTAR:
|
|
96
|
+
if (expressao.incidenciaOperador === 'ANTES') {
|
|
97
|
+
valor++;
|
|
98
|
+
if (expressao.operando instanceof construtos_1.Variavel) {
|
|
99
|
+
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, valor);
|
|
100
|
+
}
|
|
101
|
+
return valor;
|
|
102
|
+
}
|
|
103
|
+
const valorAnteriorIncremento = valor;
|
|
104
|
+
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, ++valor);
|
|
105
|
+
return valorAnteriorIncremento;
|
|
106
|
+
case birl_1.default.DECREMENTAR:
|
|
107
|
+
if (expressao.incidenciaOperador === 'ANTES') {
|
|
108
|
+
valor--;
|
|
109
|
+
if (expressao.operando instanceof construtos_1.Variavel) {
|
|
110
|
+
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, valor);
|
|
111
|
+
}
|
|
112
|
+
return valor;
|
|
113
|
+
}
|
|
114
|
+
const valorAnteriorDecremento = valor;
|
|
115
|
+
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, --valor);
|
|
116
|
+
return valorAnteriorDecremento;
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
49
119
|
}
|
|
50
|
-
|
|
51
|
-
|
|
120
|
+
eIgual(esquerda, direita) {
|
|
121
|
+
if (esquerda === null && direita === null)
|
|
122
|
+
return true;
|
|
123
|
+
if (esquerda === null)
|
|
124
|
+
return false;
|
|
125
|
+
return esquerda === direita;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Verifica se operandos são números, que podem ser tanto variáveis puras do JavaScript
|
|
129
|
+
* (neste caso, `number`), ou podem ser variáveis de Delégua com inferência (`VariavelInterface`).
|
|
130
|
+
* @param operador O símbolo do operador.
|
|
131
|
+
* @param direita O operando direito.
|
|
132
|
+
* @param esquerda O operando esquerdo.
|
|
133
|
+
* @returns Se ambos os operandos são números ou não.
|
|
134
|
+
*/
|
|
135
|
+
verificarOperandosNumeros(operador, direita, esquerda) {
|
|
136
|
+
const tipoDireita = direita.tipo ? direita.tipo : typeof direita === 'number' ? 'número' : String(NaN);
|
|
137
|
+
const tipoEsquerda = esquerda.tipo
|
|
138
|
+
? esquerda.tipo
|
|
139
|
+
: typeof esquerda === 'number'
|
|
140
|
+
? 'número'
|
|
141
|
+
: String(NaN);
|
|
142
|
+
if (tipoDireita === 'número' && tipoEsquerda === 'número')
|
|
143
|
+
return;
|
|
144
|
+
throw new excecoes_1.ErroEmTempoDeExecucao(operador, 'Operadores precisam ser números.', operador.linha);
|
|
145
|
+
}
|
|
146
|
+
async visitarExpressaoBinaria(expressao) {
|
|
147
|
+
try {
|
|
148
|
+
const esquerda = await this.avaliar(expressao.esquerda);
|
|
149
|
+
const direita = await this.avaliar(expressao.direita);
|
|
150
|
+
const valorEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('valor')) ? esquerda.valor : esquerda;
|
|
151
|
+
const valorDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('valor')) ? direita.valor : direita;
|
|
152
|
+
const tipoEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('tipo'))
|
|
153
|
+
? esquerda.tipo
|
|
154
|
+
: (0, inferenciador_1.inferirTipoVariavel)(esquerda);
|
|
155
|
+
const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo')) ? direita.tipo : (0, inferenciador_1.inferirTipoVariavel)(direita);
|
|
156
|
+
switch (expressao.operador.tipo) {
|
|
157
|
+
case birl_1.default.EXPONENCIACAO:
|
|
158
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
159
|
+
return Math.pow(valorEsquerdo, valorDireito);
|
|
160
|
+
case birl_1.default.MAIOR:
|
|
161
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
162
|
+
return Number(valorEsquerdo) > Number(valorDireito);
|
|
163
|
+
case birl_1.default.MAIOR_IGUAL:
|
|
164
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
165
|
+
return Number(valorEsquerdo) >= Number(valorDireito);
|
|
166
|
+
case birl_1.default.MENOR:
|
|
167
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
168
|
+
return Number(valorEsquerdo) < Number(valorDireito);
|
|
169
|
+
case birl_1.default.MENOR_IGUAL:
|
|
170
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
171
|
+
return Number(valorEsquerdo) <= Number(valorDireito);
|
|
172
|
+
case birl_1.default.SUBTRACAO:
|
|
173
|
+
case birl_1.default.MENOS_IGUAL:
|
|
174
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
175
|
+
return Number(valorEsquerdo) - Number(valorDireito);
|
|
176
|
+
case birl_1.default.ADICAO:
|
|
177
|
+
case birl_1.default.MAIS_IGUAL:
|
|
178
|
+
if (tipoEsquerdo === 'número' && tipoDireito === 'número') {
|
|
179
|
+
return Number(valorEsquerdo) + Number(valorDireito);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
return String(valorEsquerdo) + String(valorDireito);
|
|
183
|
+
}
|
|
184
|
+
case birl_1.default.DIVISAO:
|
|
185
|
+
case birl_1.default.DIVISAO_IGUAL:
|
|
186
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
187
|
+
return Number(valorEsquerdo) / Number(valorDireito);
|
|
188
|
+
case birl_1.default.DIVISAO_INTEIRA:
|
|
189
|
+
case birl_1.default.DIVISAO_INTEIRA_IGUAL:
|
|
190
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
191
|
+
return Math.floor(Number(valorEsquerdo) / Number(valorDireito));
|
|
192
|
+
case birl_1.default.MULTIPLICACAO:
|
|
193
|
+
case birl_1.default.MULTIPLICACAO_IGUAL:
|
|
194
|
+
if (tipoEsquerdo === 'texto' || tipoDireito === 'texto') {
|
|
195
|
+
// Sem ambos os valores resolvem como texto, multiplica normal.
|
|
196
|
+
// Se apenas um resolve como texto, o outro repete o
|
|
197
|
+
// texto n vezes, sendo n o valor do outro.
|
|
198
|
+
if (tipoEsquerdo === 'texto' && tipoDireito === 'texto') {
|
|
199
|
+
return Number(valorEsquerdo) * Number(valorDireito);
|
|
200
|
+
}
|
|
201
|
+
if (tipoEsquerdo === 'texto') {
|
|
202
|
+
return valorEsquerdo.repeat(Number(valorDireito));
|
|
203
|
+
}
|
|
204
|
+
return valorDireito.repeat(Number(valorEsquerdo));
|
|
205
|
+
}
|
|
206
|
+
return Number(valorEsquerdo) * Number(valorDireito);
|
|
207
|
+
case birl_1.default.MODULO:
|
|
208
|
+
case birl_1.default.MODULO_IGUAL:
|
|
209
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
210
|
+
return Number(valorEsquerdo) % Number(valorDireito);
|
|
211
|
+
case birl_1.default.BIT_AND:
|
|
212
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
213
|
+
return Number(valorEsquerdo) & Number(valorDireito);
|
|
214
|
+
case birl_1.default.BIT_XOR:
|
|
215
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
216
|
+
return Number(valorEsquerdo) ^ Number(valorDireito);
|
|
217
|
+
case birl_1.default.BIT_OR:
|
|
218
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
219
|
+
return Number(valorEsquerdo) | Number(valorDireito);
|
|
220
|
+
case birl_1.default.MENOR_MENOR:
|
|
221
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
222
|
+
return Number(valorEsquerdo) << Number(valorDireito);
|
|
223
|
+
case birl_1.default.MAIOR_MAIOR:
|
|
224
|
+
this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
225
|
+
return Number(valorEsquerdo) >> Number(valorDireito);
|
|
226
|
+
case birl_1.default.DIFERENTE:
|
|
227
|
+
return !this.eIgual(valorEsquerdo, valorDireito);
|
|
228
|
+
case birl_1.default.IGUAL_IGUAL:
|
|
229
|
+
return this.eIgual(valorEsquerdo, valorDireito);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch (erro) {
|
|
233
|
+
this.erros.push({
|
|
234
|
+
erroInterno: erro,
|
|
235
|
+
linha: expressao.linha,
|
|
236
|
+
hashArquivo: expressao.hashArquivo,
|
|
237
|
+
});
|
|
238
|
+
return Promise.reject(erro);
|
|
239
|
+
}
|
|
52
240
|
}
|
|
53
241
|
visitarExpressaoDeChamada(expressao) {
|
|
54
242
|
throw new Error('Método não implementado.');
|
|
@@ -56,8 +244,11 @@ class InterpretadorBirl {
|
|
|
56
244
|
visitarDeclaracaoDeAtribuicao(expressao) {
|
|
57
245
|
throw new Error('Método não implementado.');
|
|
58
246
|
}
|
|
247
|
+
procurarVariavel(simbolo) {
|
|
248
|
+
return this.pilhaEscoposExecucao.obterValorVariavel(simbolo);
|
|
249
|
+
}
|
|
59
250
|
visitarExpressaoDeVariavel(expressao) {
|
|
60
|
-
|
|
251
|
+
return this.procurarVariavel(expressao.simbolo);
|
|
61
252
|
}
|
|
62
253
|
visitarDeclaracaoDeExpressao(declaracao) {
|
|
63
254
|
throw new Error('Método não implementado.');
|
|
@@ -90,11 +281,11 @@ class InterpretadorBirl {
|
|
|
90
281
|
});
|
|
91
282
|
}
|
|
92
283
|
/**
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
284
|
+
* Retira a interpolação de um texto.
|
|
285
|
+
* @param {texto} texto O texto
|
|
286
|
+
* @param {any[]} variaveis A lista de variaveis interpoladas
|
|
287
|
+
* @returns O texto com o valor das variaveis.
|
|
288
|
+
*/
|
|
98
289
|
retirarInterpolacao(texto, variaveis) {
|
|
99
290
|
const valoresVariaveis = variaveis.map((v) => ({
|
|
100
291
|
valorResolvido: this.pilhaEscoposExecucao.obterVariavelPorNome(v.variavel),
|
|
@@ -110,17 +301,55 @@ class InterpretadorBirl {
|
|
|
110
301
|
return textoFinal;
|
|
111
302
|
}
|
|
112
303
|
visitarExpressaoLiteral(expressao) {
|
|
113
|
-
if (
|
|
114
|
-
|
|
115
|
-
|
|
304
|
+
if (expressao.valor === birl_1.default.ADICAO) {
|
|
305
|
+
return 1;
|
|
306
|
+
}
|
|
307
|
+
else if (expressao.valor === birl_1.default.SUBTRACAO) {
|
|
308
|
+
return -1;
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
return expressao.valor;
|
|
116
312
|
}
|
|
117
|
-
return expressao.valor;
|
|
118
313
|
}
|
|
119
314
|
visitarExpressaoLogica(expressao) {
|
|
120
315
|
throw new Error('Método não implementado.');
|
|
121
316
|
}
|
|
122
|
-
visitarDeclaracaoPara(declaracao) {
|
|
123
|
-
|
|
317
|
+
async visitarDeclaracaoPara(declaracao) {
|
|
318
|
+
if (declaracao.inicializador !== null) {
|
|
319
|
+
if (declaracao.inicializador instanceof Array) {
|
|
320
|
+
await this.avaliar(declaracao.inicializador[0]);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
await this.avaliar(declaracao.inicializador);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
let retornoExecucao;
|
|
327
|
+
while (!(retornoExecucao instanceof quebras_1.Quebra)) {
|
|
328
|
+
if (declaracao.condicao !== null && !this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
try {
|
|
332
|
+
retornoExecucao = await this.executar(declaracao.corpo);
|
|
333
|
+
if (retornoExecucao instanceof quebras_1.SustarQuebra) {
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
|
|
337
|
+
retornoExecucao = null;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
catch (erro) {
|
|
341
|
+
this.erros.push({
|
|
342
|
+
erroInterno: erro,
|
|
343
|
+
linha: declaracao.linha,
|
|
344
|
+
hashArquivo: declaracao.hashArquivo,
|
|
345
|
+
});
|
|
346
|
+
return Promise.reject(erro);
|
|
347
|
+
}
|
|
348
|
+
if (declaracao.incrementar !== null) {
|
|
349
|
+
await this.avaliar(declaracao.incrementar);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return retornoExecucao;
|
|
124
353
|
}
|
|
125
354
|
visitarDeclaracaoParaCada(declaracao) {
|
|
126
355
|
throw new Error('Método não implementado.');
|
|
@@ -210,8 +439,8 @@ class InterpretadorBirl {
|
|
|
210
439
|
visitarExpressaoEscrevaMesmaLinha(declaracao) {
|
|
211
440
|
throw new Error('Método não implementado.');
|
|
212
441
|
}
|
|
213
|
-
visitarExpressaoBloco(declaracao) {
|
|
214
|
-
|
|
442
|
+
async visitarExpressaoBloco(declaracao) {
|
|
443
|
+
return await this.executarBloco(declaracao.declaracoes);
|
|
215
444
|
}
|
|
216
445
|
async avaliacaoDeclaracaoVar(declaracao) {
|
|
217
446
|
let valorOuOutraVariavel = null;
|
|
@@ -258,7 +487,7 @@ class InterpretadorBirl {
|
|
|
258
487
|
visitarExpressaoDeleguaFuncao(expressao) {
|
|
259
488
|
throw new Error('Método não implementado.');
|
|
260
489
|
}
|
|
261
|
-
|
|
490
|
+
visitarExpressaoAtribuicaoPorIndice(expressao) {
|
|
262
491
|
throw new Error('Método não implementado.');
|
|
263
492
|
}
|
|
264
493
|
visitarExpressaoAcessoIndiceVariavel(expressao) {
|
|
@@ -316,14 +545,24 @@ class InterpretadorBirl {
|
|
|
316
545
|
* pelo modo LAIR.
|
|
317
546
|
*/
|
|
318
547
|
async executar(declaracao, mostrarResultado = false) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
548
|
+
let resultado = null;
|
|
549
|
+
// Tratar caso Bloco
|
|
550
|
+
if (declaracao instanceof Array) {
|
|
551
|
+
for (const decl of declaracao) {
|
|
552
|
+
resultado = await this.executar(decl, mostrarResultado);
|
|
553
|
+
}
|
|
554
|
+
return resultado;
|
|
322
555
|
}
|
|
323
|
-
|
|
324
|
-
|
|
556
|
+
else {
|
|
557
|
+
resultado = await declaracao.aceitar(this);
|
|
558
|
+
if (mostrarResultado) {
|
|
559
|
+
this.funcaoDeRetorno(this.paraTexto(resultado));
|
|
560
|
+
}
|
|
561
|
+
if (resultado || typeof resultado === 'boolean') {
|
|
562
|
+
this.resultadoInterpretador.push(this.paraTexto(resultado));
|
|
563
|
+
}
|
|
564
|
+
return resultado;
|
|
325
565
|
}
|
|
326
|
-
return resultado;
|
|
327
566
|
}
|
|
328
567
|
/**
|
|
329
568
|
* Executa o último escopo empilhado no topo na pilha de escopos do interpretador.
|