@designliquido/delegua 0.9.2 → 0.9.4

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 (244) hide show
  1. package/bin/delegua +1 -1
  2. package/bin/delegua.cmd +1 -1
  3. package/bin/package.json +3 -3
  4. package/coverage/lcov-report/sorter.js +4 -4
  5. package/coverage/lcov-report/sorter.js.map +1 -1
  6. package/execucao.d.ts +1 -0
  7. package/execucao.js +29 -0
  8. package/execucao.js.map +1 -0
  9. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +1 -1
  10. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +108 -105
  11. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  12. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +1 -1
  13. package/fontes/avaliador-sintatico/avaliador-sintatico.js +244 -256
  14. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.d.ts +20 -0
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +68 -0
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -0
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +1 -1
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +227 -236
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +1 -1
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +247 -257
  23. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  24. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +3 -0
  25. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +192 -131
  26. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  27. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +6 -24
  28. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -1
  29. package/fontes/bibliotecas/biblioteca-global.js +206 -367
  30. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  31. package/fontes/bibliotecas/importar-biblioteca.js +28 -29
  32. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  33. package/fontes/bibliotecas/primitivas-texto.js +9 -22
  34. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  35. package/fontes/bibliotecas/primitivas-vetor.js +12 -14
  36. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  37. package/fontes/construtos/acesso-indice-variavel.js +6 -50
  38. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  39. package/fontes/construtos/acesso-metodo.js +6 -50
  40. package/fontes/construtos/acesso-metodo.js.map +1 -1
  41. package/fontes/construtos/agrupamento.js +6 -50
  42. package/fontes/construtos/agrupamento.js.map +1 -1
  43. package/fontes/construtos/atribuicao-sobrescrita.js +6 -50
  44. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  45. package/fontes/construtos/atribuir.js +6 -50
  46. package/fontes/construtos/atribuir.js.map +1 -1
  47. package/fontes/construtos/binario.js +6 -50
  48. package/fontes/construtos/binario.js.map +1 -1
  49. package/fontes/construtos/chamada.js +6 -50
  50. package/fontes/construtos/chamada.js.map +1 -1
  51. package/fontes/construtos/definir-valor.js +6 -50
  52. package/fontes/construtos/definir-valor.js.map +1 -1
  53. package/fontes/construtos/dicionario.js +6 -50
  54. package/fontes/construtos/dicionario.js.map +1 -1
  55. package/fontes/construtos/funcao.d.ts +2 -2
  56. package/fontes/construtos/funcao.js +6 -47
  57. package/fontes/construtos/funcao.js.map +1 -1
  58. package/fontes/construtos/isto.js +6 -47
  59. package/fontes/construtos/isto.js.map +1 -1
  60. package/fontes/construtos/literal.js +6 -47
  61. package/fontes/construtos/literal.js.map +1 -1
  62. package/fontes/construtos/logico.js +6 -50
  63. package/fontes/construtos/logico.js.map +1 -1
  64. package/fontes/construtos/super.js +6 -47
  65. package/fontes/construtos/super.js.map +1 -1
  66. package/fontes/construtos/unario.js +6 -50
  67. package/fontes/construtos/unario.js.map +1 -1
  68. package/fontes/construtos/variavel.js +6 -47
  69. package/fontes/construtos/variavel.js.map +1 -1
  70. package/fontes/construtos/vetor.js +6 -50
  71. package/fontes/construtos/vetor.js.map +1 -1
  72. package/fontes/declaracoes/bloco.js +9 -70
  73. package/fontes/declaracoes/bloco.js.map +1 -1
  74. package/fontes/declaracoes/classe.js +11 -72
  75. package/fontes/declaracoes/classe.js.map +1 -1
  76. package/fontes/declaracoes/continua.js +8 -65
  77. package/fontes/declaracoes/continua.js.map +1 -1
  78. package/fontes/declaracoes/declaracao.js +6 -47
  79. package/fontes/declaracoes/declaracao.js.map +1 -1
  80. package/fontes/declaracoes/enquanto.js +10 -71
  81. package/fontes/declaracoes/enquanto.js.map +1 -1
  82. package/fontes/declaracoes/escolha.js +11 -72
  83. package/fontes/declaracoes/escolha.js.map +1 -1
  84. package/fontes/declaracoes/escreva.js +9 -70
  85. package/fontes/declaracoes/escreva.js.map +1 -1
  86. package/fontes/declaracoes/expressao.js +9 -70
  87. package/fontes/declaracoes/expressao.js.map +1 -1
  88. package/fontes/declaracoes/fazer.js +10 -71
  89. package/fontes/declaracoes/fazer.js.map +1 -1
  90. package/fontes/declaracoes/funcao.js +10 -68
  91. package/fontes/declaracoes/funcao.js.map +1 -1
  92. package/fontes/declaracoes/importar.js +10 -71
  93. package/fontes/declaracoes/importar.js.map +1 -1
  94. package/fontes/declaracoes/leia.js +9 -70
  95. package/fontes/declaracoes/leia.js.map +1 -1
  96. package/fontes/declaracoes/para.js +12 -73
  97. package/fontes/declaracoes/para.js.map +1 -1
  98. package/fontes/declaracoes/retorna.js +10 -71
  99. package/fontes/declaracoes/retorna.js.map +1 -1
  100. package/fontes/declaracoes/se.js +12 -73
  101. package/fontes/declaracoes/se.js.map +1 -1
  102. package/fontes/declaracoes/sustar.js +8 -65
  103. package/fontes/declaracoes/sustar.js.map +1 -1
  104. package/fontes/declaracoes/tente.js +12 -73
  105. package/fontes/declaracoes/tente.js.map +1 -1
  106. package/fontes/declaracoes/var.js +10 -71
  107. package/fontes/declaracoes/var.js.map +1 -1
  108. package/fontes/delegua.js +125 -206
  109. package/fontes/delegua.js.map +1 -1
  110. package/fontes/depuracao/cyrb53.js +3 -4
  111. package/fontes/depuracao/cyrb53.js.map +1 -1
  112. package/fontes/depuracao/servidor-depuracao.js +125 -209
  113. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  114. package/fontes/espaco-variaveis.js +3 -4
  115. package/fontes/espaco-variaveis.js.map +1 -1
  116. package/fontes/estruturas/chamavel.js +6 -9
  117. package/fontes/estruturas/chamavel.js.map +1 -1
  118. package/fontes/estruturas/classe-padrao.js +17 -35
  119. package/fontes/estruturas/classe-padrao.js.map +1 -1
  120. package/fontes/estruturas/delegua-classe.d.ts +2 -2
  121. package/fontes/estruturas/delegua-classe.js +21 -39
  122. package/fontes/estruturas/delegua-classe.js.map +1 -1
  123. package/fontes/estruturas/delegua-funcao.js +48 -114
  124. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  125. package/fontes/estruturas/funcao-padrao.js +13 -75
  126. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  127. package/fontes/estruturas/metodo-primitiva.js +11 -39
  128. package/fontes/estruturas/metodo-primitiva.js.map +1 -1
  129. package/fontes/estruturas/modulo.js +6 -7
  130. package/fontes/estruturas/modulo.js.map +1 -1
  131. package/fontes/estruturas/objeto-delegua-classe.d.ts +3 -3
  132. package/fontes/estruturas/objeto-delegua-classe.js +12 -13
  133. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  134. package/fontes/estruturas/objeto-padrao.js +9 -11
  135. package/fontes/estruturas/objeto-padrao.js.map +1 -1
  136. package/fontes/excecoes/erro-em-tempo-de-execucao.js +8 -26
  137. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
  138. package/fontes/importador/importador.js +21 -22
  139. package/fontes/importador/importador.js.map +1 -1
  140. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +1 -1
  141. package/fontes/interfaces/parametro-interface.d.ts +1 -1
  142. package/fontes/interpretador/dialetos/egua-classico.js +592 -1019
  143. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  144. package/fontes/interpretador/inferenciador.js +1 -1
  145. package/fontes/interpretador/inferenciador.js.map +1 -1
  146. package/fontes/interpretador/interpretador-com-depuracao.js +186 -336
  147. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  148. package/fontes/interpretador/interpretador.js +706 -1175
  149. package/fontes/interpretador/interpretador.js.map +1 -1
  150. package/fontes/interpretador/pilha-escopos-execucao.js +52 -57
  151. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  152. package/fontes/lexador/dialetos/lexador-birl.d.ts +6 -19
  153. package/fontes/lexador/dialetos/lexador-birl.js +157 -49
  154. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  155. package/fontes/lexador/dialetos/lexador-egua-classico.js +43 -46
  156. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  157. package/fontes/lexador/dialetos/lexador-eguap.js +59 -63
  158. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  159. package/fontes/lexador/dialetos/lexador-visualg.js +45 -54
  160. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  161. package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +14 -1
  162. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +18 -1
  163. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
  164. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
  165. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js.map +1 -1
  166. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +24 -0
  167. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +25 -1
  168. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
  169. package/fontes/lexador/lexador-base-linha-unica.d.ts +1 -1
  170. package/fontes/lexador/lexador-base-linha-unica.js +28 -29
  171. package/fontes/lexador/lexador-base-linha-unica.js.map +1 -1
  172. package/fontes/lexador/lexador.js +53 -57
  173. package/fontes/lexador/lexador.js.map +1 -1
  174. package/fontes/lexador/palavras-reservadas.js +1 -1
  175. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  176. package/fontes/lexador/simbolo.js +5 -6
  177. package/fontes/lexador/simbolo.js.map +1 -1
  178. package/fontes/quebras/index.js +11 -42
  179. package/fontes/quebras/index.js.map +1 -1
  180. package/fontes/resolvedor/dialetos/egua-classico.js +143 -144
  181. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  182. package/fontes/resolvedor/erro-resolvedor.js +6 -24
  183. package/fontes/resolvedor/erro-resolvedor.js.map +1 -1
  184. package/fontes/resolvedor/pilha-escopos.js +11 -12
  185. package/fontes/resolvedor/pilha-escopos.js.map +1 -1
  186. package/fontes/tipos-de-simbolos/birl.d.ts +7 -0
  187. package/fontes/tipos-de-simbolos/birl.js +20 -12
  188. package/fontes/tipos-de-simbolos/birl.js.map +1 -1
  189. package/fontes/tipos-de-simbolos/comum.d.ts +2 -0
  190. package/fontes/tipos-de-simbolos/comum.js +2 -0
  191. package/fontes/tipos-de-simbolos/comum.js.map +1 -1
  192. package/fontes/tipos-de-simbolos/visualg.d.ts +9 -0
  193. package/fontes/tipos-de-simbolos/visualg.js +9 -0
  194. package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
  195. package/index.d.ts +5 -1
  196. package/index.js +18 -25
  197. package/index.js.map +1 -1
  198. package/jest.config.js +9 -47
  199. package/jest.config.js.map +1 -1
  200. package/package.json +3 -3
  201. package/testes/__mocks__/estatistica.js +1 -1
  202. package/testes/__mocks__/estatistica.js.map +1 -1
  203. package/testes/__mocks__/fisica.js +1 -1
  204. package/testes/__mocks__/fisica.js.map +1 -1
  205. package/testes/__mocks__/matematica.js +1 -1
  206. package/testes/__mocks__/matematica.js.map +1 -1
  207. package/testes/avaliador-sintatico.test.js +27 -27
  208. package/testes/avaliador-sintatico.test.js.map +1 -1
  209. package/testes/biblioteca-global.test.js +197 -440
  210. package/testes/biblioteca-global.test.js.map +1 -1
  211. package/testes/birl/avaliador-sintatico.test.d.ts +1 -0
  212. package/testes/birl/avaliador-sintatico.test.js +18 -0
  213. package/testes/birl/avaliador-sintatico.test.js.map +1 -0
  214. package/testes/birl/lexador.test.d.ts +1 -0
  215. package/testes/birl/lexador.test.js +31 -0
  216. package/testes/birl/lexador.test.js.map +1 -0
  217. package/testes/delegua.test.js +7 -7
  218. package/testes/delegua.test.js.map +1 -1
  219. package/testes/egua-classico/avaliador-sintatico.test.js +14 -14
  220. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  221. package/testes/egua-classico/delegua.test.js +5 -5
  222. package/testes/egua-classico/delegua.test.js.map +1 -1
  223. package/testes/egua-classico/interpretador.test.js +180 -396
  224. package/testes/egua-classico/interpretador.test.js.map +1 -1
  225. package/testes/egua-classico/lexador.test.js +23 -23
  226. package/testes/egua-classico/lexador.test.js.map +1 -1
  227. package/testes/egua-classico/resolvedor.test.js +12 -12
  228. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  229. package/testes/eguap/avaliador-sintatico.test.js +11 -11
  230. package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
  231. package/testes/eguap/interpretador.test.js +189 -405
  232. package/testes/eguap/interpretador.test.js.map +1 -1
  233. package/testes/eguap/lexador.test.js +18 -18
  234. package/testes/eguap/lexador.test.js.map +1 -1
  235. package/testes/interpretador.test.js +431 -908
  236. package/testes/interpretador.test.js.map +1 -1
  237. package/testes/lexador.test.js +42 -42
  238. package/testes/lexador.test.js.map +1 -1
  239. package/testes/visualg/avaliador-sintatico.test.js +23 -23
  240. package/testes/visualg/avaliador-sintatico.test.js.map +1 -1
  241. package/testes/visualg/interpretador.test.js +16 -61
  242. package/testes/visualg/interpretador.test.js.map +1 -1
  243. package/testes/visualg/lexador.test.js +15 -15
  244. package/testes/visualg/lexador.test.js.map +1 -1
