@designliquido/delegua 0.9.3 → 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 (234) 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.js +108 -105
  10. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  11. package/fontes/avaliador-sintatico/avaliador-sintatico.js +226 -232
  12. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +35 -55
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +211 -216
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +231 -237
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +3 -0
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +188 -121
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  22. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +6 -24
  23. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -1
  24. package/fontes/bibliotecas/biblioteca-global.js +206 -367
  25. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  26. package/fontes/bibliotecas/importar-biblioteca.js +28 -29
  27. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  28. package/fontes/bibliotecas/primitivas-texto.js +9 -22
  29. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  30. package/fontes/bibliotecas/primitivas-vetor.js +12 -14
  31. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  32. package/fontes/construtos/acesso-indice-variavel.js +6 -50
  33. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  34. package/fontes/construtos/acesso-metodo.js +6 -50
  35. package/fontes/construtos/acesso-metodo.js.map +1 -1
  36. package/fontes/construtos/agrupamento.js +6 -50
  37. package/fontes/construtos/agrupamento.js.map +1 -1
  38. package/fontes/construtos/atribuicao-sobrescrita.js +6 -50
  39. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  40. package/fontes/construtos/atribuir.js +6 -50
  41. package/fontes/construtos/atribuir.js.map +1 -1
  42. package/fontes/construtos/binario.js +6 -50
  43. package/fontes/construtos/binario.js.map +1 -1
  44. package/fontes/construtos/chamada.js +6 -50
  45. package/fontes/construtos/chamada.js.map +1 -1
  46. package/fontes/construtos/definir-valor.js +6 -50
  47. package/fontes/construtos/definir-valor.js.map +1 -1
  48. package/fontes/construtos/dicionario.js +6 -50
  49. package/fontes/construtos/dicionario.js.map +1 -1
  50. package/fontes/construtos/funcao.d.ts +2 -2
  51. package/fontes/construtos/funcao.js +6 -47
  52. package/fontes/construtos/funcao.js.map +1 -1
  53. package/fontes/construtos/isto.js +6 -47
  54. package/fontes/construtos/isto.js.map +1 -1
  55. package/fontes/construtos/literal.js +6 -47
  56. package/fontes/construtos/literal.js.map +1 -1
  57. package/fontes/construtos/logico.js +6 -50
  58. package/fontes/construtos/logico.js.map +1 -1
  59. package/fontes/construtos/super.js +6 -47
  60. package/fontes/construtos/super.js.map +1 -1
  61. package/fontes/construtos/unario.js +6 -50
  62. package/fontes/construtos/unario.js.map +1 -1
  63. package/fontes/construtos/variavel.js +6 -47
  64. package/fontes/construtos/variavel.js.map +1 -1
  65. package/fontes/construtos/vetor.js +6 -50
  66. package/fontes/construtos/vetor.js.map +1 -1
  67. package/fontes/declaracoes/bloco.js +9 -70
  68. package/fontes/declaracoes/bloco.js.map +1 -1
  69. package/fontes/declaracoes/classe.js +11 -72
  70. package/fontes/declaracoes/classe.js.map +1 -1
  71. package/fontes/declaracoes/continua.js +8 -65
  72. package/fontes/declaracoes/continua.js.map +1 -1
  73. package/fontes/declaracoes/declaracao.js +6 -47
  74. package/fontes/declaracoes/declaracao.js.map +1 -1
  75. package/fontes/declaracoes/enquanto.js +10 -71
  76. package/fontes/declaracoes/enquanto.js.map +1 -1
  77. package/fontes/declaracoes/escolha.js +11 -72
  78. package/fontes/declaracoes/escolha.js.map +1 -1
  79. package/fontes/declaracoes/escreva.js +9 -70
  80. package/fontes/declaracoes/escreva.js.map +1 -1
  81. package/fontes/declaracoes/expressao.js +9 -70
  82. package/fontes/declaracoes/expressao.js.map +1 -1
  83. package/fontes/declaracoes/fazer.js +10 -71
  84. package/fontes/declaracoes/fazer.js.map +1 -1
  85. package/fontes/declaracoes/funcao.js +10 -68
  86. package/fontes/declaracoes/funcao.js.map +1 -1
  87. package/fontes/declaracoes/importar.js +10 -71
  88. package/fontes/declaracoes/importar.js.map +1 -1
  89. package/fontes/declaracoes/leia.js +9 -70
  90. package/fontes/declaracoes/leia.js.map +1 -1
  91. package/fontes/declaracoes/para.js +12 -73
  92. package/fontes/declaracoes/para.js.map +1 -1
  93. package/fontes/declaracoes/retorna.js +10 -71
  94. package/fontes/declaracoes/retorna.js.map +1 -1
  95. package/fontes/declaracoes/se.js +12 -73
  96. package/fontes/declaracoes/se.js.map +1 -1
  97. package/fontes/declaracoes/sustar.js +8 -65
  98. package/fontes/declaracoes/sustar.js.map +1 -1
  99. package/fontes/declaracoes/tente.js +12 -73
  100. package/fontes/declaracoes/tente.js.map +1 -1
  101. package/fontes/declaracoes/var.js +10 -71
  102. package/fontes/declaracoes/var.js.map +1 -1
  103. package/fontes/delegua.js +116 -199
  104. package/fontes/delegua.js.map +1 -1
  105. package/fontes/depuracao/cyrb53.js +3 -4
  106. package/fontes/depuracao/cyrb53.js.map +1 -1
  107. package/fontes/depuracao/servidor-depuracao.js +125 -209
  108. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  109. package/fontes/espaco-variaveis.js +3 -4
  110. package/fontes/espaco-variaveis.js.map +1 -1
  111. package/fontes/estruturas/chamavel.js +6 -9
  112. package/fontes/estruturas/chamavel.js.map +1 -1
  113. package/fontes/estruturas/classe-padrao.js +17 -35
  114. package/fontes/estruturas/classe-padrao.js.map +1 -1
  115. package/fontes/estruturas/delegua-classe.d.ts +2 -2
  116. package/fontes/estruturas/delegua-classe.js +21 -39
  117. package/fontes/estruturas/delegua-classe.js.map +1 -1
  118. package/fontes/estruturas/delegua-funcao.js +48 -114
  119. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  120. package/fontes/estruturas/funcao-padrao.js +13 -75
  121. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  122. package/fontes/estruturas/metodo-primitiva.js +11 -39
  123. package/fontes/estruturas/metodo-primitiva.js.map +1 -1
  124. package/fontes/estruturas/modulo.js +6 -7
  125. package/fontes/estruturas/modulo.js.map +1 -1
  126. package/fontes/estruturas/objeto-delegua-classe.d.ts +3 -3
  127. package/fontes/estruturas/objeto-delegua-classe.js +12 -13
  128. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  129. package/fontes/estruturas/objeto-padrao.js +9 -11
  130. package/fontes/estruturas/objeto-padrao.js.map +1 -1
  131. package/fontes/excecoes/erro-em-tempo-de-execucao.js +8 -26
  132. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
  133. package/fontes/importador/importador.js +21 -22
  134. package/fontes/importador/importador.js.map +1 -1
  135. package/fontes/interfaces/parametro-interface.d.ts +1 -1
  136. package/fontes/interpretador/dialetos/egua-classico.js +592 -1019
  137. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  138. package/fontes/interpretador/inferenciador.js +1 -1
  139. package/fontes/interpretador/inferenciador.js.map +1 -1
  140. package/fontes/interpretador/interpretador-com-depuracao.js +186 -336
  141. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  142. package/fontes/interpretador/interpretador.js +706 -1175
  143. package/fontes/interpretador/interpretador.js.map +1 -1
  144. package/fontes/interpretador/pilha-escopos-execucao.js +52 -57
  145. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  146. package/fontes/lexador/dialetos/lexador-birl.d.ts +1 -0
  147. package/fontes/lexador/dialetos/lexador-birl.js +55 -64
  148. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  149. package/fontes/lexador/dialetos/lexador-egua-classico.js +43 -46
  150. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  151. package/fontes/lexador/dialetos/lexador-eguap.js +59 -63
  152. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  153. package/fontes/lexador/dialetos/lexador-visualg.js +45 -54
  154. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  155. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +1 -1
  156. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
  157. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
  158. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js.map +1 -1
  159. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +24 -0
  160. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +25 -1
  161. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
  162. package/fontes/lexador/lexador-base-linha-unica.js +28 -29
  163. package/fontes/lexador/lexador-base-linha-unica.js.map +1 -1
  164. package/fontes/lexador/lexador.js +53 -57
  165. package/fontes/lexador/lexador.js.map +1 -1
  166. package/fontes/lexador/palavras-reservadas.js +1 -1
  167. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  168. package/fontes/lexador/simbolo.js +5 -6
  169. package/fontes/lexador/simbolo.js.map +1 -1
  170. package/fontes/quebras/index.js +11 -42
  171. package/fontes/quebras/index.js.map +1 -1
  172. package/fontes/resolvedor/dialetos/egua-classico.js +143 -144
  173. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  174. package/fontes/resolvedor/erro-resolvedor.js +6 -24
  175. package/fontes/resolvedor/erro-resolvedor.js.map +1 -1
  176. package/fontes/resolvedor/pilha-escopos.js +11 -12
  177. package/fontes/resolvedor/pilha-escopos.js.map +1 -1
  178. package/fontes/tipos-de-simbolos/birl.d.ts +1 -0
  179. package/fontes/tipos-de-simbolos/birl.js +1 -0
  180. package/fontes/tipos-de-simbolos/birl.js.map +1 -1
  181. package/fontes/tipos-de-simbolos/comum.d.ts +2 -0
  182. package/fontes/tipos-de-simbolos/comum.js +2 -0
  183. package/fontes/tipos-de-simbolos/comum.js.map +1 -1
  184. package/fontes/tipos-de-simbolos/visualg.d.ts +9 -0
  185. package/fontes/tipos-de-simbolos/visualg.js +9 -0
  186. package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
  187. package/index.d.ts +4 -0
  188. package/index.js +4 -26
  189. package/index.js.map +1 -1
  190. package/jest.config.js +9 -47
  191. package/jest.config.js.map +1 -1
  192. package/package.json +3 -3
  193. package/testes/__mocks__/estatistica.js +1 -1
  194. package/testes/__mocks__/estatistica.js.map +1 -1
  195. package/testes/__mocks__/fisica.js +1 -1
  196. package/testes/__mocks__/fisica.js.map +1 -1
  197. package/testes/__mocks__/matematica.js +1 -1
  198. package/testes/__mocks__/matematica.js.map +1 -1
  199. package/testes/avaliador-sintatico.test.js +27 -27
  200. package/testes/avaliador-sintatico.test.js.map +1 -1
  201. package/testes/biblioteca-global.test.js +197 -440
  202. package/testes/biblioteca-global.test.js.map +1 -1
  203. package/testes/birl/avaliador-sintatico.test.js +8 -8
  204. package/testes/birl/avaliador-sintatico.test.js.map +1 -1
  205. package/testes/birl/lexador.test.js +10 -10
  206. package/testes/birl/lexador.test.js.map +1 -1
  207. package/testes/delegua.test.js +7 -7
  208. package/testes/delegua.test.js.map +1 -1
  209. package/testes/egua-classico/avaliador-sintatico.test.js +14 -14
  210. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  211. package/testes/egua-classico/delegua.test.js +5 -5
  212. package/testes/egua-classico/delegua.test.js.map +1 -1
  213. package/testes/egua-classico/interpretador.test.js +180 -396
  214. package/testes/egua-classico/interpretador.test.js.map +1 -1
  215. package/testes/egua-classico/lexador.test.js +23 -23
  216. package/testes/egua-classico/lexador.test.js.map +1 -1
  217. package/testes/egua-classico/resolvedor.test.js +12 -12
  218. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  219. package/testes/eguap/avaliador-sintatico.test.js +11 -11
  220. package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
  221. package/testes/eguap/interpretador.test.js +189 -405
  222. package/testes/eguap/interpretador.test.js.map +1 -1
  223. package/testes/eguap/lexador.test.js +18 -18
  224. package/testes/eguap/lexador.test.js.map +1 -1
  225. package/testes/interpretador.test.js +431 -908
  226. package/testes/interpretador.test.js.map +1 -1
  227. package/testes/lexador.test.js +42 -42
  228. package/testes/lexador.test.js.map +1 -1
  229. package/testes/visualg/avaliador-sintatico.test.js +23 -23
  230. package/testes/visualg/avaliador-sintatico.test.js.map +1 -1
  231. package/testes/visualg/interpretador.test.js +16 -61
  232. package/testes/visualg/interpretador.test.js.map +1 -1
  233. package/testes/visualg/lexador.test.js +15 -15
  234. package/testes/visualg/lexador.test.js.map +1 -1
