@designliquido/delegua 0.1.12 → 0.2.1

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 (195) hide show
  1. package/README.md +3 -4
  2. package/bin/package.json +11 -7
  3. package/coverage/lcov-report/block-navigation.d.ts +1 -0
  4. package/coverage/lcov-report/block-navigation.js +70 -0
  5. package/coverage/lcov-report/block-navigation.js.map +1 -0
  6. package/coverage/lcov-report/prettify.d.ts +0 -0
  7. package/coverage/lcov-report/prettify.js +477 -0
  8. package/coverage/lcov-report/prettify.js.map +1 -0
  9. package/coverage/lcov-report/sorter.d.ts +1 -0
  10. package/coverage/lcov-report/sorter.js +163 -0
  11. package/coverage/lcov-report/sorter.js.map +1 -0
  12. package/index.js +2 -1
  13. package/index.js.map +1 -1
  14. package/jest.config.d.ts +3 -0
  15. package/jest.config.js +50 -0
  16. package/jest.config.js.map +1 -0
  17. package/package.json +11 -7
  18. package/src/ambiente.d.ts +5 -0
  19. package/src/ambiente.js +15 -0
  20. package/src/ambiente.js.map +1 -1
  21. package/src/avaliador-sintatico/dialetos/egua-classico.d.ts +1 -1
  22. package/src/avaliador-sintatico/dialetos/egua-classico.js +3 -3
  23. package/src/avaliador-sintatico/dialetos/egua-classico.js.map +1 -1
  24. package/src/avaliador-sintatico/dialetos/index.js +5 -1
  25. package/src/avaliador-sintatico/dialetos/index.js.map +1 -1
  26. package/src/avaliador-sintatico/index.d.ts +5 -4
  27. package/src/avaliador-sintatico/index.js +36 -27
  28. package/src/avaliador-sintatico/index.js.map +1 -1
  29. package/src/bibliotecas/biblioteca-global.d.ts +3 -1
  30. package/src/bibliotecas/biblioteca-global.js.map +1 -1
  31. package/src/construtos/atribuicao-sobrescrita.d.ts +2 -2
  32. package/src/construtos/atribuir.d.ts +2 -2
  33. package/src/construtos/binario.d.ts +2 -2
  34. package/src/construtos/chamada.d.ts +8 -0
  35. package/src/construtos/chamada.js +16 -0
  36. package/src/construtos/chamada.js.map +1 -0
  37. package/src/construtos/conjunto.d.ts +2 -2
  38. package/src/{declaracoes/stmt.d.ts → construtos/construto.d.ts} +1 -1
  39. package/src/construtos/{expr.js → construto.js} +1 -1
  40. package/src/construtos/construto.js.map +1 -0
  41. package/src/construtos/dicionario.d.ts +2 -2
  42. package/src/construtos/funcao.d.ts +2 -2
  43. package/src/construtos/get.d.ts +2 -2
  44. package/src/construtos/grouping.d.ts +2 -2
  45. package/src/construtos/index.d.ts +2 -2
  46. package/src/construtos/index.js +7 -3
  47. package/src/construtos/index.js.map +1 -1
  48. package/src/construtos/isto.d.ts +2 -2
  49. package/src/construtos/literal.d.ts +2 -2
  50. package/src/construtos/logical.d.ts +2 -2
  51. package/src/construtos/subscript.d.ts +4 -4
  52. package/src/construtos/subscript.js +2 -2
  53. package/src/construtos/subscript.js.map +1 -1
  54. package/src/construtos/super.d.ts +2 -2
  55. package/src/construtos/unario.d.ts +2 -2
  56. package/src/construtos/variavel.d.ts +2 -2
  57. package/src/construtos/vetor.d.ts +2 -2
  58. package/src/declaracoes/bloco.d.ts +2 -2
  59. package/src/declaracoes/bloco.js +2 -2
  60. package/src/declaracoes/bloco.js.map +1 -1
  61. package/src/declaracoes/classe.d.ts +2 -2
  62. package/src/declaracoes/classe.js +2 -2
  63. package/src/declaracoes/classe.js.map +1 -1
  64. package/src/declaracoes/continua.d.ts +2 -2
  65. package/src/declaracoes/continua.js +2 -2
  66. package/src/declaracoes/continua.js.map +1 -1
  67. package/src/declaracoes/declaracao.d.ts +3 -0
  68. package/src/declaracoes/declaracao.js +11 -0
  69. package/src/declaracoes/declaracao.js.map +1 -0
  70. package/src/declaracoes/enquanto.d.ts +2 -2
  71. package/src/declaracoes/enquanto.js +2 -2
  72. package/src/declaracoes/enquanto.js.map +1 -1
  73. package/src/declaracoes/escolha.d.ts +2 -2
  74. package/src/declaracoes/escolha.js +2 -2
  75. package/src/declaracoes/escolha.js.map +1 -1
  76. package/src/declaracoes/escreva.d.ts +2 -2
  77. package/src/declaracoes/escreva.js +2 -2
  78. package/src/declaracoes/escreva.js.map +1 -1
  79. package/src/declaracoes/expressao.d.ts +2 -2
  80. package/src/declaracoes/expressao.js +2 -2
  81. package/src/declaracoes/expressao.js.map +1 -1
  82. package/src/declaracoes/fazer.d.ts +2 -2
  83. package/src/declaracoes/fazer.js +2 -2
  84. package/src/declaracoes/fazer.js.map +1 -1
  85. package/src/declaracoes/funcao.d.ts +2 -2
  86. package/src/declaracoes/funcao.js +2 -2
  87. package/src/declaracoes/funcao.js.map +1 -1
  88. package/src/declaracoes/importar.d.ts +2 -2
  89. package/src/declaracoes/importar.js +2 -2
  90. package/src/declaracoes/importar.js.map +1 -1
  91. package/src/declaracoes/index.d.ts +1 -1
  92. package/src/declaracoes/index.js +6 -2
  93. package/src/declaracoes/index.js.map +1 -1
  94. package/src/declaracoes/para.d.ts +2 -2
  95. package/src/declaracoes/para.js +2 -2
  96. package/src/declaracoes/para.js.map +1 -1
  97. package/src/declaracoes/pausa.d.ts +2 -2
  98. package/src/declaracoes/pausa.js +2 -2
  99. package/src/declaracoes/pausa.js.map +1 -1
  100. package/src/declaracoes/retorna.d.ts +2 -2
  101. package/src/declaracoes/retorna.js +2 -2
  102. package/src/declaracoes/retorna.js.map +1 -1
  103. package/src/declaracoes/se.d.ts +2 -2
  104. package/src/declaracoes/se.js +2 -2
  105. package/src/declaracoes/se.js.map +1 -1
  106. package/src/declaracoes/tente.d.ts +2 -2
  107. package/src/declaracoes/tente.js +2 -2
  108. package/src/declaracoes/tente.js.map +1 -1
  109. package/src/declaracoes/var.d.ts +2 -2
  110. package/src/declaracoes/var.js +2 -2
  111. package/src/declaracoes/var.js.map +1 -1
  112. package/src/delegua.d.ts +3 -3
  113. package/src/delegua.js +20 -17
  114. package/src/delegua.js.map +1 -1
  115. package/src/estruturas/chamavel.d.ts +5 -0
  116. package/src/estruturas/chamavel.js +16 -0
  117. package/src/estruturas/{callable.js.map → chamavel.js.map} +1 -1
  118. package/src/estruturas/classe.d.ts +2 -2
  119. package/src/estruturas/classe.js +2 -2
  120. package/src/estruturas/funcao-padrao.d.ts +5 -5
  121. package/src/estruturas/funcao-padrao.js +2 -2
  122. package/src/estruturas/funcao-padrao.js.map +1 -1
  123. package/src/estruturas/funcao.d.ts +2 -2
  124. package/src/estruturas/funcao.js +3 -3
  125. package/src/estruturas/index.d.ts +1 -1
  126. package/src/estruturas/index.js +6 -2
  127. package/src/estruturas/index.js.map +1 -1
  128. package/src/excecoes/excecao-continuar.d.ts +2 -0
  129. package/src/excecoes/{continue-exception.js → excecao-continuar.js} +7 -7
  130. package/src/excecoes/excecao-continuar.js.map +1 -0
  131. package/src/excecoes/excecao-quebra.d.ts +2 -0
  132. package/src/excecoes/{break-exception.js → excecao-quebra.js} +7 -7
  133. package/src/excecoes/excecao-quebra.js.map +1 -0
  134. package/src/excecoes/excecao-retornar.d.ts +4 -0
  135. package/src/excecoes/{return-exception.js → excecao-retornar.js} +8 -8
  136. package/src/excecoes/{return-exception.js.map → excecao-retornar.js.map} +1 -1
  137. package/src/excecoes/index.d.ts +3 -3
  138. package/src/excecoes/index.js +8 -4
  139. package/src/excecoes/index.js.map +1 -1
  140. package/src/interfaces/avaliador-sintatico-interface.d.ts +1 -1
  141. package/src/interfaces/index.js +5 -1
  142. package/src/interfaces/index.js.map +1 -1
  143. package/src/interfaces/lexador-interface.d.ts +10 -10
  144. package/src/interfaces/resolvedor-interface.d.ts +3 -2
  145. package/src/interfaces/simbolo-interface.d.ts +1 -1
  146. package/src/interpretador/dialetos/egua-classico.d.ts +1 -1
  147. package/src/interpretador/dialetos/egua-classico.js +27 -27
  148. package/src/interpretador/dialetos/egua-classico.js.map +1 -1
  149. package/src/interpretador/dialetos/index.js +5 -1
  150. package/src/interpretador/dialetos/index.js.map +1 -1
  151. package/src/interpretador/index.d.ts +4 -3
  152. package/src/interpretador/index.js +80 -69
  153. package/src/interpretador/index.js.map +1 -1
  154. package/src/lexador/dialetos/egua-classico.d.ts +9 -9
  155. package/src/lexador/dialetos/egua-classico.js +46 -47
  156. package/src/lexador/dialetos/egua-classico.js.map +1 -1
  157. package/src/lexador/dialetos/index.js +5 -1
  158. package/src/lexador/dialetos/index.js.map +1 -1
  159. package/src/lexador/index.d.ts +30 -19
  160. package/src/lexador/index.js +226 -122
  161. package/src/lexador/index.js.map +1 -1
  162. package/src/resolvedor/dialetos/egua-classico.d.ts +5 -3
  163. package/src/resolvedor/dialetos/egua-classico.js +9 -9
  164. package/src/resolvedor/dialetos/egua-classico.js.map +1 -1
  165. package/src/resolvedor/dialetos/index.js +5 -1
  166. package/src/resolvedor/dialetos/index.js.map +1 -1
  167. package/src/resolvedor/index.d.ts +8 -5
  168. package/src/resolvedor/index.js +51 -51
  169. package/src/resolvedor/index.js.map +1 -1
  170. package/testes/avaliador-sintatico.test.d.ts +1 -0
  171. package/testes/avaliador-sintatico.test.js +30 -0
  172. package/testes/avaliador-sintatico.test.js.map +1 -0
  173. package/testes/interpretador.test.d.ts +1 -0
  174. package/testes/interpretador.test.js +155 -0
  175. package/testes/interpretador.test.js.map +1 -0
  176. package/testes/lexador.test.d.ts +1 -0
  177. package/testes/lexador.test.js +74 -0
  178. package/testes/lexador.test.js.map +1 -0
  179. package/testes/resolvedor.test.d.ts +1 -0
  180. package/testes/resolvedor.test.js +35 -0
  181. package/testes/resolvedor.test.js.map +1 -0
  182. package/src/construtos/call.d.ts +0 -8
  183. package/src/construtos/call.js +0 -16
  184. package/src/construtos/call.js.map +0 -1
  185. package/src/construtos/expr.d.ts +0 -3
  186. package/src/construtos/expr.js.map +0 -1
  187. package/src/declaracoes/stmt.js +0 -11
  188. package/src/declaracoes/stmt.js.map +0 -1
  189. package/src/estruturas/callable.d.ts +0 -5
  190. package/src/estruturas/callable.js +0 -16
  191. package/src/excecoes/break-exception.d.ts +0 -2
  192. package/src/excecoes/break-exception.js.map +0 -1
  193. package/src/excecoes/continue-exception.d.ts +0 -2
  194. package/src/excecoes/continue-exception.js.map +0 -1
  195. package/src/excecoes/return-exception.d.ts +0 -4
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var delegua_1 = require("../src/delegua");
4
+ describe('Interpretador', function () {
5
+ describe('interpretar()', function () {
6
+ var delegua = new delegua_1.Delegua('delegua');
7
+ describe('Cenários de sucesso', function () {
8
+ describe('Atribuições', function () {
9
+ it('Trivial', function () {
10
+ var simbolos = delegua.lexador.mapear(["var a = 1"]);
11
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
12
+ delegua.resolvedor.resolver(declaracoes);
13
+ delegua.interpretador.interpretar(declaracoes);
14
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
15
+ });
16
+ it('Vetor', function () {
17
+ var simbolos = delegua.lexador.mapear(["var a = [1, 2, 3]"]);
18
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
19
+ delegua.resolvedor.resolver(declaracoes);
20
+ delegua.interpretador.interpretar(declaracoes);
21
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
22
+ });
23
+ it('Dicionário', function () {
24
+ var simbolos = delegua.lexador.mapear(["var a = {'a': 1, 'b': 2}"]);
25
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
26
+ delegua.resolvedor.resolver(declaracoes);
27
+ delegua.interpretador.interpretar(declaracoes);
28
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
29
+ });
30
+ });
31
+ describe('Acesso a variáveis e objetos', function () {
32
+ it('Acesso a elementos de vetor', function () {
33
+ var simbolos = delegua.lexador.mapear(["var a = [1, 2, 3];\nescreva(a[1])"]);
34
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
35
+ delegua.resolvedor.resolver(declaracoes);
36
+ delegua.interpretador.interpretar(declaracoes);
37
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
38
+ });
39
+ it('Acesso a elementos de dicionário', function () {
40
+ var simbolos = delegua.lexador.mapear(["var a = {'a': 1, 'b': 2};\nescreva(a['b'])"]);
41
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
42
+ delegua.resolvedor.resolver(declaracoes);
43
+ delegua.interpretador.interpretar(declaracoes);
44
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
45
+ });
46
+ });
47
+ describe('escreva()', function () {
48
+ it('Olá Mundo (escreva() e literal)', function () {
49
+ var simbolos = delegua.lexador.mapear(["escreva('Olá mundo')"]);
50
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
51
+ delegua.resolvedor.resolver(declaracoes);
52
+ delegua.interpretador.interpretar(declaracoes);
53
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
54
+ });
55
+ it('nulo', function () {
56
+ var simbolos = delegua.lexador.mapear(["escreva(nulo)"]);
57
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
58
+ delegua.resolvedor.resolver(declaracoes);
59
+ delegua.interpretador.interpretar(declaracoes);
60
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
61
+ });
62
+ });
63
+ describe('Operações matemáticas', function () {
64
+ it('Operações matemáticas - Trivial', function () {
65
+ var simbolos = delegua.lexador.mapear(["escreva(5 + 4 * 3 - 2 ** 1 / 6 % 10)"]);
66
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
67
+ delegua.resolvedor.resolver(declaracoes);
68
+ delegua.interpretador.interpretar(declaracoes);
69
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
70
+ });
71
+ });
72
+ describe('Operações lógicas', function () {
73
+ it('Operações lógicas - ou', function () {
74
+ var simbolos = delegua.lexador.mapear(["escreva(verdadeiro ou falso)"]);
75
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
76
+ delegua.resolvedor.resolver(declaracoes);
77
+ delegua.interpretador.interpretar(declaracoes);
78
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
79
+ });
80
+ it('Operações lógicas - e', function () {
81
+ var simbolos = delegua.lexador.mapear(["escreva(verdadeiro e falso)"]);
82
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
83
+ delegua.resolvedor.resolver(declaracoes);
84
+ delegua.interpretador.interpretar(declaracoes);
85
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
86
+ });
87
+ it('Operações lógicas - em', function () {
88
+ var simbolos = delegua.lexador.mapear(["escreva(2 em [1, 2, 3])"]);
89
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
90
+ delegua.resolvedor.resolver(declaracoes);
91
+ delegua.interpretador.interpretar(declaracoes);
92
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
93
+ });
94
+ });
95
+ describe('Condicionais', function () {
96
+ it('Condicionais - condição verdadeira', function () {
97
+ var simbolos = delegua.lexador.mapear(["se (1 < 2) { escreva('Um menor que dois') } senão { escreva('Nunca será executado') }"]);
98
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
99
+ delegua.resolvedor.resolver(declaracoes);
100
+ delegua.interpretador.interpretar(declaracoes);
101
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
102
+ });
103
+ it('Condicionais - condição falsa', function () {
104
+ var simbolos = delegua.lexador.mapear(["se (1 > 2) { escreva('Nunca acontece') } senão { escreva('Um não é maior que dois') }"]);
105
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
106
+ delegua.resolvedor.resolver(declaracoes);
107
+ delegua.interpretador.interpretar(declaracoes);
108
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
109
+ });
110
+ });
111
+ describe('Laços de repetição', function () {
112
+ it('Laços de repetição - enquanto', function () {
113
+ var simbolos = delegua.lexador.mapear(["var a = 0;\nenquanto (a < 10) { a = a + 1 }"]);
114
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
115
+ delegua.resolvedor.resolver(declaracoes);
116
+ delegua.interpretador.interpretar(declaracoes);
117
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
118
+ });
119
+ it('Laços de repetição - fazer ... enquanto', function () {
120
+ var simbolos = delegua.lexador.mapear(["var a = 0;\nfazer { a = a + 1 } enquanto (a < 10)"]);
121
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
122
+ delegua.resolvedor.resolver(declaracoes);
123
+ delegua.interpretador.interpretar(declaracoes);
124
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
125
+ });
126
+ it('Laços de repetição - para', function () {
127
+ var simbolos = delegua.lexador.mapear(["para (var i = 0; i < 10; i = i + 1) { escreva(i) }"]);
128
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
129
+ delegua.resolvedor.resolver(declaracoes);
130
+ delegua.interpretador.interpretar(declaracoes);
131
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(false);
132
+ });
133
+ });
134
+ });
135
+ describe('Cenários de falha', function () {
136
+ describe('Acesso a variáveis e objetos', function () {
137
+ it('Acesso a elementos de vetor', function () {
138
+ var simbolos = delegua.lexador.mapear(["var a = [1, 2, 3];\nescreva(a[4])"]);
139
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
140
+ delegua.resolvedor.resolver(declaracoes);
141
+ delegua.interpretador.interpretar(declaracoes);
142
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(true);
143
+ });
144
+ it('Acesso a elementos de dicionário', function () {
145
+ var simbolos = delegua.lexador.mapear(["var a = {'a': 1, 'b': 2};\nescreva(a['c'])"]);
146
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
147
+ delegua.resolvedor.resolver(declaracoes);
148
+ delegua.interpretador.interpretar(declaracoes);
149
+ expect(delegua.teveErroEmTempoDeExecucao).toBe(true);
150
+ });
151
+ });
152
+ });
153
+ });
154
+ });
155
+ //# sourceMappingURL=interpretador.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretador.test.js","sourceRoot":"","sources":["../../testes/interpretador.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var delegua_1 = require("../src/delegua");
4
+ describe('Lexador', function () {
5
+ describe('mapear()', function () {
6
+ var delegua = new delegua_1.Delegua('delegua');
7
+ describe('Cenários de sucesso', function () {
8
+ it('Sucesso - Código vazio', function () {
9
+ var resultado = delegua.lexador.mapear(['']);
10
+ expect(resultado).toBeTruthy();
11
+ expect(resultado).toHaveLength(0);
12
+ });
13
+ it('Sucesso - Ponto-e-vírgula, opcional', function () {
14
+ var resultado = delegua.lexador.mapear([';;;;;;;;;;;;;;;;;;;;;']);
15
+ expect(resultado).toBeTruthy();
16
+ expect(resultado).toHaveLength(0);
17
+ });
18
+ it('Sucesso - Olá mundo', function () {
19
+ var resultado = delegua.lexador.mapear(["escreva('Olá mundo')"]);
20
+ expect(resultado).toBeTruthy();
21
+ expect(resultado).toHaveLength(4);
22
+ expect(resultado).toEqual(expect.arrayContaining([
23
+ expect.objectContaining({ tipo: 'ESCREVA' }),
24
+ expect.objectContaining({ tipo: 'PARENTESE_ESQUERDO' }),
25
+ expect.objectContaining({ tipo: 'TEXTO' }),
26
+ expect.objectContaining({ tipo: 'PARENTESE_DIREITO' }),
27
+ ]));
28
+ });
29
+ it('Sucesso - Se', function () {
30
+ var resultado = delegua.lexador.mapear(["se (1 == 1) { escreva('Tautologia') }"]);
31
+ expect(resultado).toBeTruthy();
32
+ expect(resultado).toHaveLength(12);
33
+ expect(resultado).toEqual(expect.arrayContaining([
34
+ expect.objectContaining({ tipo: 'SE' }),
35
+ expect.objectContaining({ tipo: 'ESCREVA' }),
36
+ expect.objectContaining({ tipo: 'PARENTESE_ESQUERDO' }),
37
+ expect.objectContaining({ tipo: 'TEXTO' }),
38
+ expect.objectContaining({ tipo: 'PARENTESE_DIREITO' }),
39
+ expect.objectContaining({ tipo: 'CHAVE_ESQUERDA' }),
40
+ expect.objectContaining({ tipo: 'CHAVE_DIREITA' }),
41
+ expect.objectContaining({ tipo: 'IGUAL_IGUAL' }),
42
+ expect.objectContaining({ tipo: 'NUMERO' }),
43
+ ]));
44
+ });
45
+ it('Sucesso - Operação Matemática (soma e igualdade)', function () {
46
+ var resultado = delegua.lexador.mapear(['2 + 3 == 5']);
47
+ expect(resultado).toBeTruthy();
48
+ expect(resultado).toHaveLength(5);
49
+ expect(resultado).toEqual(expect.arrayContaining([
50
+ expect.objectContaining({ tipo: 'ADICAO' }),
51
+ expect.objectContaining({ tipo: 'IGUAL_IGUAL' }),
52
+ expect.objectContaining({ tipo: 'NUMERO' }),
53
+ ]));
54
+ });
55
+ it('Sucesso - Atribução de variável e Operação Matemática (diferença, multiplicação e módulo)', function () {
56
+ var resultado = delegua.lexador.mapear(['var numero = 1 * 2 - 3 % 4']);
57
+ expect(resultado).toBeTruthy();
58
+ });
59
+ });
60
+ describe('Cenários de falha', function () {
61
+ it('Falha léxica - texto sem fim', function () {
62
+ var resultado = delegua.lexador.mapear(['"texto sem fim']);
63
+ expect(resultado).toHaveLength(0);
64
+ expect(delegua.teveErro).toBe(true);
65
+ });
66
+ it('Falha léxica - caractere inesperado', function () {
67
+ var resultado = delegua.lexador.mapear(['平']);
68
+ expect(resultado).toHaveLength(0);
69
+ expect(delegua.teveErro).toBe(true);
70
+ });
71
+ });
72
+ });
73
+ });
74
+ //# sourceMappingURL=lexador.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexador.test.js","sourceRoot":"","sources":["../../testes/lexador.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var delegua_1 = require("../src/delegua");
4
+ describe('Resolvedor', function () {
5
+ describe('resolver()', function () {
6
+ var delegua = new delegua_1.Delegua('delegua');
7
+ it('Sucesso', function () {
8
+ var simbolos = delegua.lexador.mapear(["escreva('Olá mundo')"]);
9
+ var declaracoes = delegua.avaliadorSintatico.analisar(simbolos);
10
+ delegua.resolvedor.resolver(declaracoes);
11
+ expect(delegua.resolvedor.escopos).toBeTruthy();
12
+ expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
13
+ expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
14
+ });
15
+ it('Sucesso - Vetor vazio', function () {
16
+ delegua.resolvedor.resolver([]);
17
+ expect(delegua.resolvedor.escopos).toBeTruthy();
18
+ expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
19
+ expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
20
+ });
21
+ it('Sucesso - Undefined', function () {
22
+ delegua.resolvedor.resolver(undefined);
23
+ expect(delegua.resolvedor.escopos).toBeTruthy();
24
+ expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
25
+ expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
26
+ });
27
+ it('Sucesso - Null', function () {
28
+ delegua.resolvedor.resolver(null);
29
+ expect(delegua.resolvedor.escopos).toBeTruthy();
30
+ expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
31
+ expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
32
+ });
33
+ });
34
+ });
35
+ //# sourceMappingURL=resolvedor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvedor.test.js","sourceRoot":"","sources":["../../testes/resolvedor.test.ts"],"names":[],"mappings":";;AAAA,0CAAyC;AAEzC,QAAQ,CAAC,YAAY,EAAE;IACnB,QAAQ,CAAC,YAAY,EAAE;QACnB,IAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,SAAS,CAAC,CAAC;QAEvC,EAAE,CAAC,SAAS,EAAE;YACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClE,IAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE;YACjB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { Expr } from "./expr";
2
- export declare class Call implements Expr {
3
- callee: any;
4
- argumentos: any;
5
- parentese: any;
6
- constructor(callee: any, parentese: any, argumentos: any);
7
- aceitar(visitante: any): any;
8
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Call = void 0;
4
- var Call = /** @class */ (function () {
5
- function Call(callee, parentese, argumentos) {
6
- this.callee = callee;
7
- this.parentese = parentese;
8
- this.argumentos = argumentos;
9
- }
10
- Call.prototype.aceitar = function (visitante) {
11
- return visitante.visitarExpressaoDeChamada(this);
12
- };
13
- return Call;
14
- }());
15
- exports.Call = Call;
16
- //# sourceMappingURL=call.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../src/construtos/call.ts"],"names":[],"mappings":";;;AAGA;IAKI,cAAY,MAAW,EAAE,SAAc,EAAE,UAAe;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,sBAAO,GAAP,UAAQ,SAAc;QAClB,OAAO,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACL,WAAC;AAAD,CAAC,AAdD,IAcC;AAdY,oBAAI"}
@@ -1,3 +0,0 @@
1
- export interface Expr {
2
- aceitar(visitante: any): any;
3
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"expr.js","sourceRoot":"","sources":["../../../src/construtos/expr.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Stmt = void 0;
4
- var Stmt = /** @class */ (function () {
5
- function Stmt() {
6
- }
7
- Stmt.prototype.aceitar = function (visitante) { };
8
- return Stmt;
9
- }());
10
- exports.Stmt = Stmt;
11
- //# sourceMappingURL=stmt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stmt.js","sourceRoot":"","sources":["../../../src/declaracoes/stmt.ts"],"names":[],"mappings":";;;AAAA;IAAA;IAEA,CAAC;IADG,sBAAO,GAAP,UAAQ,SAAc,IAAS,CAAC;IACpC,WAAC;AAAD,CAAC,AAFD,IAEC;AAFY,oBAAI"}
@@ -1,5 +0,0 @@
1
- export declare class Callable {
2
- valorAridade: any;
3
- aridade(): any;
4
- chamar(interpretador?: any, argumentos?: any, simbolo?: any): any;
5
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Callable = void 0;
4
- var Callable = /** @class */ (function () {
5
- function Callable() {
6
- }
7
- Callable.prototype.aridade = function () {
8
- return this.valorAridade;
9
- };
10
- Callable.prototype.chamar = function (interpretador, argumentos, simbolo) {
11
- throw new Error("Este método não deveria ser chamado.");
12
- };
13
- return Callable;
14
- }());
15
- exports.Callable = Callable;
16
- //# sourceMappingURL=callable.js.map
@@ -1,2 +0,0 @@
1
- export declare class BreakException extends Error {
2
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"break-exception.js","sourceRoot":"","sources":["../../../src/excecoes/break-exception.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAAoC,kCAAK;IAAzC;;IAA4C,CAAC;IAAD,qBAAC;AAAD,CAAC,AAA7C,CAAoC,KAAK,GAAI;AAAhC,wCAAc"}
@@ -1,2 +0,0 @@
1
- export declare class ContinueException extends Error {
2
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"continue-exception.js","sourceRoot":"","sources":["../../../src/excecoes/continue-exception.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAAuC,qCAAK;IAA5C;;IAA+C,CAAC;IAAD,wBAAC;AAAD,CAAC,AAAhD,CAAuC,KAAK,GAAI;AAAnC,8CAAiB"}
@@ -1,4 +0,0 @@
1
- export declare class ReturnException extends Error {
2
- valor: any;
3
- constructor(valor: any);
4
- }