@designliquido/delegua 1.22.0 → 1.22.2
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/analisador-semantico/analisador-semantico.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico.js +43 -15
- package/analisador-semantico/analisador-semantico.js.map +1 -1
- package/analisador-semantico/tabela-diagnosticos-semanticos.d.ts.map +1 -1
- package/analisador-semantico/tabela-diagnosticos-semanticos.js +5 -0
- package/analisador-semantico/tabela-diagnosticos-semanticos.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts +0 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +16 -9
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +0 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +22 -26
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts +0 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +0 -4
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
- package/bibliotecas/testes/modulo-afirmar.d.ts.map +1 -1
- package/bibliotecas/testes/modulo-afirmar.js +5 -0
- package/bibliotecas/testes/modulo-afirmar.js.map +1 -1
- package/bin/package.json +1 -1
- package/declaracoes/bloco.d.ts.map +1 -1
- package/declaracoes/bloco.js +0 -2
- package/declaracoes/bloco.js.map +1 -1
- package/declaracoes/const-multiplo.js +2 -2
- package/declaracoes/const-multiplo.js.map +1 -1
- package/declaracoes/enquanto.d.ts.map +1 -1
- package/declaracoes/enquanto.js +1 -2
- package/declaracoes/enquanto.js.map +1 -1
- package/declaracoes/escolha.d.ts.map +1 -1
- package/declaracoes/escolha.js +9 -2
- package/declaracoes/escolha.js.map +1 -1
- package/declaracoes/fazer.d.ts.map +1 -1
- package/declaracoes/fazer.js +1 -2
- package/declaracoes/fazer.js.map +1 -1
- package/declaracoes/funcao.d.ts.map +1 -1
- package/declaracoes/funcao.js +1 -2
- package/declaracoes/funcao.js.map +1 -1
- package/declaracoes/inicio-algoritmo.d.ts +4 -0
- package/declaracoes/inicio-algoritmo.d.ts.map +1 -1
- package/declaracoes/inicio-algoritmo.js +4 -2
- package/declaracoes/inicio-algoritmo.js.map +1 -1
- package/declaracoes/para-cada.d.ts.map +1 -1
- package/declaracoes/para-cada.js +1 -2
- package/declaracoes/para-cada.js.map +1 -1
- package/declaracoes/para.d.ts.map +1 -1
- package/declaracoes/para.js +3 -4
- package/declaracoes/para.js.map +1 -1
- package/declaracoes/se.d.ts.map +1 -1
- package/declaracoes/se.js +10 -2
- package/declaracoes/se.js.map +1 -1
- package/declaracoes/tendo-como.d.ts.map +1 -1
- package/declaracoes/tendo-como.js +1 -2
- package/declaracoes/tendo-como.js.map +1 -1
- package/declaracoes/tente.d.ts.map +1 -1
- package/declaracoes/tente.js +7 -2
- package/declaracoes/tente.js.map +1 -1
- package/declaracoes/var-multiplo.js +2 -2
- package/declaracoes/var-multiplo.js.map +1 -1
- package/inferenciador.d.ts.map +1 -1
- package/inferenciador.js +5 -3
- package/inferenciador.js.map +1 -1
- package/interfaces/erros/correcao-implementacao-metodo-interface.d.ts +8 -0
- package/interfaces/erros/correcao-implementacao-metodo-interface.d.ts.map +1 -0
- package/interfaces/erros/correcao-implementacao-metodo-interface.js +3 -0
- package/interfaces/erros/correcao-implementacao-metodo-interface.js.map +1 -0
- package/interfaces/erros/diagnostico-analisador-semantico-interface.d.ts +2 -0
- package/interfaces/erros/diagnostico-analisador-semantico-interface.d.ts.map +1 -1
- package/interfaces/erros/diagnostico-analisador-semantico-interface.js.map +1 -1
- package/interfaces/erros/index.d.ts +1 -0
- package/interfaces/erros/index.d.ts.map +1 -1
- package/interfaces/erros/index.js +1 -0
- package/interfaces/erros/index.js.map +1 -1
- package/interfaces/primitiva-interface.d.ts.map +1 -1
- package/interfaces/variavel-interface.d.ts.map +1 -1
- package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
- package/interpretador/estruturas/delegua-funcao.js +0 -2
- package/interpretador/estruturas/delegua-funcao.js.map +1 -1
- package/interpretador/interpretador-base.d.ts +17 -0
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +46 -22
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
- package/interpretador/pilha-escopos-execucao.js +20 -10
- package/interpretador/pilha-escopos-execucao.js.map +1 -1
- package/package.json +1 -1
- package/umd/delegua.js +558 -468
package/declaracoes/tente.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tente.js","sourceRoot":"","sources":["../../fontes/declaracoes/tente.ts"],"names":[],"mappings":";;;AAEA,6CAA0C;AAE1C;;GAEG;AACH,MAAa,KAAM,SAAQ,uBAAU;IAMjC,YACI,WAAmB,EACnB,KAAa,EACb,YAA0B,EAC1B,YAA4C,EAC5C,YAA0B,EAC1B,iBAA+B;QAE/B,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,MAAM,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;QACL,
|
|
1
|
+
{"version":3,"file":"tente.js","sourceRoot":"","sources":["../../fontes/declaracoes/tente.ts"],"names":[],"mappings":";;;AAEA,6CAA0C;AAE1C;;GAEG;AACH,MAAa,KAAM,SAAQ,uBAAU;IAMjC,YACI,WAAmB,EACnB,KAAa,EACb,YAA0B,EAC1B,YAA4C,EAC5C,YAA0B,EAC1B,iBAA+B;QAE/B,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,MAAM,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,uBAAuB,KAAK,wBAAwB,KAAK,kBAAkB,KAAK,uBAAuB,UAAU,uBAAuB,CAAC;IACpJ,CAAC;CACJ;AAlCD,sBAkCC"}
|
|
@@ -17,8 +17,8 @@ class VarMultiplo extends declaracao_1.Declaracao {
|
|
|
17
17
|
return await visitante.visitarDeclaracaoVarMultiplo(this);
|
|
18
18
|
}
|
|
19
19
|
paraTexto() {
|
|
20
|
-
|
|
21
|
-
return `<var-múltiplo />`;
|
|
20
|
+
const nomes = this.simbolos.map((s) => s.lexema).join(',');
|
|
21
|
+
return `<var-múltiplo nomes=[${nomes}] inicializador=${this.inicializador.paraTexto()} tipo=${this.tipo ?? 'qualquer'} />`;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.VarMultiplo = VarMultiplo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"var-multiplo.js","sourceRoot":"","sources":["../../fontes/declaracoes/var-multiplo.ts"],"names":[],"mappings":";;;AAEA,6CAA0C;AAE1C;;GAEG;AACH,MAAa,WAAY,SAAQ,uBAAU;IAMvC,YACI,QAA4B,EAC5B,aAAiC,EACjC,OAAmC,SAAS;QAE5C,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,MAAM,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACL,
|
|
1
|
+
{"version":3,"file":"var-multiplo.js","sourceRoot":"","sources":["../../fontes/declaracoes/var-multiplo.ts"],"names":[],"mappings":";;;AAEA,6CAA0C;AAE1C;;GAEG;AACH,MAAa,WAAY,SAAQ,uBAAU;IAMvC,YACI,QAA4B,EAC5B,aAAiC,EACjC,OAAmC,SAAS;QAE5C,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAkC;QAC5C,OAAO,MAAM,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,wBAAwB,KAAK,mBAAmB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,UAAU,KAAK,CAAC;IAC/H,CAAC;CACJ;AA1BD,kCA0BC"}
|
package/inferenciador.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferenciador.d.ts","sourceRoot":"","sources":["../fontes/inferenciador.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GACpB,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,GACV,OAAO,GACP,SAAS,GACT,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,SAAS,GACT,OAAO,GACP,OAAO,CAAC;AAEd,oBAAY,iBAAiB;IACzB,OAAO,wGAA4F;IACnG,IAAI,qFAAmF;IACvF,MAAM,8FAAkF;IACxF,EAAE,0FAAwF;IAC1F,QAAQ,uFAAqF;IAC7F,IAAI,+EAA6E;IACjF,OAAO,8GAAkG;IACzG,OAAO,8GAAuG;IAC9G,KAAK,0GAAmG;IACxG,QAAQ,gHAAyG;IACjH,KAAK,6HAA4G;CACpH;
|
|
1
|
+
{"version":3,"file":"inferenciador.d.ts","sourceRoot":"","sources":["../fontes/inferenciador.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GACpB,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,GACV,OAAO,GACP,SAAS,GACT,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,SAAS,GACT,OAAO,GACP,OAAO,CAAC;AAEd,oBAAY,iBAAiB;IACzB,OAAO,wGAA4F;IACnG,IAAI,qFAAmF;IACvF,MAAM,8FAAkF;IACxF,EAAE,0FAAwF;IAC1F,QAAQ,uFAAqF;IAC7F,IAAI,+EAA6E;IACjF,OAAO,8GAAkG;IACzG,OAAO,8GAAuG;IAC9G,KAAK,0GAAmG;IACxG,QAAQ,gHAAyG;IACjH,KAAK,6HAA4G;CACpH;AAqCD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,GAAG,cAAc,GAAG,iBAAiB,CAmErF"}
|
package/inferenciador.js
CHANGED
|
@@ -48,8 +48,10 @@ function inferirVetor(vetor) {
|
|
|
48
48
|
}
|
|
49
49
|
return `${tiposObjetosEmVetor.values().next().value}[]`;
|
|
50
50
|
case 'Literal':
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const tiposLiterais = new Set(vetor.map((e) => e.tipo));
|
|
52
|
+
if (tiposLiterais.size > 1)
|
|
53
|
+
return 'vetor';
|
|
54
|
+
return `${tiposLiterais.values().next().value}[]`;
|
|
53
55
|
default:
|
|
54
56
|
return 'vetor';
|
|
55
57
|
}
|
|
@@ -90,7 +92,7 @@ function inferirTipoVariavel(variavel) {
|
|
|
90
92
|
case 'DescritorTipoClasse':
|
|
91
93
|
case 'ObjetoDeleguaClasse':
|
|
92
94
|
return 'objeto';
|
|
93
|
-
case 'Simbolo':
|
|
95
|
+
case 'Simbolo':
|
|
94
96
|
const simbolo = variavel;
|
|
95
97
|
switch (simbolo.tipo) {
|
|
96
98
|
case primitivos_1.default.BOOLEANO:
|
package/inferenciador.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferenciador.js","sourceRoot":"","sources":["../fontes/inferenciador.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"inferenciador.js","sourceRoot":"","sources":["../fontes/inferenciador.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface CorrecaoImplementacaoMetodoInterface {
|
|
2
|
+
tipo: 'implementar-metodo';
|
|
3
|
+
nomeClasse: string;
|
|
4
|
+
nomeMetodo: string;
|
|
5
|
+
linhaDeclaracaoClasse: number;
|
|
6
|
+
hashArquivoClasse?: number;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=correcao-implementacao-metodo-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correcao-implementacao-metodo-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/erros/correcao-implementacao-metodo-interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oCAAoC;IACjD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correcao-implementacao-metodo-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/erros/correcao-implementacao-metodo-interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SimboloInterface } from '../simbolo-interface';
|
|
2
|
+
import { CorrecaoImplementacaoMetodoInterface } from './correcao-implementacao-metodo-interface';
|
|
2
3
|
import { CorrecaoSugeridaInterface } from './correcao-sugerida-interface';
|
|
3
4
|
export interface DiagnosticoAnalisadorSemanticoInterface {
|
|
4
5
|
simbolo?: SimboloInterface;
|
|
@@ -11,6 +12,7 @@ export interface DiagnosticoAnalisadorSemanticoInterface {
|
|
|
11
12
|
colunaInicio?: number;
|
|
12
13
|
colunaFim?: number;
|
|
13
14
|
correcoes?: CorrecaoSugeridaInterface[];
|
|
15
|
+
correcaoMetodo?: CorrecaoImplementacaoMetodoInterface;
|
|
14
16
|
}
|
|
15
17
|
export declare enum DiagnosticoSeveridade {
|
|
16
18
|
ERRO = 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostico-analisador-semantico-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/erros/diagnostico-analisador-semantico-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,uCAAuC;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostico-analisador-semantico-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/erros/diagnostico-analisador-semantico-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,uCAAuC;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,oCAAoC,CAAC;CACzD;AAED,oBAAY,qBAAqB;IAC7B,IAAI,IAAI;IACR,KAAK,IAAI;IACT,UAAU,IAAI;IACd,QAAQ,IAAI;CACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostico-analisador-semantico-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/erros/diagnostico-analisador-semantico-interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"diagnostico-analisador-semantico-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/erros/diagnostico-analisador-semantico-interface.ts"],"names":[],"mappings":";;;AAkBA,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,iEAAQ,CAAA;IACR,mEAAS,CAAA;IACT,6EAAc,CAAA;IACd,yEAAY,CAAA;AAChB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/erros/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/erros/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gCAAgC,CAAC"}
|
|
@@ -14,6 +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("./correcao-implementacao-metodo-interface"), exports);
|
|
17
18
|
__exportStar(require("./correcao-sugerida-interface"), exports);
|
|
18
19
|
__exportStar(require("./diagnostico-analisador-semantico-interface"), exports);
|
|
19
20
|
__exportStar(require("./erro-interpretador-interface"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/erros/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,+EAA6D;AAC7D,iEAA+C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/erros/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4EAA0D;AAC1D,gEAA8C;AAC9C,+EAA6D;AAC7D,iEAA+C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitiva-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/primitiva-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,aAAa,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"primitiva-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/primitiva-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,aAAa,EAAE,QAAQ,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variavel-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/variavel-interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"variavel-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/variavel-interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegua-funcao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAsB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,sGAAsG;IACtG,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;gBAGhD,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,UAAU,EAAE,eAAe,EAC3B,SAAS,GAAE,GAAe,EAC1B,cAAc,UAAQ;IAS1B,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAgCnB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,4BAA4B;IAiBpC,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,aAAa;IAqC1E,MAAM,CACR,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"delegua-funcao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAsB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,sGAAsG;IACtG,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;gBAGhD,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,UAAU,EAAE,eAAe,EAC3B,SAAS,GAAE,GAAe,EAC1B,cAAc,UAAQ;IAS1B,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAgCnB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,4BAA4B;IAiBpC,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,aAAa;IAqC1E,MAAM,CACR,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,GAAG,CAAC;IAqEf,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,aAAa;IAYtE,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa;CAK/C"}
|
|
@@ -118,8 +118,6 @@ class DeleguaFuncao extends chamavel_1.Chamavel {
|
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
// TODO: Repensar essa dinâmica para análise semântica (levar toda a lógica abaixo para
|
|
122
|
-
// o interpretador).
|
|
123
121
|
const interpretador = visitante;
|
|
124
122
|
interpretador.proximoEscopo = 'funcao';
|
|
125
123
|
// Rastrear a classe atual em execução para verificação de acesso.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegua-funcao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AACtC,sDAAkD;AAIlD,2CAA8C;AAC9C,mEAA8D;AAI9D,mDAA4C;AAE5C;;GAEG;AACH,MAAa,aAAc,SAAQ,mBAAQ;IASvC,YACI,IAAmB,EACnB,UAA2B,EAC3B,YAAiB,SAAS,EAC1B,cAAc,GAAG,KAAK;QAEtB,KAAK,EAAE,CAAC;QATZ,sGAAsG;QACtG,qBAAgB,GAA+B,IAAI,CAAC;QAShD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAChG,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,CAAC;QACpC,IAAI,SAAS,GAAG,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/C,UAAU,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,QAAQ,IAAI,UAAU,IAAI,CAAC;QACpF,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,UAAU,GAAG,eAAe,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,qBAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO,YAAY,qBAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;YACpC,OAAO,GAAG,YAAY,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC;QAC9E,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,SAAS,IAAI,IAAI,UAAU,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,SAAS,IAAI,IAAI,OAAO,EAAE,CAAC;QAC/B,CAAC;QAED,SAAS,IAAI,KAAK,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAEO,4BAA4B,CAChC,UAAqC,EACrC,oBAA4B;QAE5B,MAAM,oBAAoB,GAAG,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACrC,oBAAoB,CAAC,IAAI,CACrB,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC;gBACpD,CAAC,CAAC,cAAc,CAAC,KAAK;gBACtB,CAAC,CAAC,cAAc,CACvB,CAAC;QACN,CAAC;QAED,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAES,gBAAgB,CAAC,UAAqC;QAC5D,MAAM,QAAQ,GAAG,IAAI,8BAAa,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAEhC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACtC,IAAI,SAAS,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAE9E,qDAAqD;gBACrD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,oBAAoB;oBAC3B,QAAQ,EAAE,IAAI;iBACjB,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC3B,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/E,CAAC;gBAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEjF,4EAA4E;gBAC5E,kGAAkG;gBAClG,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;gBAChC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,MAAM,CACR,SAAiC,EACjC,UAAqC;QAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;gBACvB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,IAAI,EACA,IAAI,CAAC,SAAS,YAAY,2CAAmB;oBACzC,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrC,QAAQ,EAAE,KAAK;aAClB,CAAC;YAEF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG;oBAClC,KAAK,EAAE,IAAI,CAAC,gBAAgB;oBAC5B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACjB,CAAC;YACN,CAAC;QACL,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"delegua-funcao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,15 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
46
46
|
private iteracoesParaCederControle;
|
|
47
47
|
private tiposNumericos;
|
|
48
48
|
lancarErroPorDivisaoPorZero: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Gancho opcional para instrumentação de cobertura de ramos.
|
|
51
|
+
* Subclasses (como `InterpretadorComImportacao` em delegua-node) podem sobrescrever
|
|
52
|
+
* este método para registrar qual ramo de uma estrutura de controle foi executado.
|
|
53
|
+
* @param hashArquivo Identificador do arquivo-fonte.
|
|
54
|
+
* @param linha Linha da declaração de controle.
|
|
55
|
+
* @param ramo O ramo executado: 'verdadeiro', 'falso', 'senao', 'caso-padrao', ou 'iteracao'.
|
|
56
|
+
*/
|
|
57
|
+
protected registrarRamo?(hashArquivo: number, linha: number, ramo: 'verdadeiro' | 'falso' | 'senao' | 'caso-padrao' | 'iteracao'): void;
|
|
49
58
|
constructor(diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function | undefined, funcaoDeRetornoMesmaLinha?: Function | undefined);
|
|
50
59
|
/**
|
|
51
60
|
* Cede o controle ao loop de eventos do JavaScript.
|
|
@@ -95,6 +104,14 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
95
104
|
visitarExpressaoFalhar(expressao: Falhar): Promise<any>;
|
|
96
105
|
visitarExpressaoFimPara(_: FimPara): Promise<any>;
|
|
97
106
|
visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any>;
|
|
107
|
+
/**
|
|
108
|
+
* Gancho opcional para instrumentação de cobertura de expressões.
|
|
109
|
+
* Subclasses podem sobrescrever este método para registrar que uma expressão
|
|
110
|
+
* em determinada linha foi avaliada.
|
|
111
|
+
* @param hashArquivo Identificador do arquivo-fonte.
|
|
112
|
+
* @param linha Linha da expressão avaliada.
|
|
113
|
+
*/
|
|
114
|
+
protected registrarExpressao?(hashArquivo: number, linha: number): void;
|
|
98
115
|
/**
|
|
99
116
|
* Chama o método `aceitar` de um construto ou declaração, passando o
|
|
100
117
|
* próprio interpretador como parâmetro.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpretador-base.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-base.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interpretador-base.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -308,6 +308,9 @@ class InterpretadorBase {
|
|
|
308
308
|
/* if (expressao === null || expressao === undefined) {
|
|
309
309
|
console.log('Aqui');
|
|
310
310
|
} */
|
|
311
|
+
if (expressao.hashArquivo >= 0 && expressao.linha >= 0) {
|
|
312
|
+
this.registrarExpressao?.(expressao.hashArquivo, expressao.linha);
|
|
313
|
+
}
|
|
311
314
|
return await expressao.aceitar(this);
|
|
312
315
|
}
|
|
313
316
|
/**
|
|
@@ -331,12 +334,11 @@ class InterpretadorBase {
|
|
|
331
334
|
retirarInterpolacao(texto, interpolacoes) {
|
|
332
335
|
let textoFinal = texto;
|
|
333
336
|
for (const elemento of interpolacoes) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
if (valor.hasOwnProperty && valor.hasOwnProperty('valorRetornado')) {
|
|
337
|
+
let valor = elemento.valor;
|
|
338
|
+
if (valor?.hasOwnProperty && valor.hasOwnProperty('valorRetornado')) {
|
|
337
339
|
valor = valor.valorRetornado;
|
|
338
340
|
}
|
|
339
|
-
if (valor
|
|
341
|
+
if (valor?.tipo === delegua_2.default.LOGICO) {
|
|
340
342
|
textoFinal = textoFinal.replace('${' + elemento.expressaoInterpolacao + '}', this.paraTexto(valor));
|
|
341
343
|
}
|
|
342
344
|
else {
|
|
@@ -465,9 +467,9 @@ class InterpretadorBase {
|
|
|
465
467
|
return valor;
|
|
466
468
|
}
|
|
467
469
|
const valorAnteriorIncremento = valor;
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
470
|
+
if (expressao.operando instanceof construtos_1.Variavel) {
|
|
471
|
+
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, ++valor);
|
|
472
|
+
}
|
|
471
473
|
return valorAnteriorIncremento;
|
|
472
474
|
case delegua_1.default.DECREMENTAR:
|
|
473
475
|
if (expressao.incidenciaOperador === 'ANTES') {
|
|
@@ -478,9 +480,9 @@ class InterpretadorBase {
|
|
|
478
480
|
return valor;
|
|
479
481
|
}
|
|
480
482
|
const valorAnteriorDecremento = valor;
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
483
|
+
if (expressao.operando instanceof construtos_1.Variavel) {
|
|
484
|
+
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, --valor);
|
|
485
|
+
}
|
|
484
486
|
return valorAnteriorDecremento;
|
|
485
487
|
}
|
|
486
488
|
return null;
|
|
@@ -854,8 +856,10 @@ class InterpretadorBase {
|
|
|
854
856
|
*/
|
|
855
857
|
async visitarExpressaoDeChamada(expressao) {
|
|
856
858
|
try {
|
|
857
|
-
let variavelEntidadeChamada = await this
|
|
858
|
-
|
|
859
|
+
let variavelEntidadeChamada = await this
|
|
860
|
+
.avaliar(expressao.entidadeChamada);
|
|
861
|
+
if (variavelEntidadeChamada === null ||
|
|
862
|
+
variavelEntidadeChamada === undefined) {
|
|
859
863
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.parentese, 'Chamada de função ou método inexistente: ' +
|
|
860
864
|
String(expressao.entidadeChamada), expressao.linha));
|
|
861
865
|
}
|
|
@@ -873,7 +877,8 @@ class InterpretadorBase {
|
|
|
873
877
|
if (entidadeChamada instanceof metodo_primitiva_1.MetodoPrimitiva) {
|
|
874
878
|
return await this.chamarMetodoPrimitiva(expressao, entidadeChamada);
|
|
875
879
|
}
|
|
876
|
-
const argumentos = await this
|
|
880
|
+
const argumentos = await this
|
|
881
|
+
.resolverArgumentosChamada(expressao);
|
|
877
882
|
const aridade = entidadeChamada.aridade
|
|
878
883
|
? entidadeChamada.aridade()
|
|
879
884
|
: entidadeChamada.length;
|
|
@@ -884,6 +889,16 @@ class InterpretadorBase {
|
|
|
884
889
|
const ehPolimorfico = entidadeChamada instanceof estruturas_1.MetodoPolimorfico ||
|
|
885
890
|
(entidadeChamada instanceof estruturas_1.DescritorTipoClasse &&
|
|
886
891
|
entidadeChamada.encontrarMetodo('construtor') instanceof estruturas_1.MetodoPolimorfico);
|
|
892
|
+
if (entidadeChamada instanceof estruturas_1.DeleguaFuncao && entidadeChamada.declaracao) {
|
|
893
|
+
// Pega os parâmetros da declaração e filtra apenas os obrigatórios
|
|
894
|
+
// (ignora os que têm valor padrão ou são rest parameters)
|
|
895
|
+
const parametros = entidadeChamada.declaracao.parametros || [];
|
|
896
|
+
const parametrosObrigatorios = parametros.filter((p) => !p.valorPadrao && p.abrangencia !== 'multiplo').length;
|
|
897
|
+
if (argumentos.length < parametrosObrigatorios) {
|
|
898
|
+
const nomeFuncao = entidadeChamada.nome || 'anônima';
|
|
899
|
+
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.parentese, `A função '${nomeFuncao}' esperava no mínimo ${parametrosObrigatorios} argumento(s), mas recebeu ${argumentos.length}.`, expressao.linha));
|
|
900
|
+
}
|
|
901
|
+
}
|
|
887
902
|
if (!ehPolimorfico && argumentos.length < aridade) {
|
|
888
903
|
const diferenca = aridade - argumentos.length;
|
|
889
904
|
for (let i = 0; i < diferenca; i++) {
|
|
@@ -1079,6 +1094,7 @@ class InterpretadorBase {
|
|
|
1079
1094
|
!this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
|
|
1080
1095
|
break;
|
|
1081
1096
|
}
|
|
1097
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'iteracao');
|
|
1082
1098
|
try {
|
|
1083
1099
|
await this.cederControle(++iteracoes);
|
|
1084
1100
|
retornoExecucao = await this.executar(declaracao.corpo);
|
|
@@ -1127,6 +1143,7 @@ class InterpretadorBase {
|
|
|
1127
1143
|
let iteracoes = 0;
|
|
1128
1144
|
while (!(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra) &&
|
|
1129
1145
|
declaracao.posicaoAtual < valorVetorResolvido.length) {
|
|
1146
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'iteracao');
|
|
1130
1147
|
try {
|
|
1131
1148
|
await this.cederControle(++iteracoes);
|
|
1132
1149
|
if (declaracao.variavelIteracao instanceof construtos_1.Variavel) {
|
|
@@ -1171,18 +1188,22 @@ class InterpretadorBase {
|
|
|
1171
1188
|
async visitarDeclaracaoSe(declaracao) {
|
|
1172
1189
|
const avaliacaoCondicaoSe = await this.avaliar(declaracao.condicao);
|
|
1173
1190
|
if (this.eVerdadeiro(avaliacaoCondicaoSe)) {
|
|
1191
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'verdadeiro');
|
|
1174
1192
|
return await this.executar(declaracao.caminhoEntao);
|
|
1175
1193
|
}
|
|
1176
1194
|
const declaracaoCaminhosSeSenao = declaracao.caminhosSeSenao || [];
|
|
1177
1195
|
for (let i = 0; i < declaracaoCaminhosSeSenao.length; i++) {
|
|
1178
1196
|
const atual = declaracaoCaminhosSeSenao[i];
|
|
1179
1197
|
if (this.eVerdadeiro(await this.avaliar(atual.condicao))) {
|
|
1198
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'verdadeiro');
|
|
1180
1199
|
return await this.executar(atual.caminho);
|
|
1181
1200
|
}
|
|
1182
1201
|
}
|
|
1183
1202
|
if (declaracao.caminhoSenao) {
|
|
1203
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'senao');
|
|
1184
1204
|
return await this.executar(declaracao.caminhoSenao);
|
|
1185
1205
|
}
|
|
1206
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'falso');
|
|
1186
1207
|
return null;
|
|
1187
1208
|
}
|
|
1188
1209
|
async visitarDeclaracaoEnquanto(declaracao) {
|
|
@@ -1190,6 +1211,7 @@ class InterpretadorBase {
|
|
|
1190
1211
|
let iteracoes = 0;
|
|
1191
1212
|
while (!(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra) &&
|
|
1192
1213
|
this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
|
|
1214
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'iteracao');
|
|
1193
1215
|
try {
|
|
1194
1216
|
await this.cederControle(++iteracoes);
|
|
1195
1217
|
retornoExecucao = await this.executar(declaracao.corpo);
|
|
@@ -1239,6 +1261,7 @@ class InterpretadorBase {
|
|
|
1239
1261
|
}
|
|
1240
1262
|
}
|
|
1241
1263
|
if (caminhoPadrao !== null && !encontrado) {
|
|
1264
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'caso-padrao');
|
|
1242
1265
|
await this.executarBloco(caminhoPadrao.declaracoes);
|
|
1243
1266
|
}
|
|
1244
1267
|
}
|
|
@@ -1255,6 +1278,7 @@ class InterpretadorBase {
|
|
|
1255
1278
|
let retornoExecucao = undefined;
|
|
1256
1279
|
let iteracoes = 0;
|
|
1257
1280
|
do {
|
|
1281
|
+
this.registrarRamo?.(declaracao.hashArquivo, declaracao.linha, 'iteracao');
|
|
1258
1282
|
try {
|
|
1259
1283
|
await this.cederControle(++iteracoes);
|
|
1260
1284
|
retornoExecucao = await this.executar(declaracao.caminhoFazer);
|
|
@@ -1531,8 +1555,15 @@ class InterpretadorBase {
|
|
|
1531
1555
|
if (objeto instanceof construtos_1.Vetor) {
|
|
1532
1556
|
return objeto.valores[valorIndice];
|
|
1533
1557
|
}
|
|
1534
|
-
if (objeto.constructor === Object
|
|
1535
|
-
objeto
|
|
1558
|
+
if (objeto.constructor === Object) {
|
|
1559
|
+
if (!Object.prototype.hasOwnProperty.call(objeto, valorIndice)) {
|
|
1560
|
+
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.simboloFechamento, `Chave '${valorIndice}' não encontrada no dicionário.`, expressao.linha));
|
|
1561
|
+
}
|
|
1562
|
+
if (objeto[valorIndice] === 0)
|
|
1563
|
+
return 0;
|
|
1564
|
+
return objeto[valorIndice];
|
|
1565
|
+
}
|
|
1566
|
+
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
|
|
1536
1567
|
objeto instanceof estruturas_1.DeleguaFuncao ||
|
|
1537
1568
|
objeto instanceof estruturas_1.DescritorTipoClasse ||
|
|
1538
1569
|
objeto instanceof estruturas_1.DeleguaModulo) {
|
|
@@ -1758,7 +1789,6 @@ class InterpretadorBase {
|
|
|
1758
1789
|
tipoObjeto = (0, inferenciador_1.inferirTipoVariavel)(variavelObjeto);
|
|
1759
1790
|
}
|
|
1760
1791
|
// Caso 3: Vetor simples do JavaScript.
|
|
1761
|
-
// TODO: Em teoria, isso deve estar no interpretador de Delégua, não aqui.
|
|
1762
1792
|
if (Array.isArray(objeto)) {
|
|
1763
1793
|
if (expressao.simbolo.lexema in primitivas_vetor_1.default) {
|
|
1764
1794
|
const metodoDePrimitivaVetor = primitivas_vetor_1.default[expressao.simbolo.lexema].implementacao;
|
|
@@ -2183,17 +2213,11 @@ class InterpretadorBase {
|
|
|
2183
2213
|
const inicioInterpretacao = (0, browser_process_hrtime_1.default)();
|
|
2184
2214
|
try {
|
|
2185
2215
|
const retornoOuErro = await this.executarUltimoEscopo(manterAmbiente);
|
|
2186
|
-
// TODO: Esta lógica já ocorre em `executarUltimoEscopo`.
|
|
2187
|
-
// Estudar remoção.
|
|
2188
|
-
if (retornoOuErro instanceof excecoes_1.ErroEmTempoDeExecucao) {
|
|
2189
|
-
this.erros.push(retornoOuErro);
|
|
2190
|
-
}
|
|
2191
2216
|
if (retornoOuErro !== undefined) {
|
|
2192
2217
|
this.resultadoInterpretador.push(retornoOuErro);
|
|
2193
2218
|
}
|
|
2194
2219
|
}
|
|
2195
2220
|
catch (erro) {
|
|
2196
|
-
// TODO: Estudar remoção do `catch`.
|
|
2197
2221
|
throw new Error(`Não deveria estar caindo aqui. Há erros no interpretador que não estão tratados corretamente. Erro atual: ${JSON.stringify(erro)}.`);
|
|
2198
2222
|
}
|
|
2199
2223
|
finally {
|