@@ -1,458 +1,215 @@
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 delegua_1 = require("../fontes/delegua");
40
- describe('Biblioteca Global', function () {
41
- var delegua;
42
- beforeEach(function () {
3
+ const delegua_1 = require("../fontes/delegua");
4
+ describe('Biblioteca Global', () => {
5
+ let delegua;
6
+ beforeEach(() => {
43
7
  delegua = new delegua_1.Delegua('delegua');
44
8
  });
45
- describe('aleatorio()', function () {
46
- it('Trivial', function () { return __awaiter(void 0, void 0, void 0, function () {
47
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
48
- return __generator(this, function (_a) {
49
- switch (_a.label) {
50
- case 0:
51
- retornoLexador = delegua.lexador.mapear(["escreva(aleatorio())"], -1);
52
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
53
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
54
- case 1:
55
- retornoInterpretador = _a.sent();
56
- expect(retornoInterpretador.erros).toHaveLength(0);
57
- return [2 /*return*/];
58
- }
59
- });
60
- }); });
9
+ describe('aleatorio()', () => {
10
+ it('Trivial', async () => {
11
+ const retornoLexador = delegua.lexador.mapear(["escreva(aleatorio())"], -1);
12
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
13
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
14
+ expect(retornoInterpretador.erros).toHaveLength(0);
15
+ });
61
16
  });
62
- describe('aleatorioEntre()', function () {
63
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
64
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
67
- case 0:
68
- retornoLexador = delegua.lexador.mapear(["escreva(aleatorioEntre(1, 5))"], -1);
69
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
70
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
71
- case 1:
72
- retornoInterpretador = _a.sent();
73
- expect(retornoInterpretador.erros).toHaveLength(0);
74
- return [2 /*return*/];
75
- }
76
- });
77
- }); });
17
+ describe('aleatorioEntre()', () => {
18
+ it('Sucesso', async () => {
19
+ const retornoLexador = delegua.lexador.mapear(["escreva(aleatorioEntre(1, 5))"], -1);
20
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
21
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
22
+ expect(retornoInterpretador.erros).toHaveLength(0);
23
+ });
78
24
  });
79
- describe('inteiro()', function () {
80
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
81
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
82
- return __generator(this, function (_a) {
83
- switch (_a.label) {
84
- case 0:
85
- retornoLexador = delegua.lexador.mapear(["escreva(inteiro(1))"], -1);
86
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
87
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
88
- case 1:
89
- retornoInterpretador = _a.sent();
90
- expect(retornoInterpretador.erros).toHaveLength(0);
91
- return [2 /*return*/];
92
- }
93
- });
94
- }); });
95
- it('Sucesso - Nulo', function () { return __awaiter(void 0, void 0, void 0, function () {
96
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
97
- return __generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0:
100
- retornoLexador = delegua.lexador.mapear(["escreva(inteiro(nulo))"], -1);
101
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
102
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
103
- case 1:
104
- retornoInterpretador = _a.sent();
105
- expect(retornoInterpretador.erros).toHaveLength(0);
106
- return [2 /*return*/];
107
- }
108
- });
109
- }); });
110
- it('Falha - Não inteiro', function () { return __awaiter(void 0, void 0, void 0, function () {
111
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
112
- return __generator(this, function (_a) {
113
- switch (_a.label) {
114
- case 0:
115
- retornoLexador = delegua.lexador.mapear(["escreva(inteiro('Oi'))"], -1);
116
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
117
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
118
- case 1:
119
- retornoInterpretador = _a.sent();
120
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
121
- return [2 /*return*/];
122
- }
123
- });
124
- }); });
25
+ describe('inteiro()', () => {
26
+ it('Sucesso', async () => {
27
+ const retornoLexador = delegua.lexador.mapear(["escreva(inteiro(1 + 1))"], -1);
28
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
29
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
30
+ expect(retornoInterpretador.erros).toHaveLength(0);
31
+ });
32
+ it('Sucesso - Nulo', async () => {
33
+ const retornoLexador = delegua.lexador.mapear(["escreva(inteiro(nulo))"], -1);
34
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
35
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
36
+ expect(retornoInterpretador.erros).toHaveLength(0);
37
+ });
38
+ it('Falha - Não inteiro', async () => {
39
+ const retornoLexador = delegua.lexador.mapear(["escreva(inteiro('Oi'))"], -1);
40
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
41
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
42
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
43
+ });
125
44
  });
