@designliquido/delegua 0.33.8 → 0.33.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/analisador-semantico/dialetos/index.d.ts +0 -1
  2. package/analisador-semantico/dialetos/index.d.ts.map +1 -1
  3. package/analisador-semantico/dialetos/index.js +0 -1
  4. package/analisador-semantico/dialetos/index.js.map +1 -1
  5. package/avaliador-sintatico/dialetos/index.d.ts +0 -2
  6. package/avaliador-sintatico/dialetos/index.d.ts.map +1 -1
  7. package/avaliador-sintatico/dialetos/index.js +0 -2
  8. package/avaliador-sintatico/dialetos/index.js.map +1 -1
  9. package/bin/package.json +1 -1
  10. package/formatadores/index.d.ts +0 -2
  11. package/formatadores/index.d.ts.map +1 -1
  12. package/formatadores/index.js +0 -2
  13. package/formatadores/index.js.map +1 -1
  14. package/interpretador/dialetos/index.d.ts +0 -2
  15. package/interpretador/dialetos/index.d.ts.map +1 -1
  16. package/interpretador/dialetos/index.js +0 -2
  17. package/interpretador/dialetos/index.js.map +1 -1
  18. package/lexador/dialetos/index.d.ts +0 -2
  19. package/lexador/dialetos/index.d.ts.map +1 -1
  20. package/lexador/dialetos/index.js +0 -2
  21. package/lexador/dialetos/index.js.map +1 -1
  22. package/lexador/dialetos/palavras-reservadas/index.d.ts +0 -2
  23. package/lexador/dialetos/palavras-reservadas/index.d.ts.map +1 -1
  24. package/lexador/dialetos/palavras-reservadas/index.js +1 -5
  25. package/lexador/dialetos/palavras-reservadas/index.js.map +1 -1
  26. package/package.json +1 -1
  27. package/tradutores/index.d.ts +0 -1
  28. package/tradutores/index.d.ts.map +1 -1
  29. package/tradutores/index.js +0 -1
  30. package/tradutores/index.js.map +1 -1
  31. package/tradutores/tradutor-assembly-x64.js +13 -13
  32. package/analisador-semantico/dialetos/analisador-semantico-visualg.d.ts +0 -38
  33. package/analisador-semantico/dialetos/analisador-semantico-visualg.d.ts.map +0 -1
  34. package/analisador-semantico/dialetos/analisador-semantico-visualg.js +0 -229
  35. package/analisador-semantico/dialetos/analisador-semantico-visualg.js.map +0 -1
  36. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts +0 -57
  37. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts.map +0 -1
  38. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +0 -581
  39. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +0 -1
  40. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.d.ts +0 -85
  41. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.d.ts.map +0 -1
  42. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js +0 -731
  43. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js.map +0 -1
  44. package/avaliador-sintatico/dialetos/visualg/index.d.ts +0 -2
  45. package/avaliador-sintatico/dialetos/visualg/index.d.ts.map +0 -1
  46. package/avaliador-sintatico/dialetos/visualg/index.js +0 -18
  47. package/avaliador-sintatico/dialetos/visualg/index.js.map +0 -1
  48. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.d.ts +0 -8
  49. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.d.ts.map +0 -1
  50. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.js +0 -3
  51. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.js.map +0 -1
  52. package/bibliotecas/dialetos/visualg/caracteres.d.ts +0 -4
  53. package/bibliotecas/dialetos/visualg/caracteres.d.ts.map +0 -1
  54. package/bibliotecas/dialetos/visualg/caracteres.js +0 -46
  55. package/bibliotecas/dialetos/visualg/caracteres.js.map +0 -1
  56. package/bibliotecas/dialetos/visualg/index.d.ts +0 -3
  57. package/bibliotecas/dialetos/visualg/index.d.ts.map +0 -1
  58. package/bibliotecas/dialetos/visualg/index.js +0 -19
  59. package/bibliotecas/dialetos/visualg/index.js.map +0 -1
  60. package/bibliotecas/dialetos/visualg/numerica.d.ts +0 -4
  61. package/bibliotecas/dialetos/visualg/numerica.d.ts.map +0 -1
  62. package/bibliotecas/dialetos/visualg/numerica.js +0 -74
  63. package/bibliotecas/dialetos/visualg/numerica.js.map +0 -1
  64. package/formatadores/formatador-portugol-studio.d.ts +0 -70
  65. package/formatadores/formatador-portugol-studio.d.ts.map +0 -1
  66. package/formatadores/formatador-portugol-studio.js +0 -326
  67. package/formatadores/formatador-portugol-studio.js.map +0 -1
  68. package/formatadores/formatador-visualg.d.ts +0 -73
  69. package/formatadores/formatador-visualg.d.ts.map +0 -1
  70. package/formatadores/formatador-visualg.js +0 -617
  71. package/formatadores/formatador-visualg.js.map +0 -1
  72. package/interpretador/dialetos/portugol-studio/comum.d.ts +0 -10
  73. package/interpretador/dialetos/portugol-studio/comum.d.ts.map +0 -1
  74. package/interpretador/dialetos/portugol-studio/comum.js +0 -25
  75. package/interpretador/dialetos/portugol-studio/comum.js.map +0 -1
  76. package/interpretador/dialetos/portugol-studio/index.d.ts +0 -3
  77. package/interpretador/dialetos/portugol-studio/index.d.ts.map +0 -1
  78. package/interpretador/dialetos/portugol-studio/index.js +0 -19
  79. package/interpretador/dialetos/portugol-studio/index.js.map +0 -1
  80. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio-com-depuracao.d.ts +0 -22
  81. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio-com-depuracao.d.ts.map +0 -1
  82. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio-com-depuracao.js +0 -43
  83. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio-com-depuracao.js.map +0 -1
  84. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts +0 -13
  85. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts.map +0 -1
  86. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js +0 -21
  87. package/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js.map +0 -1
  88. package/interpretador/dialetos/visualg/comum.d.ts +0 -21
  89. package/interpretador/dialetos/visualg/comum.d.ts.map +0 -1
  90. package/interpretador/dialetos/visualg/comum.js +0 -372
  91. package/interpretador/dialetos/visualg/comum.js.map +0 -1
  92. package/interpretador/dialetos/visualg/index.d.ts +0 -3
  93. package/interpretador/dialetos/visualg/index.d.ts.map +0 -1
  94. package/interpretador/dialetos/visualg/index.js +0 -19
  95. package/interpretador/dialetos/visualg/index.js.map +0 -1
  96. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts +0 -55
  97. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts.map +0 -1
  98. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +0 -211
  99. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +0 -1
  100. package/interpretador/dialetos/visualg/interpretador-visualg.d.ts +0 -58
  101. package/interpretador/dialetos/visualg/interpretador-visualg.d.ts.map +0 -1
  102. package/interpretador/dialetos/visualg/interpretador-visualg.js +0 -194
  103. package/interpretador/dialetos/visualg/interpretador-visualg.js.map +0 -1
  104. package/lexador/dialetos/lexador-portugol-studio.d.ts +0 -23
  105. package/lexador/dialetos/lexador-portugol-studio.d.ts.map +0 -1
  106. package/lexador/dialetos/lexador-portugol-studio.js +0 -286
  107. package/lexador/dialetos/lexador-portugol-studio.js.map +0 -1
  108. package/lexador/dialetos/lexador-visualg.d.ts +0 -20
  109. package/lexador/dialetos/lexador-visualg.d.ts.map +0 -1
  110. package/lexador/dialetos/lexador-visualg.js +0 -226
  111. package/lexador/dialetos/lexador-visualg.js.map +0 -1
  112. package/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +0 -29
  113. package/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts.map +0 -1
  114. package/lexador/dialetos/palavras-reservadas/portugol-studio.js +0 -36
  115. package/lexador/dialetos/palavras-reservadas/portugol-studio.js.map +0 -1
  116. package/lexador/dialetos/palavras-reservadas/visualg.d.ts +0 -75
  117. package/lexador/dialetos/palavras-reservadas/visualg.d.ts.map +0 -1
  118. package/lexador/dialetos/palavras-reservadas/visualg.js +0 -82
  119. package/lexador/dialetos/palavras-reservadas/visualg.js.map +0 -1
  120. package/tipos-de-simbolos/portugol-studio.d.ts +0 -60
  121. package/tipos-de-simbolos/portugol-studio.d.ts.map +0 -1
  122. package/tipos-de-simbolos/portugol-studio.js +0 -61
  123. package/tipos-de-simbolos/portugol-studio.js.map +0 -1
  124. package/tradutores/tradutor-reverso-visualg.d.ts +0 -54
  125. package/tradutores/tradutor-reverso-visualg.d.ts.map +0 -1
  126. package/tradutores/tradutor-reverso-visualg.js +0 -264
  127. package/tradutores/tradutor-reverso-visualg.js.map +0 -1
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./interpretador-visualg"), exports);
18
- __exportStar(require("./interpretador-visualg-com-depuracao"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/visualg/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wEAAsD"}
@@ -1,55 +0,0 @@
1
- import { AcessoElementoMatriz, AtribuicaoPorIndicesMatriz, Binario, FimPara, Logico } from '../../../construtos';
2
- import { EscrevaMesmaLinha, Escreva, Fazer, Leia, Const, Para, Aleatorio, CabecalhoPrograma } from '../../../declaracoes';
3
- import { InterpretadorComDepuracao } from '../../interpretador-com-depuracao';
4
- /**
5
- * Interpretador com depuração para o dialeto VisuAlg.
6
- */
7
- export declare class InterpretadorVisuAlgComDepuracao extends InterpretadorComDepuracao {
8
- mensagemPrompt: string;
9
- constructor(diretorioBase: string, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
10
- visitarDeclaracaoInicioAlgoritmo(declaracao: CabecalhoPrograma): Promise<any>;
11
- visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any>;
12
- visitarDeclaracaoConst(declaracao: Const): Promise<any>;
13
- visitarExpressaoAcessoElementoMatriz(expressao: AcessoElementoMatriz): Promise<any>;
14
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: AtribuicaoPorIndicesMatriz): Promise<any>;
15
- private avaliarArgumentosEscrevaVisuAlg;
16
- /**
17
- * No VisuAlg, o bloco executa se a condição for falsa.
18
- * Por isso a reimplementação aqui.
19
- * @param declaracao A declaração `Fazer`
20
- * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
21
- */
22
- visitarDeclaracaoFazer(declaracao: Fazer): Promise<any>;
23
- /**
24
- * Execução de uma escrita na saída padrão, sem quebras de linha.
25
- * Implementada para alguns dialetos, como VisuAlg.
26
- *
27
- * Como `readline.question` sobrescreve o que foi escrito antes, aqui
28
- * definimos `this.mensagemPrompt` para uso com `leia`.
29
- * No VisuAlg é muito comum usar `escreva()` seguido de `leia()` para
30
- * gerar um prompt na mesma linha.
31
- * @param declaracao A declaração.
32
- * @returns Sempre nulo, por convenção de visita.
33
- */
34
- visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any>;
35
- /**
36
- * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
37
- * alguma função para escrever numa página Web.
38
- * @param declaracao A declaração.
39
- * @returns Sempre nulo, por convenção de visita.
40
- */
41
- visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
42
- visitarExpressaoFimPara(declaracao: FimPara): Promise<any>;
43
- /**
44
- * Execução da leitura de valores da entrada configurada no
45
- * início da aplicação.
46
- * @param expressao Expressão do tipo Leia
47
- * @returns Promise com o resultado da leitura.
48
- */
49
- visitarExpressaoLeia(expressao: Leia): Promise<any>;
50
- visitarDeclaracaoPara(declaracao: Para): Promise<any>;
51
- visitarExpressaoBinaria(expressao: Binario | any): Promise<any>;
52
- visitarExpressaoLogica(expressao: Logico): Promise<any>;
53
- visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
54
- }
55
- //# sourceMappingURL=interpretador-visualg-com-depuracao.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpretador-visualg-com-depuracao.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,OAAO,EAEP,OAAO,EACP,MAAM,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,iBAAiB,EACjB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EAEJ,SAAS,EACT,iBAAiB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAG9E;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,yBAAyB;IAC3E,cAAc,EAAE,MAAM,CAAC;gBAEX,aAAa,EAAE,MAAM,EAAE,eAAe,GAAE,QAAe,EAAE,yBAAyB,GAAE,QAAe;IAQzG,gCAAgC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7E,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrF,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD,oCAAoC,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF,0CAA0C,CAAC,SAAS,EAAE,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;YAIvF,+BAA+B;IAa7C;;;;;OAKG;IACG,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB7D;;;;;;;;;;OAUG;IACG,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAWrF;;;;;OAKG;IACG,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAU3D,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBhE;;;;;OAKG;IACG,oBAAoB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAInD,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAgErD,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,0BAA0B,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;CAGxE"}
@@ -1,211 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.InterpretadorVisuAlgComDepuracao = void 0;
27
- const _ = __importStar(require("lodash"));
28
- const visualg_1 = require("../../../bibliotecas/dialetos/visualg");
29
- const quebras_1 = require("../../../quebras");
30
- const interpretador_com_depuracao_1 = require("../../interpretador-com-depuracao");
31
- const comum = __importStar(require("./comum"));
32
- /**
33
- * Interpretador com depuração para o dialeto VisuAlg.
34
- */
35
- class InterpretadorVisuAlgComDepuracao extends interpretador_com_depuracao_1.InterpretadorComDepuracao {
36
- constructor(diretorioBase, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
37
- super(diretorioBase, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
38
- this.mensagemPrompt = '> ';
39
- (0, visualg_1.registrarBibliotecaNumericaVisuAlg)(this, this.pilhaEscoposExecucao);
40
- (0, visualg_1.registrarBibliotecaCaracteresVisuAlg)(this, this.pilhaEscoposExecucao);
41
- }
42
- async visitarDeclaracaoInicioAlgoritmo(declaracao) {
43
- return comum.visitarDeclaracaoInicioAlgoritmo(this, declaracao);
44
- }
45
- async visitarDeclaracaoCabecalhoPrograma(declaracao) {
46
- return comum.visitarDeclaracaoCabecalhoPrograma(this, declaracao);
47
- }
48
- visitarDeclaracaoConst(declaracao) {
49
- throw new Error('Método não implementado.');
50
- }
51
- async visitarExpressaoAcessoElementoMatriz(expressao) {
52
- return await comum.visitarExpressaoAcessoElementoMatriz(this, expressao);
53
- }
54
- async visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
55
- return await comum.visitarExpressaoAtribuicaoPorIndicesMatriz(this, expressao);
56
- }
57
- async avaliarArgumentosEscrevaVisuAlg(argumentos) {
58
- let formatoTexto = '';
59
- for (const argumento of argumentos) {
60
- const resultadoAvaliacao = await this.avaliar(argumento);
61
- let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
62
- formatoTexto += `${this.paraTexto(valor)}`;
63
- }
64
- return formatoTexto;
65
- }
66
- /**
67
- * No VisuAlg, o bloco executa se a condição for falsa.
68
- * Por isso a reimplementação aqui.
69
- * @param declaracao A declaração `Fazer`
70
- * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
71
- */
72
- async visitarDeclaracaoFazer(declaracao) {
73
- let retornoExecucao;
74
- do {
75
- try {
76
- retornoExecucao = await this.executar(declaracao.caminhoFazer);
77
- if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
78
- retornoExecucao = null;
79
- }
80
- }
81
- catch (erro) {
82
- return Promise.reject(erro);
83
- }
84
- } while (!(retornoExecucao instanceof quebras_1.Quebra) &&
85
- !this.eVerdadeiro(await this.avaliar(declaracao.condicaoEnquanto)));
86
- }
87
- /**
88
- * Execução de uma escrita na saída padrão, sem quebras de linha.
89
- * Implementada para alguns dialetos, como VisuAlg.
90
- *
91
- * Como `readline.question` sobrescreve o que foi escrito antes, aqui
92
- * definimos `this.mensagemPrompt` para uso com `leia`.
93
- * No VisuAlg é muito comum usar `escreva()` seguido de `leia()` para
94
- * gerar um prompt na mesma linha.
95
- * @param declaracao A declaração.
96
- * @returns Sempre nulo, por convenção de visita.
97
- */
98
- async visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
99
- try {
100
- const formatoTexto = await this.avaliarArgumentosEscrevaVisuAlg(declaracao.argumentos);
101
- this.mensagemPrompt = formatoTexto;
102
- this.funcaoDeRetornoMesmaLinha(formatoTexto);
103
- return null;
104
- }
105
- catch (erro) {
106
- this.erros.push(erro);
107
- }
108
- }
109
- /**
110
- * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
111
- * alguma função para escrever numa página Web.
112
- * @param declaracao A declaração.
113
- * @returns Sempre nulo, por convenção de visita.
114
- */
115
- async visitarDeclaracaoEscreva(declaracao) {
116
- try {
117
- const formatoTexto = await this.avaliarArgumentosEscrevaVisuAlg(declaracao.argumentos);
118
- this.funcaoDeRetorno(formatoTexto);
119
- return null;
120
- }
121
- catch (erro) {
122
- this.erros.push(erro);
123
- }
124
- }
125
- async visitarExpressaoFimPara(declaracao) {
126
- if (!this.eVerdadeiro(await this.avaliar(declaracao.condicaoPara))) {
127
- const escopoPara = this.pilhaEscoposExecucao.pilha[this.pilhaEscoposExecucao.pilha.length - 2];
128
- if (this.comando === 'proximo') {
129
- escopoPara.declaracaoAtual++;
130
- }
131
- escopoPara.emLacoRepeticao = false;
132
- return new quebras_1.SustarQuebra();
133
- }
134
- if (declaracao.incremento === null || declaracao.incremento === undefined) {
135
- return;
136
- }
137
- await this.executar(declaracao.incremento);
138
- }
139
- /**
140
- * Execução da leitura de valores da entrada configurada no
141
- * início da aplicação.
142
- * @param expressao Expressão do tipo Leia
143
- * @returns Promise com o resultado da leitura.
144
- */
145
- async visitarExpressaoLeia(expressao) {
146
- return comum.visitarExpressaoLeia(this, expressao, this.mensagemPrompt);
147
- }
148
- async visitarDeclaracaoPara(declaracao) {
149
- if (!declaracao.inicializada && declaracao.inicializador !== null) {
150
- await this.avaliar(declaracao.inicializador);
151
- if (declaracao.incrementar !== null) {
152
- await comum.resolverIncrementoPara(this, declaracao);
153
- }
154
- }
155
- declaracao.inicializada = true;
156
- // Aqui precisamos clonar a declaração `Para` porque inserimos
157
- // ao final dela o incremento. Diferente de declarações `Para` de
158
- // outros dialetos, o incremento dessa declaração é implícito.
159
- const cloneDeclaracao = _.cloneDeep(declaracao);
160
- const corpoExecucao = cloneDeclaracao.corpo;
161
- // O incremento vai ao final do bloco de escopo.
162
- if (cloneDeclaracao.incrementar !== null) {
163
- await comum.resolverIncrementoPara(this, cloneDeclaracao);
164
- corpoExecucao.declaracoes.push(cloneDeclaracao.incrementar);
165
- }
166
- const escopoAtual = this.pilhaEscoposExecucao.topoDaPilha();
167
- switch (this.comando) {
168
- case 'proximo':
169
- if (cloneDeclaracao.condicao !== null &&
170
- this.eVerdadeiro(await this.avaliar(cloneDeclaracao.condicao))) {
171
- escopoAtual.emLacoRepeticao = true;
172
- const resultadoBloco = this.executarBloco(corpoExecucao.declaracoes);
173
- return resultadoBloco;
174
- }
175
- escopoAtual.emLacoRepeticao = false;
176
- return null;
177
- default:
178
- let retornoExecucao;
179
- while (!(retornoExecucao instanceof quebras_1.Quebra) && !this.pontoDeParadaAtivo) {
180
- if (cloneDeclaracao.condicao !== null &&
181
- !this.eVerdadeiro(await this.avaliar(cloneDeclaracao.condicao))) {
182
- break;
183
- }
184
- try {
185
- retornoExecucao = await this.executar(corpoExecucao);
186
- if (retornoExecucao instanceof quebras_1.SustarQuebra) {
187
- return null;
188
- }
189
- if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
190
- retornoExecucao = null;
191
- }
192
- }
193
- catch (erro) {
194
- return Promise.reject(erro);
195
- }
196
- }
197
- return retornoExecucao;
198
- }
199
- }
200
- async visitarExpressaoBinaria(expressao) {
201
- return comum.visitarExpressaoBinaria(this, expressao);
202
- }
203
- async visitarExpressaoLogica(expressao) {
204
- return comum.visitarExpressaoLogica(this, expressao);
205
- }
206
- async visitarDeclaracaoAleatorio(declaracao) {
207
- return comum.visitarDeclaracaoAleatorio(this, declaracao);
208
- }
209
- }
210
- exports.InterpretadorVisuAlgComDepuracao = InterpretadorVisuAlgComDepuracao;
211
- //# sourceMappingURL=interpretador-visualg-com-depuracao.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpretador-visualg-com-depuracao.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import { AcessoElementoMatriz, AtribuicaoPorIndicesMatriz, Binario, FimPara, Logico } from '../../../construtos';
2
- import { Aleatorio, CabecalhoPrograma, Const, Escreva, EscrevaMesmaLinha, Fazer, Leia, Para } from '../../../declaracoes';
3
- import { InterpretadorBase } from '../..';
4
- /**
5
- * O Interpretador VisuAlg possui algumas diferenças em relação ao
6
- * Interpretador Delégua quanto à escrita na saída.
7
- * Para N argumentos, Delégua inclui um espaço entre cada argumento.
8
- * Já VisuAlg imprime todos os argumentos concatenados.
9
- */
10
- export declare class InterpretadorVisuAlg extends InterpretadorBase {
11
- mensagemPrompt: string;
12
- constructor(diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
13
- visitarDeclaracaoInicioAlgoritmo(declaracao: CabecalhoPrograma): Promise<any>;
14
- visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any>;
15
- visitarDeclaracaoConst(declaracao: Const): Promise<any>;
16
- visitarExpressaoAcessoElementoMatriz(expressao: AcessoElementoMatriz): Promise<any>;
17
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: AtribuicaoPorIndicesMatriz): Promise<any>;
18
- private avaliarArgumentosEscrevaVisuAlg;
19
- /**
20
- * No VisuAlg, o bloco de condição executa se falso.
21
- * Por isso a reimplementação aqui.
22
- * @param declaracao A declaração `Fazer`
23
- * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
24
- */
25
- visitarDeclaracaoFazer(declaracao: Fazer): Promise<any>;
26
- /**
27
- * Execução de uma escrita na saída padrão, sem quebras de linha.
28
- * Implementada para alguns dialetos, como VisuAlg.
29
- *
30
- * Como `readline.question` sobrescreve o que foi escrito antes, aqui
31
- * definimos `this.mensagemPrompt` para uso com `leia`.
32
- * No VisuAlg é muito comum usar `escreva()` seguido de `leia()` para
33
- * gerar um prompt na mesma linha.
34
- * @param declaracao A declaração.
35
- * @returns Sempre nulo, por convenção de visita.
36
- */
37
- visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any>;
38
- /**
39
- * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
40
- * alguma função para escrever numa página Web.
41
- * @param declaracao A declaração.
42
- * @returns Sempre nulo, por convenção de visita.
43
- */
44
- visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
45
- visitarExpressaoFimPara(declaracao: FimPara): Promise<any>;
46
- /**
47
- * Execução da leitura de valores da entrada configurada no
48
- * início da aplicação.
49
- * @param expressao Expressão do tipo Leia
50
- * @returns Promise com o resultado da leitura.
51
- */
52
- visitarExpressaoLeia(expressao: Leia): Promise<any>;
53
- visitarDeclaracaoPara(declaracao: Para): Promise<any>;
54
- visitarExpressaoBinaria(expressao: Binario | any): Promise<any>;
55
- visitarExpressaoLogica(expressao: Logico): Promise<any>;
56
- visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
57
- }
58
- //# sourceMappingURL=interpretador-visualg.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpretador-visualg.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/visualg/interpretador-visualg.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,OAAO,EAEP,OAAO,EACP,MAAM,EAET,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,SAAS,EACT,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,IAAI,EACP,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM1C;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACvD,cAAc,EAAE,MAAM,CAAC;gBAGnB,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IASxC,gCAAgC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7E,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrF,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxC,oCAAoC,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF,0CAA0C,CAAC,SAAS,EAAE,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;YAIhG,+BAA+B;IAa7C;;;;;OAKG;IACG,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB7D;;;;;;;;;;OAUG;IACG,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAWrF;;;;;OAKG;IACG,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAU3D,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBhE;;;;;OAKG;IACG,oBAAoB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAInD,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAuCrD,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,0BAA0B,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;CAGxE"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.InterpretadorVisuAlg = void 0;
27
- const __1 = require("../..");
28
- const quebras_1 = require("../../../quebras");
29
- const numerica_1 = require("../../../bibliotecas/dialetos/visualg/numerica");
30
- const visualg_1 = require("../../../bibliotecas/dialetos/visualg");
31
- const comum = __importStar(require("./comum"));
32
- /**
33
- * O Interpretador VisuAlg possui algumas diferenças em relação ao
34
- * Interpretador Delégua quanto à escrita na saída.
35
- * Para N argumentos, Delégua inclui um espaço entre cada argumento.
36
- * Já VisuAlg imprime todos os argumentos concatenados.
37
- */
38
- class InterpretadorVisuAlg extends __1.InterpretadorBase {
39
- constructor(diretorioBase, performance = false, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
40
- super(diretorioBase, performance, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
41
- this.mensagemPrompt = '> ';
42
- (0, numerica_1.registrarBibliotecaNumericaVisuAlg)(this, this.pilhaEscoposExecucao);
43
- (0, visualg_1.registrarBibliotecaCaracteresVisuAlg)(this, this.pilhaEscoposExecucao);
44
- }
45
- async visitarDeclaracaoInicioAlgoritmo(declaracao) {
46
- return comum.visitarDeclaracaoInicioAlgoritmo(this, declaracao);
47
- }
48
- async visitarDeclaracaoCabecalhoPrograma(declaracao) {
49
- return comum.visitarDeclaracaoCabecalhoPrograma(this, declaracao);
50
- }
51
- visitarDeclaracaoConst(declaracao) {
52
- throw new Error('Método não implementado.');
53
- }
54
- async visitarExpressaoAcessoElementoMatriz(expressao) {
55
- return await comum.visitarExpressaoAcessoElementoMatriz(this, expressao);
56
- }
57
- async visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
58
- return await comum.visitarExpressaoAtribuicaoPorIndicesMatriz(this, expressao);
59
- }
60
- async avaliarArgumentosEscrevaVisuAlg(argumentos) {
61
- let formatoTexto = '';
62
- for (const argumento of argumentos) {
63
- const resultadoAvaliacao = await this.avaliar(argumento);
64
- let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
65
- formatoTexto += `${this.paraTexto(valor)}`;
66
- }
67
- return formatoTexto;
68
- }
69
- /**
70
- * No VisuAlg, o bloco de condição executa se falso.
71
- * Por isso a reimplementação aqui.
72
- * @param declaracao A declaração `Fazer`
73
- * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
74
- */
75
- async visitarDeclaracaoFazer(declaracao) {
76
- let retornoExecucao;
77
- do {
78
- try {
79
- retornoExecucao = await this.executar(declaracao.caminhoFazer);
80
- if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
81
- retornoExecucao = null;
82
- }
83
- }
84
- catch (erro) {
85
- return Promise.reject(erro);
86
- }
87
- } while (!(retornoExecucao instanceof quebras_1.Quebra) &&
88
- !this.eVerdadeiro(await this.avaliar(declaracao.condicaoEnquanto)));
89
- }
90
- /**
91
- * Execução de uma escrita na saída padrão, sem quebras de linha.
92
- * Implementada para alguns dialetos, como VisuAlg.
93
- *
94
- * Como `readline.question` sobrescreve o que foi escrito antes, aqui
95
- * definimos `this.mensagemPrompt` para uso com `leia`.
96
- * No VisuAlg é muito comum usar `escreva()` seguido de `leia()` para
97
- * gerar um prompt na mesma linha.
98
- * @param declaracao A declaração.
99
- * @returns Sempre nulo, por convenção de visita.
100
- */
101
- async visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
102
- try {
103
- const formatoTexto = await this.avaliarArgumentosEscrevaVisuAlg(declaracao.argumentos);
104
- this.mensagemPrompt = formatoTexto;
105
- this.funcaoDeRetornoMesmaLinha(formatoTexto);
106
- return null;
107
- }
108
- catch (erro) {
109
- this.erros.push(erro);
110
- }
111
- }
112
- /**
113
- * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
114
- * alguma função para escrever numa página Web.
115
- * @param declaracao A declaração.
116
- * @returns Sempre nulo, por convenção de visita.
117
- */
118
- async visitarDeclaracaoEscreva(declaracao) {
119
- try {
120
- const formatoTexto = await this.avaliarArgumentosEscrevaVisuAlg(declaracao.argumentos);
121
- this.funcaoDeRetorno(formatoTexto);
122
- return null;
123
- }
124
- catch (erro) {
125
- this.erros.push(erro);
126
- }
127
- }
128
- async visitarExpressaoFimPara(declaracao) {
129
- if (!this.eVerdadeiro(await this.avaliar(declaracao.condicaoPara))) {
130
- const escopoPara = this.pilhaEscoposExecucao.pilha[this.pilhaEscoposExecucao.pilha.length - 2];
131
- escopoPara.declaracaoAtual++;
132
- escopoPara.emLacoRepeticao = false;
133
- return new quebras_1.SustarQuebra();
134
- }
135
- if (declaracao.incremento === null || declaracao.incremento === undefined) {
136
- return;
137
- }
138
- await this.executar(declaracao.incremento);
139
- }
140
- /**
141
- * Execução da leitura de valores da entrada configurada no
142
- * início da aplicação.
143
- * @param expressao Expressão do tipo Leia
144
- * @returns Promise com o resultado da leitura.
145
- */
146
- async visitarExpressaoLeia(expressao) {
147
- return comum.visitarExpressaoLeia(this, expressao, this.mensagemPrompt);
148
- }
149
- async visitarDeclaracaoPara(declaracao) {
150
- if (declaracao.inicializador !== null) {
151
- await this.avaliar(declaracao.inicializador);
152
- await comum.resolverIncrementoPara(this, declaracao);
153
- }
154
- let retornoExecucao;
155
- let retornoIncremento;
156
- while (!(retornoExecucao instanceof quebras_1.Quebra) && !(retornoIncremento instanceof quebras_1.Quebra)) {
157
- if (declaracao.condicao !== null && !this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
158
- break;
159
- }
160
- try {
161
- retornoExecucao = await this.executar(declaracao.corpo);
162
- if (retornoExecucao instanceof quebras_1.SustarQuebra) {
163
- return null;
164
- }
165
- if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
166
- retornoExecucao = null;
167
- }
168
- }
169
- catch (erro) {
170
- this.erros.push({
171
- erroInterno: erro,
172
- linha: declaracao.linha,
173
- hashArquivo: declaracao.hashArquivo,
174
- });
175
- return Promise.reject(erro);
176
- }
177
- if (declaracao.incrementar !== null) {
178
- retornoIncremento = await this.avaliar(declaracao.incrementar);
179
- }
180
- }
181
- return retornoExecucao;
182
- }
183
- async visitarExpressaoBinaria(expressao) {
184
- return comum.visitarExpressaoBinaria(this, expressao);
185
- }
186
- async visitarExpressaoLogica(expressao) {
187
- return comum.visitarExpressaoLogica(this, expressao);
188
- }
189
- async visitarDeclaracaoAleatorio(declaracao) {
190
- return comum.visitarDeclaracaoAleatorio(this, declaracao);
191
- }
192
- }
193
- exports.InterpretadorVisuAlg = InterpretadorVisuAlg;
194
- //# sourceMappingURL=interpretador-visualg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpretador-visualg.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/visualg/interpretador-visualg.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { RetornoLexador } from '../../interfaces/retornos';
2
- import { LexadorBase } from '../lexador-base';
3
- import { SimboloInterface } from '../../interfaces';
4
- /**
5
- * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
6
- * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
7
- * Também é responsável por mapear as palavras reservadas da linguagem, que não podem ser usadas por outras
8
- * estruturas, tais como nomes de variáveis, funções, literais, classes e assim por diante.
9
- *
10
- * O Lexador de Portugol Studio possui algumas particularidades:
11
- * - Aspas simples são para caracteres individuais, e aspas duplas para cadeias de caracteres.
12
- * - Literais de vetores usam chaves, e não colchetes.
13
- */
14
- export declare class LexadorPortugolStudio extends LexadorBase {
15
- protected logicaComumCaracteres(delimitador: string): string;
16
- analisarCaracter(): void;
17
- analisarTexto(): void;
18
- analisarNumero(): void;
19
- identificarPalavraChave(): void;
20
- analisarToken(): void;
21
- mapear(codigo: string[], hashArquivo: number): RetornoLexador<SimboloInterface>;
22
- }
23
- //# sourceMappingURL=lexador-portugol-studio.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lexador-portugol-studio.d.ts","sourceRoot":"","sources":["../../../fontes/lexador/dialetos/lexador-portugol-studio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM;IAkBnD,gBAAgB;IAKhB,aAAa,IAAI,IAAI;IAKrB,cAAc,IAAI,IAAI;IAoBtB,uBAAuB,IAAI,IAAI;IAY/B,aAAa,IAAI,IAAI;IA2MrB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC;CAwBlF"}