@designliquido/delegua 0.9.3 → 0.9.5

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 (235) hide show
  1. package/README.md +25 -3
  2. package/bin/delegua +1 -1
  3. package/bin/delegua.cmd +1 -1
  4. package/bin/package.json +7 -5
  5. package/coverage/lcov-report/sorter.js +4 -4
  6. package/coverage/lcov-report/sorter.js.map +1 -1
  7. package/execucao.d.ts +1 -0
  8. package/execucao.js +29 -0
  9. package/execucao.js.map +1 -0
  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.js +226 -232
  13. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +35 -55
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +211 -216
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +231 -237
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +3 -0
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +188 -121
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  23. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +6 -24
  24. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -1
  25. package/fontes/bibliotecas/biblioteca-global.js +206 -367
  26. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  27. package/fontes/bibliotecas/importar-biblioteca.js +28 -29
  28. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  29. package/fontes/bibliotecas/primitivas-texto.js +9 -22
  30. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  31. package/fontes/bibliotecas/primitivas-vetor.js +12 -14
  32. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  33. package/fontes/construtos/acesso-indice-variavel.js +6 -50
  34. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  35. package/fontes/construtos/acesso-metodo.js +6 -50
  36. package/fontes/construtos/acesso-metodo.js.map +1 -1
  37. package/fontes/construtos/agrupamento.js +6 -50
  38. package/fontes/construtos/agrupamento.js.map +1 -1
  39. package/fontes/construtos/atribuicao-sobrescrita.js +6 -50
  40. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  41. package/fontes/construtos/atribuir.js +6 -50
  42. package/fontes/construtos/atribuir.js.map +1 -1
  43. package/fontes/construtos/binario.js +6 -50
  44. package/fontes/construtos/binario.js.map +1 -1
  45. package/fontes/construtos/chamada.js +6 -50
  46. package/fontes/construtos/chamada.js.map +1 -1
  47. package/fontes/construtos/definir-valor.js +6 -50
  48. package/fontes/construtos/definir-valor.js.map +1 -1
  49. package/fontes/construtos/dicionario.js +6 -50
  50. package/fontes/construtos/dicionario.js.map +1 -1
  51. package/fontes/construtos/funcao.d.ts +2 -2
  52. package/fontes/construtos/funcao.js +6 -47
  53. package/fontes/construtos/funcao.js.map +1 -1
  54. package/fontes/construtos/isto.js +6 -47
  55. package/fontes/construtos/isto.js.map +1 -1
  56. package/fontes/construtos/literal.js +6 -47
  57. package/fontes/construtos/literal.js.map +1 -1
  58. package/fontes/construtos/logico.js +6 -50
  59. package/fontes/construtos/logico.js.map +1 -1
  60. package/fontes/construtos/super.js +6 -47
  61. package/fontes/construtos/super.js.map +1 -1
  62. package/fontes/construtos/unario.js +6 -50
  63. package/fontes/construtos/unario.js.map +1 -1
  64. package/fontes/construtos/variavel.js +6 -47
  65. package/fontes/construtos/variavel.js.map +1 -1
  66. package/fontes/construtos/vetor.js +6 -50
  67. package/fontes/construtos/vetor.js.map +1 -1
  68. package/fontes/declaracoes/bloco.js +9 -70
  69. package/fontes/declaracoes/bloco.js.map +1 -1
  70. package/fontes/declaracoes/classe.js +11 -72
  71. package/fontes/declaracoes/classe.js.map +1 -1
  72. package/fontes/declaracoes/continua.js +8 -65
  73. package/fontes/declaracoes/continua.js.map +1 -1
  74. package/fontes/declaracoes/declaracao.js +6 -47
  75. package/fontes/declaracoes/declaracao.js.map +1 -1
  76. package/fontes/declaracoes/enquanto.js +10 -71
  77. package/fontes/declaracoes/enquanto.js.map +1 -1
  78. package/fontes/declaracoes/escolha.js +11 -72
  79. package/fontes/declaracoes/escolha.js.map +1 -1
  80. package/fontes/declaracoes/escreva.js +9 -70
  81. package/fontes/declaracoes/escreva.js.map +1 -1
  82. package/fontes/declaracoes/expressao.js +9 -70
  83. package/fontes/declaracoes/expressao.js.map +1 -1
  84. package/fontes/declaracoes/fazer.js +10 -71
  85. package/fontes/declaracoes/fazer.js.map +1 -1
  86. package/fontes/declaracoes/funcao.js +10 -68
  87. package/fontes/declaracoes/funcao.js.map +1 -1
  88. package/fontes/declaracoes/importar.js +10 -71
  89. package/fontes/declaracoes/importar.js.map +1 -1
  90. package/fontes/declaracoes/leia.js +9 -70
  91. package/fontes/declaracoes/leia.js.map +1 -1
  92. package/fontes/declaracoes/para.js +12 -73
  93. package/fontes/declaracoes/para.js.map +1 -1
  94. package/fontes/declaracoes/retorna.js +10 -71
  95. package/fontes/declaracoes/retorna.js.map +1 -1
  96. package/fontes/declaracoes/se.js +12 -73
  97. package/fontes/declaracoes/se.js.map +1 -1
  98. package/fontes/declaracoes/sustar.js +8 -65
  99. package/fontes/declaracoes/sustar.js.map +1 -1
  100. package/fontes/declaracoes/tente.js +12 -73
  101. package/fontes/declaracoes/tente.js.map +1 -1
  102. package/fontes/declaracoes/var.js +10 -71
  103. package/fontes/declaracoes/var.js.map +1 -1
  104. package/fontes/delegua.js +117 -200
  105. package/fontes/delegua.js.map +1 -1
  106. package/fontes/depuracao/cyrb53.js +3 -4
  107. package/fontes/depuracao/cyrb53.js.map +1 -1
  108. package/fontes/depuracao/servidor-depuracao.js +125 -209
  109. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  110. package/fontes/espaco-variaveis.js +3 -4
  111. package/fontes/espaco-variaveis.js.map +1 -1
  112. package/fontes/estruturas/chamavel.js +6 -9
  113. package/fontes/estruturas/chamavel.js.map +1 -1
  114. package/fontes/estruturas/classe-padrao.js +17 -35
  115. package/fontes/estruturas/classe-padrao.js.map +1 -1
  116. package/fontes/estruturas/delegua-classe.d.ts +2 -2
  117. package/fontes/estruturas/delegua-classe.js +21 -39
  118. package/fontes/estruturas/delegua-classe.js.map +1 -1
  119. package/fontes/estruturas/delegua-funcao.js +48 -114
  120. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  121. package/fontes/estruturas/funcao-padrao.js +13 -75
  122. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  123. package/fontes/estruturas/metodo-primitiva.js +11 -39
  124. package/fontes/estruturas/metodo-primitiva.js.map +1 -1
  125. package/fontes/estruturas/modulo.js +6 -7
  126. package/fontes/estruturas/modulo.js.map +1 -1
  127. package/fontes/estruturas/objeto-delegua-classe.d.ts +3 -3
  128. package/fontes/estruturas/objeto-delegua-classe.js +12 -13
  129. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  130. package/fontes/estruturas/objeto-padrao.js +9 -11
  131. package/fontes/estruturas/objeto-padrao.js.map +1 -1
  132. package/fontes/excecoes/erro-em-tempo-de-execucao.js +8 -26
  133. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
  134. package/fontes/importador/importador.js +21 -22
  135. package/fontes/importador/importador.js.map +1 -1
  136. package/fontes/interfaces/parametro-interface.d.ts +1 -1
  137. package/fontes/interpretador/dialetos/egua-classico.js +592 -1019
  138. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  139. package/fontes/interpretador/inferenciador.js +1 -1
  140. package/fontes/interpretador/inferenciador.js.map +1 -1
  141. package/fontes/interpretador/interpretador-com-depuracao.js +186 -336
  142. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  143. package/fontes/interpretador/interpretador.js +706 -1175
  144. package/fontes/interpretador/interpretador.js.map +1 -1
  145. package/fontes/interpretador/pilha-escopos-execucao.js +52 -57
  146. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  147. package/fontes/lexador/dialetos/lexador-birl.d.ts +1 -0
  148. package/fontes/lexador/dialetos/lexador-birl.js +55 -64
  149. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  150. package/fontes/lexador/dialetos/lexador-egua-classico.js +43 -46
  151. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  152. package/fontes/lexador/dialetos/lexador-eguap.js +59 -63
  153. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  154. package/fontes/lexador/dialetos/lexador-visualg.js +45 -54
  155. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  156. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +1 -1
  157. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
  158. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
  159. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js.map +1 -1
  160. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +24 -0
  161. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +25 -1
  162. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
  163. package/fontes/lexador/lexador-base-linha-unica.js +28 -29
  164. package/fontes/lexador/lexador-base-linha-unica.js.map +1 -1
  165. package/fontes/lexador/lexador.js +53 -57
  166. package/fontes/lexador/lexador.js.map +1 -1
  167. package/fontes/lexador/palavras-reservadas.js +1 -1
  168. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  169. package/fontes/lexador/simbolo.js +5 -6
  170. package/fontes/lexador/simbolo.js.map +1 -1
  171. package/fontes/quebras/index.js +11 -42
  172. package/fontes/quebras/index.js.map +1 -1
  173. package/fontes/resolvedor/dialetos/egua-classico.js +143 -144
  174. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  175. package/fontes/resolvedor/erro-resolvedor.js +6 -24
  176. package/fontes/resolvedor/erro-resolvedor.js.map +1 -1
  177. package/fontes/resolvedor/pilha-escopos.js +11 -12
  178. package/fontes/resolvedor/pilha-escopos.js.map +1 -1
  179. package/fontes/tipos-de-simbolos/birl.d.ts +1 -0
  180. package/fontes/tipos-de-simbolos/birl.js +1 -0
  181. package/fontes/tipos-de-simbolos/birl.js.map +1 -1
  182. package/fontes/tipos-de-simbolos/comum.d.ts +2 -0
  183. package/fontes/tipos-de-simbolos/comum.js +2 -0
  184. package/fontes/tipos-de-simbolos/comum.js.map +1 -1
  185. package/fontes/tipos-de-simbolos/visualg.d.ts +9 -0
  186. package/fontes/tipos-de-simbolos/visualg.js +9 -0
  187. package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
  188. package/index.d.ts +4 -0
  189. package/index.js +4 -26
  190. package/index.js.map +1 -1
  191. package/jest.config.js +9 -47
  192. package/jest.config.js.map +1 -1
  193. package/package.json +7 -5
  194. package/testes/__mocks__/estatistica.js +1 -1
  195. package/testes/__mocks__/estatistica.js.map +1 -1
  196. package/testes/__mocks__/fisica.js +1 -1
  197. package/testes/__mocks__/fisica.js.map +1 -1
  198. package/testes/__mocks__/matematica.js +1 -1
  199. package/testes/__mocks__/matematica.js.map +1 -1
  200. package/testes/avaliador-sintatico.test.js +27 -27
  201. package/testes/avaliador-sintatico.test.js.map +1 -1
  202. package/testes/biblioteca-global.test.js +197 -440
  203. package/testes/biblioteca-global.test.js.map +1 -1
  204. package/testes/birl/avaliador-sintatico.test.js +8 -8
  205. package/testes/birl/avaliador-sintatico.test.js.map +1 -1
  206. package/testes/birl/lexador.test.js +10 -10
  207. package/testes/birl/lexador.test.js.map +1 -1
  208. package/testes/delegua.test.js +7 -7
  209. package/testes/delegua.test.js.map +1 -1
  210. package/testes/egua-classico/avaliador-sintatico.test.js +14 -14
  211. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  212. package/testes/egua-classico/delegua.test.js +5 -5
  213. package/testes/egua-classico/delegua.test.js.map +1 -1
  214. package/testes/egua-classico/interpretador.test.js +180 -396
  215. package/testes/egua-classico/interpretador.test.js.map +1 -1
  216. package/testes/egua-classico/lexador.test.js +23 -23
  217. package/testes/egua-classico/lexador.test.js.map +1 -1
  218. package/testes/egua-classico/resolvedor.test.js +12 -12
  219. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  220. package/testes/eguap/avaliador-sintatico.test.js +11 -11
  221. package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
  222. package/testes/eguap/interpretador.test.js +189 -405
  223. package/testes/eguap/interpretador.test.js.map +1 -1
  224. package/testes/eguap/lexador.test.js +18 -18
  225. package/testes/eguap/lexador.test.js.map +1 -1
  226. package/testes/interpretador.test.js +431 -908
  227. package/testes/interpretador.test.js.map +1 -1
  228. package/testes/lexador.test.js +42 -42
  229. package/testes/lexador.test.js.map +1 -1
  230. package/testes/visualg/avaliador-sintatico.test.js +23 -23
  231. package/testes/visualg/avaliador-sintatico.test.js.map +1 -1
  232. package/testes/visualg/interpretador.test.js +16 -61
  233. package/testes/visualg/interpretador.test.js.map +1 -1
  234. package/testes/visualg/lexador.test.js +15 -15
  235. 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