126
- describe('mapear()', function () {
127
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
128
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
129
- return __generator(this, function (_a) {
130
- switch (_a.label) {
131
- case 0:
132
- codigo = [
133
- "var f = funcao(x) { retorna(x ** x) }",
134
- "escreva(mapear([1, 2, 3], f))"
135
- ];
136
- retornoLexador = delegua.lexador.mapear(codigo, -1);
137
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
138
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
139
- case 1:
140
- retornoInterpretador = _a.sent();
141
- expect(retornoInterpretador.erros).toHaveLength(0);
142
- return [2 /*return*/];
143
- }
144
- });
145
- }); });
146
- it('Falha - Funçao de mapeamento inválida', function () { return __awaiter(void 0, void 0, void 0, function () {
147
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
148
- return __generator(this, function (_a) {
149
- switch (_a.label) {
150
- case 0:
151
- codigo = [
152
- "var f = 'Sou uma função'",
153
- "escreva(mapear([1, 2, 3], f))"
154
- ];
155
- retornoLexador = delegua.lexador.mapear(codigo, -1);
156
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
157
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
158
- case 1:
159
- retornoInterpretador = _a.sent();
160
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
161
- return [2 /*return*/];
162
- }
163
- });
164
- }); });
45
+ describe('mapear()', () => {
46
+ it('Sucesso', async () => {
47
+ const codigo = [
48
+ "var f = funcao(x) { retorna(x ** x) }",
49
+ "escreva(mapear([1, 2, 3], f))"
50
+ ];
51
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
52
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
53
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
54
+ expect(retornoInterpretador.erros).toHaveLength(0);
55
+ });
56
+ it('Falha - Funçao de mapeamento inválida', async () => {
57
+ const codigo = [
58
+ "var f = 'Sou uma função'",
59
+ "escreva(mapear([1, 2, 3], f))"
60
+ ];
61
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
62
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
63
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
64
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
65
+ });
165
66
  });
