@designliquido/delegua 0.65.0 → 0.67.0
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/dialetos/analisador-semantico-pitugues.d.ts +83 -0
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -0
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +748 -0
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -0
- package/analisador-semantico/dialetos/index.d.ts +2 -0
- package/analisador-semantico/dialetos/index.d.ts.map +1 -0
- package/analisador-semantico/dialetos/index.js +18 -0
- package/analisador-semantico/dialetos/index.js.map +1 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +3 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +54 -12
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/bin/package.json +1 -1
- package/estilizador/estilizador-delegua.d.ts +55 -0
- package/estilizador/estilizador-delegua.d.ts.map +1 -0
- package/estilizador/estilizador-delegua.js +228 -0
- package/estilizador/estilizador-delegua.js.map +1 -0
- package/estilizador/index.d.ts +3 -0
- package/estilizador/index.d.ts.map +1 -0
- package/estilizador/index.js +19 -0
- package/estilizador/index.js.map +1 -0
- package/estilizador/regras/convencao-nomenclatura.d.ts +79 -0
- package/estilizador/regras/convencao-nomenclatura.d.ts.map +1 -0
- package/estilizador/regras/convencao-nomenclatura.js +148 -0
- package/estilizador/regras/convencao-nomenclatura.js.map +1 -0
- package/estilizador/regras/fortalecer-tipos.d.ts +28 -0
- package/estilizador/regras/fortalecer-tipos.d.ts.map +1 -0
- package/estilizador/regras/fortalecer-tipos.js +84 -0
- package/estilizador/regras/fortalecer-tipos.js.map +1 -0
- package/estilizador/regras/index.d.ts +3 -0
- package/estilizador/regras/index.d.ts.map +1 -0
- package/estilizador/regras/index.js +19 -0
- package/estilizador/regras/index.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/interfaces/estilizador-comum-interface.d.ts +85 -0
- package/interfaces/estilizador-comum-interface.d.ts.map +1 -0
- package/interfaces/estilizador-comum-interface.js +3 -0
- package/interfaces/estilizador-comum-interface.js.map +1 -0
- package/interfaces/index.d.ts +1 -0
- package/interfaces/index.d.ts.map +1 -1
- package/interfaces/index.js +1 -0
- package/interfaces/index.js.map +1 -1
- package/interpretador/depuracao/avaliador-expressao-depuracao.d.ts.map +1 -1
- package/interpretador/depuracao/avaliador-expressao-depuracao.js +2 -8
- package/interpretador/depuracao/avaliador-expressao-depuracao.js.map +1 -1
- package/interpretador/depuracao/comum.d.ts +11 -1
- package/interpretador/depuracao/comum.d.ts.map +1 -1
- package/interpretador/depuracao/comum.js +223 -3
- package/interpretador/depuracao/comum.js.map +1 -1
- package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts +35 -3
- package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts.map +1 -1
- package/interpretador/depuracao/interpretador-base-com-depuracao.js +50 -3
- package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
- package/interpretador/depuracao/interpretador-com-depuracao.d.ts +12 -3
- package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
- package/interpretador/depuracao/interpretador-com-depuracao.js +27 -3
- package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +2 -0
- package/interpretador/interpretador-base.js.map +1 -1
- package/package.json +1 -1
- package/umd/delegua.js +916 -363
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/estilizador/regras/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2DAAyC"}
|
package/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './avaliador-sintatico';
|
|
|
2
2
|
export * from './construtos';
|
|
3
3
|
export * from './declaracoes';
|
|
4
4
|
export { PontoParada } from './depuracao';
|
|
5
|
+
export * from './estilizador';
|
|
5
6
|
export * from './formatadores';
|
|
6
7
|
export * from './geracao-identificadores';
|
|
7
8
|
export * from './interfaces';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../fontes/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../fontes/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
package/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./avaliador-sintatico"), exports);
|
|
18
18
|
__exportStar(require("./construtos"), exports);
|
|
19
19
|
__exportStar(require("./declaracoes"), exports);
|
|
20
|
+
__exportStar(require("./estilizador"), exports);
|
|
20
21
|
__exportStar(require("./formatadores"), exports);
|
|
21
22
|
__exportStar(require("./geracao-identificadores"), exports);
|
|
22
23
|
__exportStar(require("./interfaces"), exports);
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../fontes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+CAA6B;AAC7B,gDAA8B;AAE9B,iDAA+B;AAC/B,4DAA0C;AAC1C,+CAA6B;AAC7B,kDAAgC;AAChC,4CAA0B;AAC1B,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../fontes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+CAA6B;AAC7B,gDAA8B;AAE9B,gDAA8B;AAC9B,iDAA+B;AAC/B,4DAA0C;AAC1C,+CAA6B;AAC7B,kDAAgC;AAChC,4CAA0B;AAC1B,+CAA6B"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Declaracao } from '../declaracoes/declaracao';
|
|
2
|
+
import { Construto } from '../construtos';
|
|
3
|
+
/**
|
|
4
|
+
* Define uma regra de transformação/estilização de código.
|
|
5
|
+
*/
|
|
6
|
+
export interface RegraEstilizacao {
|
|
7
|
+
/**
|
|
8
|
+
* Nome da regra para identificação e logs.
|
|
9
|
+
*/
|
|
10
|
+
nome: string;
|
|
11
|
+
/**
|
|
12
|
+
* Descrição do que a regra faz.
|
|
13
|
+
*/
|
|
14
|
+
descricao: string;
|
|
15
|
+
/**
|
|
16
|
+
* Aplica a regra em uma declaração.
|
|
17
|
+
* @param declaracao A declaração a ser verificada/transformada.
|
|
18
|
+
* @returns A declaração (modificada ou não).
|
|
19
|
+
*/
|
|
20
|
+
aplicarEmDeclaracao?(declaracao: Declaracao): Declaracao;
|
|
21
|
+
/**
|
|
22
|
+
* Aplica a regra em um construto.
|
|
23
|
+
* @param construto O construto a ser verificado/transformado.
|
|
24
|
+
* @returns O construto (modificado ou não).
|
|
25
|
+
*/
|
|
26
|
+
aplicarEmConstruto?(construto: Construto): Construto;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Interface base para estilizadores de código.
|
|
30
|
+
* Um estilizador aplica transformações no AST para enforcar convenções e melhorar a qualidade do código.
|
|
31
|
+
*/
|
|
32
|
+
export interface EstilizadorComumInterface {
|
|
33
|
+
/**
|
|
34
|
+
* Regras de estilização ativas.
|
|
35
|
+
*/
|
|
36
|
+
regras: RegraEstilizacao[];
|
|
37
|
+
/**
|
|
38
|
+
* Adiciona uma regra de estilização.
|
|
39
|
+
* @param regra A regra a ser adicionada.
|
|
40
|
+
*/
|
|
41
|
+
adicionarRegra(regra: RegraEstilizacao): void;
|
|
42
|
+
/**
|
|
43
|
+
* Remove uma regra de estilização pelo nome.
|
|
44
|
+
* @param nomeRegra O nome da regra a ser removida.
|
|
45
|
+
*/
|
|
46
|
+
removerRegra(nomeRegra: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* Aplica as regras de estilização em um conjunto de declarações.
|
|
49
|
+
* @param declaracoes As declarações a serem estilizadas.
|
|
50
|
+
* @returns As declarações estilizadas (modificadas ou não).
|
|
51
|
+
*/
|
|
52
|
+
estilizar(declaracoes: Declaracao[]): Declaracao[];
|
|
53
|
+
/**
|
|
54
|
+
* Valida se o código atende todas as regras sem aplicar transformações.
|
|
55
|
+
* @param declaracoes As declarações a serem validadas.
|
|
56
|
+
* @returns Array de violações encontradas.
|
|
57
|
+
*/
|
|
58
|
+
validar(declaracoes: Declaracao[]): ViolacaoEstilo[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Representa uma violação de estilo encontrada.
|
|
62
|
+
*/
|
|
63
|
+
export interface ViolacaoEstilo {
|
|
64
|
+
/**
|
|
65
|
+
* Nome da regra violada.
|
|
66
|
+
*/
|
|
67
|
+
regra: string;
|
|
68
|
+
/**
|
|
69
|
+
* Mensagem descritiva da violação.
|
|
70
|
+
*/
|
|
71
|
+
mensagem: string;
|
|
72
|
+
/**
|
|
73
|
+
* Linha onde a violação ocorreu.
|
|
74
|
+
*/
|
|
75
|
+
linha: number;
|
|
76
|
+
/**
|
|
77
|
+
* Hash do arquivo onde a violação ocorreu.
|
|
78
|
+
*/
|
|
79
|
+
hashArquivo: number;
|
|
80
|
+
/**
|
|
81
|
+
* Severidade da violação.
|
|
82
|
+
*/
|
|
83
|
+
severidade: 'erro' | 'aviso' | 'informacao';
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=estilizador-comum-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estilizador-comum-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/estilizador-comum-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;IAEzD;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;CACxD;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE9C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAEnD;;;;OAIG;IACH,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;CAC/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estilizador-comum-interface.js","sourceRoot":"","sources":["../../fontes/interfaces/estilizador-comum-interface.ts"],"names":[],"mappings":""}
|
package/interfaces/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
package/interfaces/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./avaliador-sintatico-interface"), exports);
|
|
18
|
+
__exportStar(require("./estilizador-comum-interface"), exports);
|
|
18
19
|
__exportStar(require("./formatador-comum-interface"), exports);
|
|
19
20
|
__exportStar(require("./interpretador-com-depuracao-interface"), exports);
|
|
20
21
|
__exportStar(require("./interpretador-interface"), exports);
|
package/interfaces/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,+DAA6C;AAC7C,0EAAwD;AACxD,4DAA0C;AAC1C,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC;AAClC,wDAAsC;AACtC,yDAAuC;AACvC,8EAA4D;AAC5D,wEAAsD;AACtD,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,8DAA4C;AAC5C,gEAA8C;AAE9C,+CAA6B;AAC7B,0CAAwB;AACxB,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,gEAA8C;AAC9C,+DAA6C;AAC7C,0EAAwD;AACxD,4DAA0C;AAC1C,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC;AAClC,wDAAsC;AACtC,yDAAuC;AACvC,8EAA4D;AAC5D,wEAAsD;AACtD,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,8DAA4C;AAC5C,gEAA8C;AAE9C,+CAA6B;AAC7B,0CAAwB;AACxB,6CAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-expressao-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/avaliador-expressao-depuracao.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAgCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,2BAA2B;IACxB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,yBAAyB;IAE5D;;;;;;;;;;;;;;OAcG;IACG,gBAAgB,CAClB,cAAc,EAAE,MAAM,EACtB,yBAAyB,UAAQ,GAClC,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"avaliador-expressao-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/avaliador-expressao-depuracao.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAgCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,2BAA2B;IACxB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,yBAAyB;IAE5D;;;;;;;;;;;;;;OAcG;IACG,gBAAgB,CAClB,cAAc,EAAE,MAAM,EACtB,yBAAyB,UAAQ,GAClC,OAAO,CAAC,kBAAkB,CAAC;IAyD9B;;;;;;OAMG;IACH,yBAAyB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IAI7C;;;;;;;OAOG;IACG,gBAAgB,CAClB,cAAc,EAAE,MAAM,EACtB,yBAAyB,UAAQ,GAClC,OAAO,CAAC,MAAM,CAAC;CASrB"}
|
|
@@ -69,7 +69,6 @@ class AvaliadorExpressaoDepuracao {
|
|
|
69
69
|
*/
|
|
70
70
|
async avaliarExpressao(expressaoTexto, permitirEfeitosColaterais = false) {
|
|
71
71
|
try {
|
|
72
|
-
// 1. Tokenizar a expressão
|
|
73
72
|
const retornoLexador = this.interpretador.microLexador.mapear(expressaoTexto);
|
|
74
73
|
if (retornoLexador.simbolos.length === 0) {
|
|
75
74
|
return {
|
|
@@ -77,9 +76,7 @@ class AvaliadorExpressaoDepuracao {
|
|
|
77
76
|
erro: 'Expressão vazia ou inválida',
|
|
78
77
|
};
|
|
79
78
|
}
|
|
80
|
-
|
|
81
|
-
// Nota: O segundo argumento é o número da linha, usamos 0 para expressões de depuração
|
|
82
|
-
const retornoAvaliadorSintatico = this.interpretador.microAvaliadorSintatico.analisar(retornoLexador, 0);
|
|
79
|
+
const retornoAvaliadorSintatico = this.interpretador.microAvaliadorSintatico.analisar(retornoLexador, -1);
|
|
83
80
|
if (retornoAvaliadorSintatico.declaracoes.length === 0) {
|
|
84
81
|
return {
|
|
85
82
|
sucesso: false,
|
|
@@ -93,18 +90,15 @@ class AvaliadorExpressaoDepuracao {
|
|
|
93
90
|
};
|
|
94
91
|
}
|
|
95
92
|
const expressao = retornoAvaliadorSintatico.declaracoes[0];
|
|
96
|
-
//
|
|
93
|
+
// Validar se não tem efeitos colaterais (opcional)
|
|
97
94
|
if (!permitirEfeitosColaterais && temEfeitosColaterais(expressao)) {
|
|
98
95
|
return {
|
|
99
96
|
sucesso: false,
|
|
100
97
|
erro: 'Expressões com efeitos colaterais não são permitidas no painel de depuração',
|
|
101
98
|
};
|
|
102
99
|
}
|
|
103
|
-
// 4. Avaliar usando o interpretador
|
|
104
100
|
const resultadoBruto = await this.interpretador.avaliar(expressao);
|
|
105
|
-
// 5. Resolver valor (desempacotar estruturas internas)
|
|
106
101
|
const valorResolvido = this.interpretador.resolverValor(resultadoBruto);
|
|
107
|
-
// 6. Inferir tipo
|
|
108
102
|
const tipo = (0, inferenciador_1.inferirTipoVariavel)(valorResolvido);
|
|
109
103
|
return {
|
|
110
104
|
sucesso: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-expressao-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/avaliador-expressao-depuracao.ts"],"names":[],"mappings":";;;AAAA,iDAAuH;AAEvH,uDAA0D;AAU1D;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,SAAiC;IAC3D,iCAAiC;IACjC,IACI,SAAS,YAAY,qBAAQ;QAC7B,SAAS,YAAY,gCAAmB;QACxC,SAAS,YAAY,uCAA0B,EACjD,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAiC;IACjC,IAAI,SAAS,YAAY,iBAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kDAAkD;IAClD,6EAA6E;IAC7E,sCAAsC;IACtC,mBAAmB;IACnB,IAAI;IAEJ,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,2BAA2B;IACpC,YAAoB,aAAwC;QAAxC,kBAAa,GAAb,aAAa,CAA2B;IAAG,CAAC;IAEhE;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,gBAAgB,CAClB,cAAsB,EACtB,yBAAyB,GAAG,KAAK;QAEjC,IAAI,CAAC;YACD,
|
|
1
|
+
{"version":3,"file":"avaliador-expressao-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/avaliador-expressao-depuracao.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Chamada, Construto } from '../../construtos';
|
|
1
|
+
import { Binario, Chamada, Construto } from '../../construtos';
|
|
2
2
|
import { Declaracao, Enquanto, Escreva, Para, Retorna } from '../../declaracoes';
|
|
3
3
|
import { InterpretadorComDepuracaoInterface } from '../../interfaces';
|
|
4
4
|
import { RetornoQuebra } from '../../quebras';
|
|
@@ -31,6 +31,16 @@ export declare function visitarDeclaracaoPara(interpretador: InterpretadorComDep
|
|
|
31
31
|
* @returns O resultado da execução da visita.
|
|
32
32
|
*/
|
|
33
33
|
export declare function visitarExpressaoRetornar(interpretador: InterpretadorComDepuracaoInterface, visitarExpressaoRetornarAncestral: (declaracao: Retorna) => Promise<any>, declaracao: Retorna): Promise<RetornoQuebra>;
|
|
34
|
+
/**
|
|
35
|
+
* Sobrescreve a visita de expressão binária para permitir step-into em cada lado da expressão.
|
|
36
|
+
* Quando em modo de depuração com step-into, avalia o lado esquerdo primeiro e pausa.
|
|
37
|
+
* Na próxima execução, avalia o lado direito e completa a operação.
|
|
38
|
+
* @param interpretador O interpretador com depuração.
|
|
39
|
+
* @param visitarExpressaoBinariaAncestral Método ancestral para executar a lógica da operação.
|
|
40
|
+
* @param expressao A expressão binária.
|
|
41
|
+
* @returns O resultado da operação binária.
|
|
42
|
+
*/
|
|
43
|
+
export declare function visitarExpressaoBinaria(interpretador: InterpretadorComDepuracaoInterface, expressao: Binario): Promise<any>;
|
|
34
44
|
/**
|
|
35
45
|
* Se bloco de execução já foi instanciado antes (por exemplo, quando há um ponto de parada e a
|
|
36
46
|
* execução do código é retomada pelo depurador), retoma a execução do bloco do ponto em que havia parado.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAS,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAa,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACH,kCAAkC,EAErC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAyC,aAAa,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAAkB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgFlD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CACzB,aAAa,EAAE,kCAAkC,EACjD,SAAS,EAAE,SAAS,GAAG,UAAU,GAClC,OAAO,CAAC,GAAG,CAAC,CAad;AAED,wBAAsB,yBAAyB,CAC3C,aAAa,EAAE,kCAAkC,EACjD,kCAAkC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,EACxE,SAAS,EAAE,OAAO,GACnB,OAAO,CAAC,GAAG,CAAC,CAYd;AAED,wBAAsB,yBAAyB,CAC3C,aAAa,EAAE,kCAAkC,EACjD,UAAU,EAAE,QAAQ,GACrB,OAAO,CAAC,GAAG,CAAC,CAuCd;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC1C,aAAa,EAAE,kCAAkC,EACjD,UAAU,EAAE,OAAO,GACpB,OAAO,CAAC,GAAG,CAAC,CAmBd;AAED,wBAAsB,qBAAqB,CACvC,aAAa,EAAE,kCAAkC,EACjD,UAAU,EAAE,IAAI,GACjB,OAAO,CAAC,GAAG,CAAC,CAsEd;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC1C,aAAa,EAAE,kCAAkC,EACjD,iCAAiC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,EACxE,UAAU,EAAE,OAAO,GACpB,OAAO,CAAC,aAAa,CAAC,CAgCxB;AAsBD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CACzC,aAAa,EAAE,kCAAkC,EACjD,SAAS,EAAE,OAAO,GACnB,OAAO,CAAC,GAAG,CAAC,CAqGd;AAoID;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAC/B,aAAa,EAAE,kCAAkC,EACjD,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,CAAC,EAAE,aAAa,GAC9B,OAAO,CAAC,GAAG,CAAC,CA+Dd;AAuGD;;;;;;;;;;GAUG;AACH,wBAAsB,oCAAoC,CACtD,aAAa,EAAE,kCAAkC,EACjD,mBAAmB,UAAQ,EAC3B,4BAA4B,UAAQ,GACrC,OAAO,CAAC,GAAG,CAAC,CAiEd;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACjD,aAAa,EAAE,kCAAkC,EACjD,MAAM,SAAI,GACX,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAChC,aAAa,EAAE,kCAAkC,EACjD,MAAM,SAAI,gBAwBb;AAWD,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,kCAAkC,EACjD,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,CAAC,EAAE,aAAa,EAC7B,UAAU,GAAE,kBAA4B,QAY3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACtC,aAAa,EAAE,kCAAkC,EACjD,mBAAmB,UAAQ,EAC3B,4BAA4B,UAAQ,GACrC,OAAO,CAAC,GAAG,CAAC,CAqBd;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CACzB,aAAa,EAAE,kCAAkC,EACjD,IAAI,EAAE,MAAM,GACb,GAAG,CAaL"}
|
|
@@ -9,6 +9,7 @@ exports.visitarDeclaracaoEnquanto = visitarDeclaracaoEnquanto;
|
|
|
9
9
|
exports.visitarDeclaracaoEscreva = visitarDeclaracaoEscreva;
|
|
10
10
|
exports.visitarDeclaracaoPara = visitarDeclaracaoPara;
|
|
11
11
|
exports.visitarExpressaoRetornar = visitarExpressaoRetornar;
|
|
12
|
+
exports.visitarExpressaoBinaria = visitarExpressaoBinaria;
|
|
12
13
|
exports.executarBloco = executarBloco;
|
|
13
14
|
exports.executarUltimoEscopoComandoContinuar = executarUltimoEscopoComandoContinuar;
|
|
14
15
|
exports.instrucaoContinuarInterpretacao = instrucaoContinuarInterpretacao;
|
|
@@ -22,6 +23,8 @@ const declaracoes_1 = require("../../declaracoes");
|
|
|
22
23
|
const quebras_1 = require("../../quebras");
|
|
23
24
|
const inferenciador_1 = require("../../inferenciador");
|
|
24
25
|
const espaco_memoria_1 = require("../espaco-memoria");
|
|
26
|
+
const delegua_1 = __importDefault(require("../../tipos-de-simbolos/delegua"));
|
|
27
|
+
const delegua_2 = __importDefault(require("../../tipos-de-dados/delegua"));
|
|
25
28
|
async function avaliarArgumentosEscreva(interpretador, argumentos) {
|
|
26
29
|
let formatoTexto = '';
|
|
27
30
|
for (const argumento of argumentos) {
|
|
@@ -223,10 +226,19 @@ async function visitarDeclaracaoPara(interpretador, declaracao) {
|
|
|
223
226
|
* @returns O resultado da execução da visita.
|
|
224
227
|
*/
|
|
225
228
|
async function visitarExpressaoRetornar(interpretador, visitarExpressaoRetornarAncestral, declaracao) {
|
|
229
|
+
// Captura o escopo atual ANTES de avaliar a expressão,
|
|
230
|
+
// pois a avaliação pode abrir novos escopos
|
|
231
|
+
const escopoAtual = interpretador.pilhaEscoposExecucao.topoDaPilha();
|
|
226
232
|
const retorno = await visitarExpressaoRetornarAncestral(declaracao);
|
|
233
|
+
// Se o retorno é null ou RetornoQuebra com valor null (porque pausamos durante avaliação de expressão,
|
|
234
|
+
// como ao entrar em uma função em modo adentrarEscopo), não marcar como finalizado ainda
|
|
235
|
+
const valorRetorno = retorno && retorno.hasOwnProperty('valor') ? retorno.valor : retorno;
|
|
236
|
+
const novoEscopoFoiCriado = interpretador.pilhaEscoposExecucao.topoDaPilha() !== escopoAtual;
|
|
237
|
+
if (valorRetorno === null && interpretador.comando === 'adentrarEscopo' && novoEscopoFoiCriado) {
|
|
238
|
+
return retorno;
|
|
239
|
+
}
|
|
227
240
|
// O escopo atual é marcado como finalizado, para notificar a
|
|
228
241
|
// instrução de que deve ser descartado.
|
|
229
|
-
const escopoAtual = interpretador.pilhaEscoposExecucao.topoDaPilha();
|
|
230
242
|
escopoAtual.finalizado = true;
|
|
231
243
|
// Acha o primeiro escopo de função.
|
|
232
244
|
const escopoFuncao = interpretador.pilhaEscoposExecucao.obterEscopoPorTipo('funcao');
|
|
@@ -239,6 +251,190 @@ async function visitarExpressaoRetornar(interpretador, visitarExpressaoRetornarA
|
|
|
239
251
|
}
|
|
240
252
|
return retorno;
|
|
241
253
|
}
|
|
254
|
+
// Contador global para gerar IDs únicos de expressões binárias
|
|
255
|
+
let contadorBinarioDebug = 0;
|
|
256
|
+
/**
|
|
257
|
+
* Gera um identificador único para uma expressão binária.
|
|
258
|
+
* Usado para armazenar estado de avaliação parcial durante step-into.
|
|
259
|
+
* Cada expressão binária recebe um ID único na primeira vez que é encontrada,
|
|
260
|
+
* evitando colisões entre expressões na mesma linha.
|
|
261
|
+
* @param expressao A expressão binária.
|
|
262
|
+
* @returns Um identificador único para esta instância de expressão.
|
|
263
|
+
*/
|
|
264
|
+
function gerarIdExpressaoBinaria(expressao) {
|
|
265
|
+
// Se a expressão já tem um ID de depuração, reutiliza
|
|
266
|
+
if (!expressao._debugId) {
|
|
267
|
+
// Gera um ID único usando um contador incremental
|
|
268
|
+
expressao._debugId = `binario_${++contadorBinarioDebug}`;
|
|
269
|
+
}
|
|
270
|
+
return expressao._debugId;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Sobrescreve a visita de expressão binária para permitir step-into em cada lado da expressão.
|
|
274
|
+
* Quando em modo de depuração com step-into, avalia o lado esquerdo primeiro e pausa.
|
|
275
|
+
* Na próxima execução, avalia o lado direito e completa a operação.
|
|
276
|
+
* @param interpretador O interpretador com depuração.
|
|
277
|
+
* @param visitarExpressaoBinariaAncestral Método ancestral para executar a lógica da operação.
|
|
278
|
+
* @param expressao A expressão binária.
|
|
279
|
+
* @returns O resultado da operação binária.
|
|
280
|
+
*/
|
|
281
|
+
async function visitarExpressaoBinaria(interpretador, expressao) {
|
|
282
|
+
const escopoAtual = interpretador.pilhaEscoposExecucao.topoDaPilha();
|
|
283
|
+
const idExpressao = gerarIdExpressaoBinaria(expressao);
|
|
284
|
+
const chaveEsquerda = `${idExpressao}_esquerda`;
|
|
285
|
+
// Verifica se já avaliamos o lado esquerdo
|
|
286
|
+
if (escopoAtual.espacoMemoria.resolucoesChamadas.hasOwnProperty(chaveEsquerda)) {
|
|
287
|
+
// Lado esquerdo já foi avaliado, agora avaliar o lado direito
|
|
288
|
+
const esquerda = escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda];
|
|
289
|
+
// Avalia o lado direito
|
|
290
|
+
const direita = await interpretador.avaliar(expressao.direita);
|
|
291
|
+
// Limpa o cache do lado esquerdo pois já usamos
|
|
292
|
+
delete escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda];
|
|
293
|
+
// Resolve os valores
|
|
294
|
+
const valorEsquerdo = interpretador.resolverValor(esquerda);
|
|
295
|
+
const valorDireito = interpretador.resolverValor(direita);
|
|
296
|
+
const tipoEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('tipo'))
|
|
297
|
+
? esquerda.tipo
|
|
298
|
+
: (0, inferenciador_1.inferirTipoVariavel)(esquerda);
|
|
299
|
+
const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo'))
|
|
300
|
+
? direita.tipo
|
|
301
|
+
: (0, inferenciador_1.inferirTipoVariavel)(direita);
|
|
302
|
+
// Executa a operação binária usando a lógica ancestral
|
|
303
|
+
// Criamos um objeto temporário com os valores já avaliados para evitar re-avaliação
|
|
304
|
+
const expressaoTemp = Object.assign(Object.assign({}, expressao), { esquerda: { valor: valorEsquerdo, tipo: tipoEsquerdo }, direita: { valor: valorDireito, tipo: tipoDireito } });
|
|
305
|
+
// Não podemos chamar o ancestral diretamente porque ele vai tentar avaliar novamente
|
|
306
|
+
// Em vez disso, precisamos executar a operação diretamente
|
|
307
|
+
return await executarOperacaoBinaria(interpretador, expressao, esquerda, direita, valorEsquerdo, valorDireito, tipoEsquerdo, tipoDireito);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
// Rastreia o número de escopos antes de avaliar o lado esquerdo
|
|
311
|
+
const escoposAntes = interpretador.pilhaEscoposExecucao.elementos();
|
|
312
|
+
// Primeira avaliação - avaliar apenas o lado esquerdo
|
|
313
|
+
const esquerda = await interpretador.avaliar(expressao.esquerda);
|
|
314
|
+
// Armazena o resultado do lado esquerdo
|
|
315
|
+
escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda] = esquerda;
|
|
316
|
+
// Verifica se um novo escopo foi criado durante a avaliação do lado esquerdo
|
|
317
|
+
const escoposDepois = interpretador.pilhaEscoposExecucao.elementos();
|
|
318
|
+
const novoEscopoCriado = escoposDepois > escoposAntes;
|
|
319
|
+
// Se estamos em modo adentrarEscopo e um novo escopo foi aberto,
|
|
320
|
+
// a execução deve pausar aqui para permitir que o usuário adentre na função do lado esquerdo
|
|
321
|
+
// A próxima chamada a visitarExpressaoBinaria irá continuar do lado direito
|
|
322
|
+
if (interpretador.comando === 'adentrarEscopo' && novoEscopoCriado) {
|
|
323
|
+
// Retorna um valor temporário, a avaliação será completada na próxima execução
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
// Verifica se devemos continuar ou pausar
|
|
327
|
+
// Se pontoDeParadaAtivo foi ativado durante a avaliação do lado esquerdo, devemos retornar
|
|
328
|
+
if (interpretador.pontoDeParadaAtivo) {
|
|
329
|
+
// Retorna um valor temporário, a avaliação será completada na próxima execução
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
// Se não há pausa e não entramos em novo escopo, continuar com a avaliação do lado direito
|
|
333
|
+
const direita = await interpretador.avaliar(expressao.direita);
|
|
334
|
+
// Limpa o cache já que completamos a avaliação
|
|
335
|
+
delete escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda];
|
|
336
|
+
const valorEsquerdo = interpretador.resolverValor(esquerda);
|
|
337
|
+
const valorDireito = interpretador.resolverValor(direita);
|
|
338
|
+
const tipoEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('tipo'))
|
|
339
|
+
? esquerda.tipo
|
|
340
|
+
: (0, inferenciador_1.inferirTipoVariavel)(esquerda);
|
|
341
|
+
const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo'))
|
|
342
|
+
? direita.tipo
|
|
343
|
+
: (0, inferenciador_1.inferirTipoVariavel)(direita);
|
|
344
|
+
return await executarOperacaoBinaria(interpretador, expressao, esquerda, direita, valorEsquerdo, valorDireito, tipoEsquerdo, tipoDireito);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Executa a operação binária após ambos os lados terem sido avaliados.
|
|
349
|
+
* Contém a lógica de todas as operações binárias suportadas.
|
|
350
|
+
*/
|
|
351
|
+
async function executarOperacaoBinaria(interpretador, expressao, esquerda, direita, valorEsquerdo, valorDireito, tipoEsquerdo, tipoDireito) {
|
|
352
|
+
switch (expressao.operador.tipo) {
|
|
353
|
+
case delegua_1.default.EXPONENCIACAO:
|
|
354
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
355
|
+
return Math.pow(valorEsquerdo, valorDireito);
|
|
356
|
+
case delegua_1.default.MAIOR:
|
|
357
|
+
if (interpretador.tiposNumericos.includes(tipoEsquerdo) &&
|
|
358
|
+
interpretador.tiposNumericos.includes(tipoDireito)) {
|
|
359
|
+
return Number(valorEsquerdo) > Number(valorDireito);
|
|
360
|
+
}
|
|
361
|
+
return String(valorEsquerdo) > String(valorDireito);
|
|
362
|
+
case delegua_1.default.MAIOR_IGUAL:
|
|
363
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
364
|
+
return Number(valorEsquerdo) >= Number(valorDireito);
|
|
365
|
+
case delegua_1.default.MENOR:
|
|
366
|
+
if (interpretador.tiposNumericos.includes(tipoEsquerdo) &&
|
|
367
|
+
interpretador.tiposNumericos.includes(tipoDireito)) {
|
|
368
|
+
return Number(valorEsquerdo) < Number(valorDireito);
|
|
369
|
+
}
|
|
370
|
+
return String(valorEsquerdo) < String(valorDireito);
|
|
371
|
+
case delegua_1.default.MENOR_IGUAL:
|
|
372
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
373
|
+
return Number(valorEsquerdo) <= Number(valorDireito);
|
|
374
|
+
case delegua_1.default.SUBTRACAO:
|
|
375
|
+
case delegua_1.default.MENOS_IGUAL:
|
|
376
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
377
|
+
return Number(valorEsquerdo) - Number(valorDireito);
|
|
378
|
+
case delegua_1.default.ADICAO:
|
|
379
|
+
case delegua_1.default.MAIS_IGUAL:
|
|
380
|
+
if (Array.isArray(valorEsquerdo) && Array.isArray(valorDireito)) {
|
|
381
|
+
return valorEsquerdo.concat(valorDireito);
|
|
382
|
+
}
|
|
383
|
+
if (interpretador.tiposNumericos.includes(tipoEsquerdo) &&
|
|
384
|
+
interpretador.tiposNumericos.includes(tipoDireito)) {
|
|
385
|
+
return Number(valorEsquerdo) + Number(valorDireito);
|
|
386
|
+
}
|
|
387
|
+
if (tipoEsquerdo === 'qualquer' || tipoDireito === 'qualquer') {
|
|
388
|
+
return valorEsquerdo + valorDireito;
|
|
389
|
+
}
|
|
390
|
+
return interpretador.paraTexto(valorEsquerdo) + interpretador.paraTexto(valorDireito);
|
|
391
|
+
case delegua_1.default.DIVISAO:
|
|
392
|
+
case delegua_1.default.DIVISAO_IGUAL:
|
|
393
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
394
|
+
return Number(valorEsquerdo) / Number(valorDireito);
|
|
395
|
+
case delegua_1.default.DIVISAO_INTEIRA:
|
|
396
|
+
case delegua_1.default.DIVISAO_INTEIRA_IGUAL:
|
|
397
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
398
|
+
return Math.floor(Number(valorEsquerdo) / Number(valorDireito));
|
|
399
|
+
case delegua_1.default.MULTIPLICACAO:
|
|
400
|
+
case delegua_1.default.MULTIPLICACAO_IGUAL:
|
|
401
|
+
if (delegua_2.default && (tipoEsquerdo === delegua_2.default.TEXTO ||
|
|
402
|
+
tipoDireito === delegua_2.default.TEXTO)) {
|
|
403
|
+
if (tipoEsquerdo === delegua_2.default.TEXTO &&
|
|
404
|
+
tipoDireito === delegua_2.default.TEXTO) {
|
|
405
|
+
return Number(valorEsquerdo) * Number(valorDireito);
|
|
406
|
+
}
|
|
407
|
+
if (tipoEsquerdo === delegua_2.default.TEXTO) {
|
|
408
|
+
return valorEsquerdo.repeat(Number(valorDireito));
|
|
409
|
+
}
|
|
410
|
+
return valorDireito.repeat(Number(valorEsquerdo));
|
|
411
|
+
}
|
|
412
|
+
return Number(valorEsquerdo) * Number(valorDireito);
|
|
413
|
+
case delegua_1.default.MODULO:
|
|
414
|
+
case delegua_1.default.MODULO_IGUAL:
|
|
415
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
416
|
+
return Number(valorEsquerdo) % Number(valorDireito);
|
|
417
|
+
case delegua_1.default.BIT_AND:
|
|
418
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
419
|
+
return Number(valorEsquerdo) & Number(valorDireito);
|
|
420
|
+
case delegua_1.default.BIT_XOR:
|
|
421
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
422
|
+
return Number(valorEsquerdo) ^ Number(valorDireito);
|
|
423
|
+
case delegua_1.default.BIT_OR:
|
|
424
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
425
|
+
return Number(valorEsquerdo) | Number(valorDireito);
|
|
426
|
+
case delegua_1.default.MENOR_MENOR:
|
|
427
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
428
|
+
return Number(valorEsquerdo) << Number(valorDireito);
|
|
429
|
+
case delegua_1.default.MAIOR_MAIOR:
|
|
430
|
+
interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
|
|
431
|
+
return Number(valorEsquerdo) >> Number(valorDireito);
|
|
432
|
+
case delegua_1.default.DIFERENTE:
|
|
433
|
+
return !interpretador.eIgual(valorEsquerdo, valorDireito);
|
|
434
|
+
case delegua_1.default.IGUAL_IGUAL:
|
|
435
|
+
return interpretador.eIgual(valorEsquerdo, valorDireito);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
242
438
|
/**
|
|
243
439
|
* Se bloco de execução já foi instanciado antes (por exemplo, quando há um ponto de parada e a
|
|
244
440
|
* execução do código é retomada pelo depurador), retoma a execução do bloco do ponto em que havia parado.
|
|
@@ -327,13 +523,35 @@ function descartarTodosEscoposFinalizados(interpretador) {
|
|
|
327
523
|
}
|
|
328
524
|
async function executarUmPassoNoEscopo(interpretador) {
|
|
329
525
|
const ultimoEscopo = interpretador.pilhaEscoposExecucao.topoDaPilha();
|
|
526
|
+
// Rastreia quantos escopos existem antes da execução para detectar entrada em novo escopo
|
|
527
|
+
const escoposAntes = interpretador.pilhaEscoposExecucao.elementos();
|
|
330
528
|
let retornoExecucao;
|
|
331
529
|
if (interpretador.passos > 0) {
|
|
332
530
|
interpretador.passos--;
|
|
333
|
-
|
|
334
|
-
|
|
531
|
+
// Executa a declaração atual
|
|
532
|
+
const declaracaoAtual = ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual];
|
|
533
|
+
retornoExecucao = await interpretador.executar(declaracaoAtual);
|
|
534
|
+
// Verifica se entramos em um novo escopo durante a execução
|
|
535
|
+
const escoposDepois = interpretador.pilhaEscoposExecucao.elementos();
|
|
536
|
+
const entroEmNovoEscopo = escoposDepois > escoposAntes;
|
|
537
|
+
// Não incrementa se:
|
|
538
|
+
// - Há um ponto de parada ativo (de escopo interno)
|
|
539
|
+
// - Estamos em um laço de repetição (o laço gerencia a iteração)
|
|
540
|
+
// - Entramos em um novo escopo (precisamos executar o novo escopo antes de avançar)
|
|
541
|
+
if (!interpretador.pontoDeParadaAtivo && !ultimoEscopo.emLacoRepeticao && !entroEmNovoEscopo) {
|
|
335
542
|
ultimoEscopo.declaracaoAtual++;
|
|
336
543
|
}
|
|
544
|
+
// Após executar e avançar, verifica se há ponto de parada na PRÓXIMA declaração
|
|
545
|
+
if (!interpretador.pontoDeParadaAtivo &&
|
|
546
|
+
ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length) {
|
|
547
|
+
const proximaDeclaracao = ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual];
|
|
548
|
+
interpretador.linhaDeclaracaoAtual = proximaDeclaracao.linha;
|
|
549
|
+
interpretador.hashArquivoDeclaracaoAtual = proximaDeclaracao.hashArquivo;
|
|
550
|
+
interpretador.pontoDeParadaAtivo = verificarPontoParada(interpretador, proximaDeclaracao);
|
|
551
|
+
if (interpretador.pontoDeParadaAtivo) {
|
|
552
|
+
interpretador.avisoPontoParadaAtivado();
|
|
553
|
+
}
|
|
554
|
+
}
|
|
337
555
|
if (ultimoEscopo.declaracaoAtual >= ultimoEscopo.declaracoes.length ||
|
|
338
556
|
ultimoEscopo.finalizado) {
|
|
339
557
|
if (retornoExecucao instanceof quebras_1.RetornoQuebra) {
|
|
@@ -433,6 +651,8 @@ async function instrucaoContinuarInterpretacao(interpretador, escopo = 1) {
|
|
|
433
651
|
* @param escopo Indica o escopo a ser visitado. Usado para construir uma pilha de chamadas do lado JS.
|
|
434
652
|
*/
|
|
435
653
|
async function instrucaoPasso(interpretador, escopo = 1) {
|
|
654
|
+
// Limpa o ponto de parada para permitir a execução
|
|
655
|
+
interpretador.pontoDeParadaAtivo = false;
|
|
436
656
|
interpretador.passos = 1;
|
|
437
657
|
const escopoVisitado = interpretador.pilhaEscoposExecucao.naPosicao(escopo);
|
|
438
658
|
if (escopo < interpretador.escopoAtual) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
|