@@ -1,46 +1,10 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
- var excecoes_1 = require("../excecoes");
40
- var objeto_delegua_classe_1 = require("../estruturas/objeto-delegua-classe");
41
- var funcao_padrao_1 = require("../estruturas/funcao-padrao");
42
- var delegua_classe_1 = require("../estruturas/delegua-classe");
43
- var estruturas_1 = require("../estruturas");
3
+ const excecoes_1 = require("../excecoes");
4
+ const objeto_delegua_classe_1 = require("../estruturas/objeto-delegua-classe");
5
+ const funcao_padrao_1 = require("../estruturas/funcao-padrao");
6
+ const delegua_classe_1 = require("../estruturas/delegua-classe");
7
+ const estruturas_1 = require("../estruturas");
44
8
  function default_1(interpretador, pilhaEscoposExecucao) {
45
9
  // Retorna um número aleatório entre 0 e 1.
46
10
  pilhaEscoposExecucao.definirVariavel('aleatorio', new funcao_padrao_1.FuncaoPadrao(1, function () {
@@ -48,343 +12,218 @@ function default_1(interpretador, pilhaEscoposExecucao) {
48
12
  }));
49
13
  // Retorna um número aleatório de acordo com o parâmetro passado.
50
14
  // Mínimo(inclusivo) - Máximo(exclusivo)
51
- pilhaEscoposExecucao.definirVariavel('aleatorioEntre', new funcao_padrao_1.FuncaoPadrao(1, function (minimo, maximo) {
52
- return __awaiter(this, void 0, void 0, function () {
53
- var valorMinimo, valorMaximo;
54
- return __generator(this, function (_a) {
55
- valorMinimo = minimo.hasOwnProperty('valor')
56
- ? minimo.valor
57
- : minimo;
58
- valorMaximo = maximo.hasOwnProperty('valor')
59
- ? maximo.valor
60
- : maximo;
61
- if (typeof valorMinimo !== 'number' ||
62
- typeof valorMaximo !== 'number') {
63
- throw new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Os dois parâmetros devem ser do tipo número.');
64
- }
65
- return [2 /*return*/, Promise.resolve(Math.floor(Math.random() * (valorMaximo - valorMinimo)) +
66
- valorMinimo)];
67
- });
68
- });
15
+ pilhaEscoposExecucao.definirVariavel('aleatorioEntre', new funcao_padrao_1.FuncaoPadrao(1, async function (minimo, maximo) {
16
+ const valorMinimo = minimo.hasOwnProperty('valor')
17
+ ? minimo.valor
18
+ : minimo;
19
+ const valorMaximo = maximo.hasOwnProperty('valor')
20
+ ? maximo.valor
21
+ : maximo;
22
+ if (typeof valorMinimo !== 'number' ||
23
+ typeof valorMaximo !== 'number') {
24
+ throw new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Os dois parâmetros devem ser do tipo número.');
25
+ }
26
+ return Promise.resolve(Math.floor(Math.random() * (valorMaximo - valorMinimo)) +
27
+ valorMinimo);
69
28
  }));
70
- pilhaEscoposExecucao.definirVariavel('inteiro', new funcao_padrao_1.FuncaoPadrao(1, function (numero) {
71
- return __awaiter(this, void 0, void 0, function () {
72
- var valor;
73
- return __generator(this, function (_a) {
74
- if (numero === null || numero === undefined)
75
- return [2 /*return*/, Promise.resolve(0)];
76
- valor = numero.hasOwnProperty('valor')
77
- ? numero.valor
78
- : numero;
79
- if (isNaN(valor)) {
80
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor não parece ser um número. Somente números ou textos com números podem ser convertidos para inteiro.'))];
81
- }
82
- if (!/^(-)?\d+(\.\d+)?$/.test(valor)) {
83
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor não parece estar estruturado como um número (texto vazio, falso ou não definido). Somente números ou textos com números podem ser convertidos para inteiro.'))];
84
- }
85
- return [2 /*return*/, Promise.resolve(parseInt(valor))];
86
- });
87
- });
29
+ pilhaEscoposExecucao.definirVariavel('inteiro', new funcao_padrao_1.FuncaoPadrao(1, async function (numero) {
30
+ if (numero === null || numero === undefined)
31
+ return Promise.resolve(0);
32
+ const valor = numero.hasOwnProperty('valor')
33
+ ? numero.valor
34
+ : numero;
35
+ if (isNaN(valor)) {
36
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor não parece ser um número. Somente números ou textos com números podem ser convertidos para inteiro.'));
37
+ }
38
+ if (!/^(-)?\d+(\.\d+)?$/.test(valor)) {
39
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor não parece estar estruturado como um número (texto vazio, falso ou não definido). Somente números ou textos com números podem ser convertidos para inteiro.'));
40
+ }
41
+ return Promise.resolve(parseInt(valor));
88
42
  }));
89
- pilhaEscoposExecucao.definirVariavel('mapear', new funcao_padrao_1.FuncaoPadrao(1, function (vetor, funcaoMapeamento) {
90
- return __awaiter(this, void 0, void 0, function () {
91
- var valorVetor, valorFuncaoMapeamento, resultados, indice, _a, _b;
92
- return __generator(this, function (_c) {
93
- switch (_c.label) {
94
- case 0:
95
- if (vetor === null || vetor === undefined)
96
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função mapear() não pode ser nulo.'))];
97
- valorVetor = vetor.hasOwnProperty('valor')
98
- ? vetor.valor
99
- : vetor;
100
- valorFuncaoMapeamento = funcaoMapeamento.hasOwnProperty('valor')
101
- ? funcaoMapeamento.valor
102
- : funcaoMapeamento;
103
- if (!Array.isArray(valorVetor)) {
104
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função mapear() deve ser um vetor.'))];
105
- }
106
- if (valorFuncaoMapeamento.constructor.name !== 'DeleguaFuncao') {
107
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função mapear() deve ser uma função.'))];
108
- }
109
- resultados = [];
110
- indice = 0;
111
- _c.label = 1;
112
- case 1:
113
- if (!(indice < valorVetor.length)) return [3 /*break*/, 4];
114
- _b = (_a = resultados).push;
115
- return [4 /*yield*/, valorFuncaoMapeamento.chamar(interpretador, [
116
- valorVetor[indice],
117
- ])];
118
- case 2:
119
- _b.apply(_a, [_c.sent()]);
120
- _c.label = 3;
121
- case 3:
122
- ++indice;
123
- return [3 /*break*/, 1];
124
- case 4: return [2 /*return*/, resultados];
125
- }
126
- });
127
- });
43
+ pilhaEscoposExecucao.definirVariavel('mapear', new funcao_padrao_1.FuncaoPadrao(1, async function (vetor, funcaoMapeamento) {
44
+ if (vetor === null || vetor === undefined)
45
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função mapear() não pode ser nulo.'));
46
+ const valorVetor = vetor.hasOwnProperty('valor')
47
+ ? vetor.valor
48
+ : vetor;
49
+ const valorFuncaoMapeamento = funcaoMapeamento.hasOwnProperty('valor')
50
+ ? funcaoMapeamento.valor
51
+ : funcaoMapeamento;
52
+ if (!Array.isArray(valorVetor)) {
53
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função mapear() deve ser um vetor.'));
54
+ }
55
+ if (valorFuncaoMapeamento.constructor.name !== 'DeleguaFuncao') {
56
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função mapear() deve ser uma função.'));
57
+ }
58
+ const resultados = [];
59
+ for (let indice = 0; indice < valorVetor.length; ++indice) {
60
+ resultados.push(await valorFuncaoMapeamento.chamar(interpretador, [
61
+ valorVetor[indice],
62
+ ]));
63
+ }
64
+ return resultados;
128
65
  }));
129
- pilhaEscoposExecucao.definirVariavel('todosEmCondicao', new funcao_padrao_1.FuncaoPadrao(1, function (vetor, funcaoCondicional) {
130
- return __awaiter(this, void 0, void 0, function () {
131
- var valorVetor, valorFuncaoCondicional, indice;
132
- return __generator(this, function (_a) {
133
- switch (_a.label) {
134
- case 0:
135
- if (vetor === null || vetor === undefined)
136
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função todosEmCondicao() não pode ser nulo.'))];
137
- valorVetor = vetor.hasOwnProperty('valor')
138
- ? vetor.valor
139
- : vetor;
140
- valorFuncaoCondicional = funcaoCondicional.hasOwnProperty('valor')
141
- ? funcaoCondicional.valor
142
- : funcaoCondicional;
143
- if (!Array.isArray(valorVetor)) {
144
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função todosEmCondicao() deve ser um vetor.'))];
145
- }
146
- if (valorFuncaoCondicional.constructor.name !== 'DeleguaFuncao') {
147
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função todosEmCondicao() deve ser uma função.'))];
148
- }
149
- indice = 0;
150
- _a.label = 1;
151
- case 1:
152
- if (!(indice < valorVetor.length)) return [3 /*break*/, 4];
153
- return [4 /*yield*/, valorFuncaoCondicional.chamar(interpretador, [
154
- valorVetor[indice],
155
- ])];
156
- case 2:
157
- if (!(_a.sent()))
158
- return [2 /*return*/, false];
159
- _a.label = 3;
160
- case 3:
161
- ++indice;
162
- return [3 /*break*/, 1];
163
- case 4: return [2 /*return*/, true];
164
- }
165
- });
166
- });
66
+ pilhaEscoposExecucao.definirVariavel('todosEmCondicao', new funcao_padrao_1.FuncaoPadrao(1, async function (vetor, funcaoCondicional) {
67
+ if (vetor === null || vetor === undefined)
68
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função todosEmCondicao() não pode ser nulo.'));
69
+ const valorVetor = vetor.hasOwnProperty('valor')
70
+ ? vetor.valor
71
+ : vetor;
72
+ const valorFuncaoCondicional = funcaoCondicional.hasOwnProperty('valor')
73
+ ? funcaoCondicional.valor
74
+ : funcaoCondicional;
75
+ if (!Array.isArray(valorVetor)) {
76
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função todosEmCondicao() deve ser um vetor.'));
77
+ }
78
+ if (valorFuncaoCondicional.constructor.name !== 'DeleguaFuncao') {
79
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função todosEmCondicao() deve ser uma função.'));
80
+ }
81
+ for (let indice = 0; indice < valorVetor.length; ++indice) {
82
+ if (!await valorFuncaoCondicional.chamar(interpretador, [
83
+ valorVetor[indice],
84
+ ]))
85
+ return false;
86
+ }
87
+ return true;
167
88
  }));
168
- pilhaEscoposExecucao.definirVariavel('filtrarPor', new funcao_padrao_1.FuncaoPadrao(1, function (vetor, funcaoFiltragem) {
169
- return __awaiter(this, void 0, void 0, function () {
170
- var valorVetor, valorFuncaoFiltragem, resultados, indice, _a, _b, _c;
171
- return __generator(this, function (_d) {
172
- switch (_d.label) {
173
- case 0:
174
- if (vetor === null || vetor === undefined)
175
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função filtrarPor() não pode ser nulo.'))];
176
- valorVetor = vetor.hasOwnProperty('valor')
177
- ? vetor.valor
178
- : vetor;
179
- valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
180
- ? funcaoFiltragem.valor
181
- : funcaoFiltragem;
182
- if (!Array.isArray(valorVetor)) {
183
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função filtrarPor() deve ser um vetor.'))];
184
- }
185
- if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
186
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função filtrarPor() deve ser uma função.'))];
187
- }
188
- resultados = [];
189
- indice = 0;
190
- _d.label = 1;
191
- case 1:
192
- if (!(indice < valorVetor.length)) return [3 /*break*/, 6];
193
- return [4 /*yield*/, valorFuncaoFiltragem.chamar(interpretador, [
194
- valorVetor[indice],
195
- ])];
196
- case 2:
197
- _a = (_d.sent());
198
- if (!_a) return [3 /*break*/, 4];
199
- _c = (_b = resultados).push;
200
- return [4 /*yield*/, valorFuncaoFiltragem.chamar(interpretador, [
201
- valorVetor[indice],
202
- ])];
203
- case 3:
204
- _a = _c.apply(_b, [_d.sent()]);
205
- _d.label = 4;
206
- case 4:
207
- _a;
208
- _d.label = 5;
209
- case 5:
210
- ++indice;
211
- return [3 /*break*/, 1];
212
- case 6: return [2 /*return*/, resultados];
213
- }
214
- });
215
- });
89
+ pilhaEscoposExecucao.definirVariavel('filtrarPor', new funcao_padrao_1.FuncaoPadrao(1, async function (vetor, funcaoFiltragem) {
90
+ if (vetor === null || vetor === undefined)
91
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função filtrarPor() não pode ser nulo.'));
92
+ const valorVetor = vetor.hasOwnProperty('valor')
93
+ ? vetor.valor
94
+ : vetor;
95
+ const valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
96
+ ? funcaoFiltragem.valor
97
+ : funcaoFiltragem;
98
+ if (!Array.isArray(valorVetor)) {
99
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função filtrarPor() deve ser um vetor.'));
100
+ }
101
+ if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
102
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função filtrarPor() deve ser uma função.'));
103
+ }
104
+ const resultados = [];
105
+ for (let indice = 0; indice < valorVetor.length; ++indice) {
106
+ await valorFuncaoFiltragem.chamar(interpretador, [
107
+ valorVetor[indice],
108
+ ]) &&
109
+ resultados.push(await valorFuncaoFiltragem.chamar(interpretador, [
110
+ valorVetor[indice],
111
+ ]));
112
+ }
113
+ return resultados;
216
114
  }));
217
- pilhaEscoposExecucao.definirVariavel('primeiroEmCondicao', new funcao_padrao_1.FuncaoPadrao(1, function (vetor, funcaoFiltragem) {
218
- return __awaiter(this, void 0, void 0, function () {
219
- var valorVetor, valorFuncaoFiltragem, resultados, indice, _a, _b, _c;
220
- return __generator(this, function (_d) {
221
- switch (_d.label) {
222
- case 0:
223
- if (vetor === null || vetor === undefined)
224
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função primeiroEmCondicao() não pode ser nulo.'))];
225
- valorVetor = vetor.hasOwnProperty('valor')
226
- ? vetor.valor
227
- : vetor;
228
- valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
229
- ? funcaoFiltragem.valor
230
- : funcaoFiltragem;
231
- if (!Array.isArray(valorVetor)) {
232
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função primeiroEmCondicao() deve ser um vetor.'))];
233
- }
234
- if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
235
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função primeiroEmCondicao() deve ser uma função.'))];
236
- }
237
- resultados = [];
238
- indice = 0;
239
- _d.label = 1;
240
- case 1:
241
- if (!(indice < valorVetor.length)) return [3 /*break*/, 6];
242
- return [4 /*yield*/, valorFuncaoFiltragem.chamar(interpretador, [
243
- valorVetor[indice],
244
- ])];
245
- case 2:
246
- _a = (_d.sent());
247
- if (!_a) return [3 /*break*/, 4];
248
- _c = (_b = resultados).push;
249
- return [4 /*yield*/, valorFuncaoFiltragem.chamar(interpretador, [
250
- valorVetor[indice],
251
- ])];
252
- case 3:
253
- _a = _c.apply(_b, [_d.sent()]);
254
- _d.label = 4;
255
- case 4:
256
- _a;
257
- _d.label = 5;
258
- case 5:
259
- ++indice;
260
- return [3 /*break*/, 1];
261
- case 6: return [2 /*return*/, resultados[0]];
262
- }
263
- });
264
- });
115
+ pilhaEscoposExecucao.definirVariavel('primeiroEmCondicao', new funcao_padrao_1.FuncaoPadrao(1, async function (vetor, funcaoFiltragem) {
116
+ if (vetor === null || vetor === undefined)
117
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função primeiroEmCondicao() não pode ser nulo.'));
118
+ const valorVetor = vetor.hasOwnProperty('valor')
119
+ ? vetor.valor
120
+ : vetor;
121
+ const valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
122
+ ? funcaoFiltragem.valor
123
+ : funcaoFiltragem;
124
+ if (!Array.isArray(valorVetor)) {
125
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função primeiroEmCondicao() deve ser um vetor.'));
126
+ }
127
+ if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
128
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função primeiroEmCondicao() deve ser uma função.'));
129
+ }
130
+ const resultados = [];
131
+ for (let indice = 0; indice < valorVetor.length; ++indice) {
132
+ await valorFuncaoFiltragem.chamar(interpretador, [
133
+ valorVetor[indice],
134
+ ]) &&
135
+ resultados.push(await valorFuncaoFiltragem.chamar(interpretador, [
136
+ valorVetor[indice],
137
+ ]));
138
+ }
139
+ return resultados[0];
265
140
  }));
266
- pilhaEscoposExecucao.definirVariavel('paraCada', new funcao_padrao_1.FuncaoPadrao(1, function (vetor, funcaoFiltragem) {
267
- return __awaiter(this, void 0, void 0, function () {
268
- var valorVetor, valorFuncaoFiltragem, indice;
269
- return __generator(this, function (_a) {
270
- switch (_a.label) {
271
- case 0:
272
- if (vetor === null || vetor === undefined)
273
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função paraCada() não pode ser nulo.'))];
274
- valorVetor = vetor.hasOwnProperty('valor')
275
- ? vetor.valor
276
- : vetor;
277
- valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
278
- ? funcaoFiltragem.valor
279
- : funcaoFiltragem;
280
- if (!Array.isArray(valorVetor)) {
281
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função paraCada() deve ser um vetor.'))];
282
- }
283
- if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
284
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função paraCada() deve ser uma função.'))];
285
- }
286
- indice = 0;
287
- _a.label = 1;
288
- case 1:
289
- if (!(indice < valorVetor.length)) return [3 /*break*/, 4];
290
- return [4 /*yield*/, valorFuncaoFiltragem.chamar(interpretador, [
291
- valorVetor[indice],
292
- ])];
293
- case 2:
294
- _a.sent();
295
- _a.label = 3;
296
- case 3:
297
- ++indice;
298
- return [3 /*break*/, 1];
299
- case 4: return [2 /*return*/];
300
- }
301
- });
302
- });
141
+ pilhaEscoposExecucao.definirVariavel('paraCada', new funcao_padrao_1.FuncaoPadrao(1, async function (vetor, funcaoFiltragem) {
142
+ if (vetor === null || vetor === undefined)
143
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função paraCada() não pode ser nulo.'));
144
+ const valorVetor = vetor.hasOwnProperty('valor')
145
+ ? vetor.valor
146
+ : vetor;
147
+ const valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
148
+ ? funcaoFiltragem.valor
149
+ : funcaoFiltragem;
150
+ if (!Array.isArray(valorVetor)) {
151
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função paraCada() deve ser um vetor.'));
152
+ }
153
+ if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
154
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O segundo parâmetro da função paraCada() deve ser uma função.'));
155
+ }
156
+ for (let indice = 0; indice < valorVetor.length; ++indice) {
157
+ await valorFuncaoFiltragem.chamar(interpretador, [
158
+ valorVetor[indice],
159
+ ]);
160
+ }
303
161
  }));
304
- pilhaEscoposExecucao.definirVariavel('ordenar', new funcao_padrao_1.FuncaoPadrao(1, function (vetor) {
305
- return __awaiter(this, void 0, void 0, function () {
306
- var objeto, trocado, tamanho, i;
307
- var _a;
308
- return __generator(this, function (_b) {
309
- if (vetor === null || vetor === undefined)
310
- throw new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função ordenar() não pode ser nulo.');
311
- objeto = vetor.hasOwnProperty('valor')
312
- ? vetor.valor
313
- : vetor;
314
- if (!Array.isArray(objeto)) {
315
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor inválido. Objeto inserido não é um vetor.'))];
162
+ pilhaEscoposExecucao.definirVariavel('ordenar', new funcao_padrao_1.FuncaoPadrao(1, async function (vetor) {
163
+ if (vetor === null || vetor === undefined)
164
+ throw new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Parâmetro inválido. O primeiro parâmetro da função ordenar() não pode ser nulo.');
165
+ const objeto = vetor.hasOwnProperty('valor')
166
+ ? vetor.valor
167
+ : vetor;
168
+ if (!Array.isArray(objeto)) {
169
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor inválido. Objeto inserido não é um vetor.'));
170
+ }
171
+ let trocado;
172
+ const tamanho = objeto.length;
173
+ do {
174
+ trocado = false;
175
+ for (let i = 0; i < tamanho - 1; i++) {
176
+ if (objeto[i] > objeto[i + 1]) {
177
+ [objeto[i], objeto[i + 1]] = [objeto[i + 1], objeto[i]];
178
+ trocado = true;
316
179
  }
317
- tamanho = objeto.length;
318
- do {
319
- trocado = false;
320
- for (i = 0; i < tamanho - 1; i++) {
321
- if (objeto[i] > objeto[i + 1]) {
322
- _a = [objeto[i + 1], objeto[i]], objeto[i] = _a[0], objeto[i + 1] = _a[1];
323
- trocado = true;
324
- }
325
- }
326
- } while (trocado);
327
- return [2 /*return*/, Promise.resolve(objeto)];
328
- });
329
- });
180
+ }
181
+ } while (trocado);
182
+ return Promise.resolve(objeto);
330
183
  }));
331
- pilhaEscoposExecucao.definirVariavel('real', new funcao_padrao_1.FuncaoPadrao(1, function (numero) {
332
- return __awaiter(this, void 0, void 0, function () {
333
- var valor;
334
- return __generator(this, function (_a) {
335
- if (numero === null || numero === undefined)
336
- return [2 /*return*/, Promise.resolve(parseFloat('0'))];
337
- valor = numero.hasOwnProperty('valor')
338
- ? numero.valor
339
- : numero;
340
- if (!/^(-)?\d+(\.\d+)?$/.test(valor)) {
341
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor não parece estar estruturado como um número (texto/valor vazio, falso ou não definido). Somente números ou textos com números podem ser convertidos para real.'))];
342
- }
343
- return [2 /*return*/, Promise.resolve(parseFloat(valor))];
344
- });
345
- });
184
+ pilhaEscoposExecucao.definirVariavel('real', new funcao_padrao_1.FuncaoPadrao(1, async function (numero) {
185
+ if (numero === null || numero === undefined)
186
+ return Promise.resolve(parseFloat('0'));
187
+ const valor = numero.hasOwnProperty('valor')
188
+ ? numero.valor
189
+ : numero;
190
+ if (!/^(-)?\d+(\.\d+)?$/.test(valor)) {
191
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Valor não parece estar estruturado como um número (texto/valor vazio, falso ou não definido). Somente números ou textos com números podem ser convertidos para real.'));
192
+ }
193
+ return Promise.resolve(parseFloat(valor));
346
194
  }));
347
- pilhaEscoposExecucao.definirVariavel('tamanho', new funcao_padrao_1.FuncaoPadrao(1, function (objeto) {
348
- return __awaiter(this, void 0, void 0, function () {
349
- var valorObjeto, metodos, tamanho;
350
- return __generator(this, function (_a) {
351
- valorObjeto = objeto.hasOwnProperty('valor')
352
- ? objeto.valor
353
- : objeto;
354
- if (!isNaN(valorObjeto)) {
355
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Não é possível encontrar o tamanho de um número.'))];
356
- }
357
- if (valorObjeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
358
- return [2 /*return*/, Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Você não pode encontrar o tamanho de uma declaração.'))];
359
- }
360
- if (valorObjeto instanceof estruturas_1.DeleguaFuncao) {
361
- return [2 /*return*/, Promise.resolve(valorObjeto.declaracao.parametros.length)];
362
- }
363
- if (valorObjeto instanceof funcao_padrao_1.FuncaoPadrao) {
364
- return [2 /*return*/, Promise.resolve(valorObjeto.valorAridade)];
365
- }
366
- if (valorObjeto instanceof delegua_classe_1.DeleguaClasse) {
367
- metodos = valorObjeto.metodos;
368
- tamanho = 0;
369
- if (metodos.inicializacao &&
370
- metodos.inicializacao.eInicializador) {
371
- tamanho =
372
- metodos.inicializacao.declaracao.parametros.length;
373
- }
374
- return [2 /*return*/, Promise.resolve(tamanho)];
375
- }
376
- return [2 /*return*/, Promise.resolve(valorObjeto.length)];
377
- });
378
- });
195
+ pilhaEscoposExecucao.definirVariavel('tamanho', new funcao_padrao_1.FuncaoPadrao(1, async function (objeto) {
196
+ const valorObjeto = objeto.hasOwnProperty('valor')
197
+ ? objeto.valor
198
+ : objeto;
199
+ if (!isNaN(valorObjeto)) {
200
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Não é possível encontrar o tamanho de um número.'));
201
+ }
202
+ if (valorObjeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
203
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(this.simbolo, 'Você não pode encontrar o tamanho de uma declaração.'));
204
+ }
205
+ if (valorObjeto instanceof estruturas_1.DeleguaFuncao) {
206
+ return Promise.resolve(valorObjeto.declaracao.parametros.length);
207
+ }
208
+ if (valorObjeto instanceof funcao_padrao_1.FuncaoPadrao) {
209
+ return Promise.resolve(valorObjeto.valorAridade);
210
+ }
211
+ if (valorObjeto instanceof delegua_classe_1.DeleguaClasse) {
212
+ const metodos = valorObjeto.metodos;
213
+ let tamanho = 0;
214
+ if (metodos.inicializacao &&
215
+ metodos.inicializacao.eInicializador) {
216
+ tamanho =
217
+ metodos.inicializacao.declaracao.parametros.length;
218
+ }
219
+ return Promise.resolve(tamanho);
220
+ }
221
+ return Promise.resolve(valorObjeto.length);
379
222
  }));
380
- pilhaEscoposExecucao.definirVariavel('texto', new funcao_padrao_1.FuncaoPadrao(1, function (valorOuVariavel) {
381
- return __awaiter(this, void 0, void 0, function () {
382
- return __generator(this, function (_a) {
383
- return [2 /*return*/, Promise.resolve("".concat(valorOuVariavel.hasOwnProperty('valor')
384
- ? valorOuVariavel.valor
385
- : valorOuVariavel))];
386
- });
387
- });
223
+ pilhaEscoposExecucao.definirVariavel('texto', new funcao_padrao_1.FuncaoPadrao(1, async function (valorOuVariavel) {
224
+ return Promise.resolve(`${valorOuVariavel.hasOwnProperty('valor')
225
+ ? valorOuVariavel.valor
226
+ : valorOuVariavel}`);
388
227
  }));
389
228
  return pilhaEscoposExecucao;
390
229
  }