166
- describe('todosEmCondicao()', function () {
167
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
168
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
169
- return __generator(this, function (_a) {
170
- switch (_a.label) {
171
- case 0:
172
- codigo = [
173
- "var f = funcao(x) { retorna(x < 10) }",
174
- "escreva(todosEmCondicao([1, 2, 3, 4, 5, 6], f))"
175
- ];
176
- retornoLexador = delegua.lexador.mapear(codigo, -1);
177
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
178
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
179
- case 1:
180
- retornoInterpretador = _a.sent();
181
- expect(retornoInterpretador.erros).toHaveLength(0);
182
- return [2 /*return*/];
183
- }
184
- });
185
- }); });
186
- it('Falha - Funçao de mapeamento inválida', function () { return __awaiter(void 0, void 0, void 0, function () {
187
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
188
- return __generator(this, function (_a) {
189
- switch (_a.label) {
190
- case 0:
191
- codigo = [
192
- "var f = 'Sou uma função'",
193
- "escreva(todosEmCondicao([1, 2, 3, 4, 5, 6], f))"
194
- ];
195
- retornoLexador = delegua.lexador.mapear(codigo, -1);
196
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
197
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
198
- case 1:
199
- retornoInterpretador = _a.sent();
200
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
201
- return [2 /*return*/];
202
- }
203
- });
204
- }); });
67
+ describe('todosEmCondicao()', () => {
68
+ it('Sucesso', async () => {
69
+ const codigo = [
70
+ "var f = funcao(x) { retorna(x < 10) }",
71
+ "escreva(todosEmCondicao([1, 2, 3, 4, 5, 6], f))"
72
+ ];
73
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
74
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
75
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
76
+ expect(retornoInterpretador.erros).toHaveLength(0);
77
+ });
78
+ it('Falha - Funçao de mapeamento inválida', async () => {
79
+ const codigo = [
80
+ "var f = 'Sou uma função'",
81
+ "escreva(todosEmCondicao([1, 2, 3, 4, 5, 6], f))"
82
+ ];
83
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
84
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
85
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
86
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
87
+ });
205
88
  });
206
- describe('filtrarPor()', function () {
207
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
208
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
209
- return __generator(this, function (_a) {
210
- switch (_a.label) {
211
- case 0:
212
- codigo = [
213
- "var f = funcao(x) { se(x > 4) { retorna(x) } }",
214
- "escreva(filtrarPor([1, 2, 3, 4, 5, 6], f))"
215
- ];
216
- retornoLexador = delegua.lexador.mapear(codigo, -1);
217
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
218
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
219
- case 1:
220
- retornoInterpretador = _a.sent();
221
- expect(retornoInterpretador.erros).toHaveLength(0);
222
- return [2 /*return*/];
223
- }
224
- });
225
- }); });
226
- it('Falha - Funçao de mapeamento inválida', function () { return __awaiter(void 0, void 0, void 0, function () {
227
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
228
- return __generator(this, function (_a) {
229
- switch (_a.label) {
230
- case 0:
231
- codigo = [
232
- "var f = 'Sou uma função'",
233
- "escreva(filtrarPor([1, 2, 3, 4, 5, 6], f))"
234
- ];
235
- retornoLexador = delegua.lexador.mapear(codigo, -1);
236
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
237
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
238
- case 1:
239
- retornoInterpretador = _a.sent();
240
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
241
- return [2 /*return*/];
242
- }
243
- });
244
- }); });
89
+ describe('filtrarPor()', () => {
90
+ it('Sucesso', async () => {
91
+ const codigo = [
92
+ "var f = funcao(x) { se(x > 4) { retorna(x) } }",
93
+ "escreva(filtrarPor([1, 2, 3, 4, 5, 6], f))"
94
+ ];
95
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
96
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
97
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
98
+ expect(retornoInterpretador.erros).toHaveLength(0);
99
+ });
100
+ it('Falha - Funçao de mapeamento inválida', async () => {
101
+ const codigo = [
102
+ "var f = 'Sou uma função'",
103
+ "escreva(filtrarPor([1, 2, 3, 4, 5, 6], f))"
104
+ ];
105
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
106
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
107
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
108
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
109
+ });
245
110
  });
246
- describe('primeiroEmCondicao()', function () {
247
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
248
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
249
- return __generator(this, function (_a) {
250
- switch (_a.label) {
251
- case 0:
252
- codigo = [
253
- "var f = funcao(x) { se(x > 4) { retorna(x) } }",
254
- "escreva(primeiroEmCondicao([1, 2, 3, 4, 5, 6], f))"
255
- ];
256
- retornoLexador = delegua.lexador.mapear(codigo, -1);
257
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
258
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
259
- case 1:
260
- retornoInterpretador = _a.sent();
261
- expect(retornoInterpretador.erros).toHaveLength(0);
262
- return [2 /*return*/];
263
- }
264
- });
265
- }); });
266
- it('Falha - Funçao de mapeamento inválida', function () { return __awaiter(void 0, void 0, void 0, function () {
267
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
268
- return __generator(this, function (_a) {
269
- switch (_a.label) {
270
- case 0:
271
- codigo = [
272
- "var f = 'Sou uma função'",
273
- "escreva(primeiroEmCondicao([1, 2, 3, 4, 5, 6], f))"
274
- ];
275
- retornoLexador = delegua.lexador.mapear(codigo, -1);
276
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
277
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
278
- case 1:
279
- retornoInterpretador = _a.sent();
280
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
281
- return [2 /*return*/];
282
- }
283
- });
284
- }); });
111
+ describe('primeiroEmCondicao()', () => {
112
+ it('Sucesso', async () => {
113
+ const codigo = [
114
+ "var f = funcao(x) { se(x > 4) { retorna(x) } }",
115
+ "escreva(primeiroEmCondicao([1, 2, 3, 4, 5, 6], f))"
116
+ ];
117
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
118
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
119
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
120
+ expect(retornoInterpretador.erros).toHaveLength(0);
121
+ });
122
+ it('Falha - Funçao de mapeamento inválida', async () => {
123
+ const codigo = [
124
+ "var f = 'Sou uma função'",
125
+ "escreva(primeiroEmCondicao([1, 2, 3, 4, 5, 6], f))"
126
+ ];
127
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
128
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
129
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
130
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
131
+ });
285
132
  });
286
- describe('paraCada()', function () {
287
- it.skip('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
288
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
289
- return __generator(this, function (_a) {
290
- switch (_a.label) {
291
- case 0:
292
- codigo = [
293
- "var f = funcao(valor) { se(valor >= 7) { escreva(valor) } }",
294
- "escreva(paraCada([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], f)"
295
- ];
296
- retornoLexador = delegua.lexador.mapear(codigo, -1);
297
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
298
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
299
- case 1:
300
- retornoInterpretador = _a.sent();
301
- expect(retornoInterpretador.erros).toHaveLength(0);
302
- return [2 /*return*/];
303
- }
304
- });
305
- }); });
306
- it('Falha - Funçao de mapeamento inválida', function () { return __awaiter(void 0, void 0, void 0, function () {
307
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
308
- return __generator(this, function (_a) {
309
- switch (_a.label) {
310
- case 0:
311
- codigo = [
312
- "var f = 'Sou uma função'",
313
- "escreva(paraCada([1, 2, 3, 4, 5, 6], f))"
314
- ];
315
- retornoLexador = delegua.lexador.mapear(codigo, -1);
316
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
317
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
318
- case 1:
319
- retornoInterpretador = _a.sent();
320
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
321
- return [2 /*return*/];
322
- }
323
- });
324
- }); });
133
+ describe('paraCada()', () => {
134
+ it.skip('Sucesso', async () => {
135
+ const codigo = [
136
+ "var f = funcao(valor) { se(valor >= 7) { escreva(valor) } }",
137
+ "escreva(paraCada([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], f)"
138
+ ];
139
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
140
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
141
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
142
+ expect(retornoInterpretador.erros).toHaveLength(0);
143
+ });
144
+ it('Falha - Funçao de mapeamento inválida', async () => {
145
+ const codigo = [
146
+ "var f = 'Sou uma função'",
147
+ "escreva(paraCada([1, 2, 3, 4, 5, 6], f))"
148
+ ];
149
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
150
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
151
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
152
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
153
+ });
325
154
  });
326
- describe('ordenar()', function () {
327
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
328
- var codigo, retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
329
- return __generator(this, function (_a) {
330
- switch (_a.label) {
331
- case 0:
332
- codigo = [
333
- "ordenar([5, 12, 10, 1, 4, 25, 33, 9, 7, 6, 2])"
334
- ];
335
- retornoLexador = delegua.lexador.mapear(codigo, -1);
336
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
337
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
338
- case 1:
339
- retornoInterpretador = _a.sent();
340
- expect(retornoInterpretador.erros).toHaveLength(0);
341
- return [2 /*return*/];
342
- }
343
- });
344
- }); });
155
+ describe('ordenar()', () => {
156
+ it('Sucesso', async () => {
157
+ const codigo = [
158
+ "ordenar([5, 12, 10, 1, 4, 25, 33, 9, 7, 6, 2])"
159
+ ];
160
+ const retornoLexador = delegua.lexador.mapear(codigo, -1);
161
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
162
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
163
+ expect(retornoInterpretador.erros).toHaveLength(0);
164
+ });
345
165
  });
346
- describe('real()', function () {
347
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
348
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
349
- return __generator(this, function (_a) {
350
- switch (_a.label) {
351
- case 0:
352
- retornoLexador = delegua.lexador.mapear(["escreva(real(3.14))"], -1);
353
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
354
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
355
- case 1:
356
- retornoInterpretador = _a.sent();
357
- expect(retornoInterpretador.erros).toHaveLength(0);
358
- return [2 /*return*/];
359
- }
360
- });
361
- }); });
362
- it('Falha - Não inteiro', function () { return __awaiter(void 0, void 0, void 0, function () {
363
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
364
- return __generator(this, function (_a) {
365
- switch (_a.label) {
366
- case 0:
367
- retornoLexador = delegua.lexador.mapear(["escreva(real('Oi'))"], -1);
368
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
369
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
370
- case 1:
371
- retornoInterpretador = _a.sent();
372
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
373
- return [2 /*return*/];
374
- }
375
- });
376
- }); });
377
- it.skip('Falha - Nulo', function () { return __awaiter(void 0, void 0, void 0, function () {
378
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
379
- return __generator(this, function (_a) {
380
- switch (_a.label) {
381
- case 0:
382
- retornoLexador = delegua.lexador.mapear(["escreva(real(nulo))"], -1);
383
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
384
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
385
- case 1:
386
- retornoInterpretador = _a.sent();
387
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
388
- return [2 /*return*/];
389
- }
390
- });
391
- }); });
166
+ describe('real()', () => {
167
+ it('Sucesso', async () => {
168
+ const retornoLexador = delegua.lexador.mapear(["escreva(real(3.14))"], -1);
169
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
170
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
171
+ expect(retornoInterpretador.erros).toHaveLength(0);
172
+ });
173
+ it('Falha - Não inteiro', async () => {
174
+ const retornoLexador = delegua.lexador.mapear(["escreva(real('Oi'))"], -1);
175
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
176
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
177
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
178
+ });
179
+ it.skip('Falha - Nulo', async () => {
180
+ const retornoLexador = delegua.lexador.mapear(["escreva(real(nulo))"], -1);
181
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
182
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
183
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
184
+ });
392
185
  });
393
- describe('tamanho()', function () {
394
- it('Sucesso', function () { return __awaiter(void 0, void 0, void 0, function () {
395
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
396
- return __generator(this, function (_a) {
397
- switch (_a.label) {
398
- case 0:
399
- retornoLexador = delegua.lexador.mapear(["escreva(tamanho([1, 2, 3]))"], -1);
400
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
401
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
402
- case 1:
403
- retornoInterpretador = _a.sent();
404
- expect(retornoInterpretador.erros).toHaveLength(0);
405
- return [2 /*return*/];
406
- }
407
- });
408
- }); });
409
- it('Falha - Argumento não é lista', function () { return __awaiter(void 0, void 0, void 0, function () {
410
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
411
- return __generator(this, function (_a) {
412
- switch (_a.label) {
413
- case 0:
414
- retornoLexador = delegua.lexador.mapear(["escreva(tamanho(1))"], -1);
415
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
416
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
417
- case 1:
418
- retornoInterpretador = _a.sent();
419
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
420
- return [2 /*return*/];
421
- }
422
- });
423
- }); });
424
- it('Falha - Nulo', function () { return __awaiter(void 0, void 0, void 0, function () {
425
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
426
- return __generator(this, function (_a) {
427
- switch (_a.label) {
428
- case 0:
429
- retornoLexador = delegua.lexador.mapear(["escreva(tamanho(nulo))"], -1);
430
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
431
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
432
- case 1:
433
- retornoInterpretador = _a.sent();
434
- expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
435
- return [2 /*return*/];
436
- }
437
- });
438
- }); });
186
+ describe('tamanho()', () => {
187
+ it('Sucesso', async () => {
188
+ const retornoLexador = delegua.lexador.mapear(["escreva(tamanho([1, 2, 3]))"], -1);
189
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
190
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
191
+ expect(retornoInterpretador.erros).toHaveLength(0);
192
+ });
193
+ it('Falha - Argumento não é lista', async () => {
194
+ const retornoLexador = delegua.lexador.mapear(["escreva(tamanho(1))"], -1);
195
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
196
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
197
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
198
+ });
199
+ it('Falha - Nulo', async () => {
200
+ const retornoLexador = delegua.lexador.mapear(["escreva(tamanho(nulo))"], -1);
201
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
202
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
203
+ expect(retornoInterpretador.erros.length).toBeGreaterThan(0);
204
+ });
439
205
  });
440
- describe('texto()', function () {
441
- it('Trivial', function () { return __awaiter(void 0, void 0, void 0, function () {
442
- var retornoLexador, retornoAvaliadorSintatico, retornoInterpretador;
443
- return __generator(this, function (_a) {
444
- switch (_a.label) {
445
- case 0:
446
- retornoLexador = delegua.lexador.mapear(["escreva(texto(123))"], -1);
447
- retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
448
- return [4 /*yield*/, delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes)];
449
- case 1:
450
- retornoInterpretador = _a.sent();
451
- expect(retornoInterpretador.erros).toHaveLength(0);
452
- return [2 /*return*/];
453
- }
454
- });
455
- }); });
206
+ describe('texto()', () => {
207
+ it('Trivial', async () => {
208
+ const retornoLexador = delegua.lexador.mapear(["escreva(texto(123))"], -1);
209
+ const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
210
+ const retornoInterpretador = await delegua.interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
211
+ expect(retornoInterpretador.erros).toHaveLength(0);
212
+ });
456
213
  });
457
214
  });
458
215
  //# sourceMappingURL=biblioteca-global.test.js.map