@designliquido/delegua 0.10.6 → 0.10.7

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 (101) hide show
  1. package/bin/package.json +4 -2
  2. package/fontes/bibliotecas/importar-biblioteca.d.ts +1 -1
  3. package/fontes/bibliotecas/importar-biblioteca.js +28 -6
  4. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  5. package/fontes/delegua.d.ts +4 -1
  6. package/fontes/delegua.js +13 -9
  7. package/fontes/delegua.js.map +1 -1
  8. package/fontes/interpretador/interpretador.js +1 -1
  9. package/fontes/interpretador/interpretador.js.map +1 -1
  10. package/fontes/tradutores/{index.d.ts → tradutor-javascript.d.ts} +0 -0
  11. package/fontes/tradutores/{index.js → tradutor-javascript.js} +18 -3
  12. package/fontes/tradutores/tradutor-javascript.js.map +1 -0
  13. package/fontes/tradutores/tradutor-reverso-javascript.d.ts +9 -0
  14. package/fontes/tradutores/tradutor-reverso-javascript.js +43 -0
  15. package/fontes/tradutores/tradutor-reverso-javascript.js.map +1 -0
  16. package/package.json +4 -2
  17. package/coverage/lcov-report/block-navigation.d.ts +0 -1
  18. package/coverage/lcov-report/block-navigation.js +0 -70
  19. package/coverage/lcov-report/block-navigation.js.map +0 -1
  20. package/coverage/lcov-report/prettify.d.ts +0 -0
  21. package/coverage/lcov-report/prettify.js +0 -477
  22. package/coverage/lcov-report/prettify.js.map +0 -1
  23. package/coverage/lcov-report/sorter.d.ts +0 -1
  24. package/coverage/lcov-report/sorter.js +0 -163
  25. package/coverage/lcov-report/sorter.js.map +0 -1
  26. package/docs/assets/main.d.ts +0 -0
  27. package/docs/assets/main.js +0 -604
  28. package/docs/assets/main.js.map +0 -1
  29. package/docs/assets/search.d.ts +0 -0
  30. package/docs/assets/search.js +0 -2
  31. package/docs/assets/search.js.map +0 -1
  32. package/fontes/tradutores/index.js.map +0 -1
  33. package/jest.config.d.ts +0 -3
  34. package/jest.config.js +0 -12
  35. package/jest.config.js.map +0 -1
  36. package/testes/__mocks__/estatistica.d.ts +0 -2
  37. package/testes/__mocks__/estatistica.js +0 -4
  38. package/testes/__mocks__/estatistica.js.map +0 -1
  39. package/testes/__mocks__/fisica.d.ts +0 -2
  40. package/testes/__mocks__/fisica.js +0 -4
  41. package/testes/__mocks__/fisica.js.map +0 -1
  42. package/testes/__mocks__/matematica.d.ts +0 -2
  43. package/testes/__mocks__/matematica.js +0 -4
  44. package/testes/__mocks__/matematica.js.map +0 -1
  45. package/testes/avaliador-sintatico.test.d.ts +0 -1
  46. package/testes/avaliador-sintatico.test.js +0 -63
  47. package/testes/avaliador-sintatico.test.js.map +0 -1
  48. package/testes/biblioteca-global.test.d.ts +0 -1
  49. package/testes/biblioteca-global.test.js +0 -215
  50. package/testes/biblioteca-global.test.js.map +0 -1
  51. package/testes/birl/avaliador-sintatico.test.d.ts +0 -1
  52. package/testes/birl/avaliador-sintatico.test.js +0 -18
  53. package/testes/birl/avaliador-sintatico.test.js.map +0 -1
  54. package/testes/birl/lexador.test.d.ts +0 -1
  55. package/testes/birl/lexador.test.js +0 -31
  56. package/testes/birl/lexador.test.js.map +0 -1
  57. package/testes/delegua.test.d.ts +0 -1
  58. package/testes/delegua.test.js +0 -16
  59. package/testes/delegua.test.js.map +0 -1
  60. package/testes/egua-classico/avaliador-sintatico.test.d.ts +0 -1
  61. package/testes/egua-classico/avaliador-sintatico.test.js +0 -27
  62. package/testes/egua-classico/avaliador-sintatico.test.js.map +0 -1
  63. package/testes/egua-classico/delegua.test.d.ts +0 -1
  64. package/testes/egua-classico/delegua.test.js +0 -11
  65. package/testes/egua-classico/delegua.test.js.map +0 -1
  66. package/testes/egua-classico/interpretador.test.d.ts +0 -1
  67. package/testes/egua-classico/interpretador.test.js +0 -199
  68. package/testes/egua-classico/interpretador.test.js.map +0 -1
  69. package/testes/egua-classico/lexador.test.d.ts +0 -1
  70. package/testes/egua-classico/lexador.test.js +0 -80
  71. package/testes/egua-classico/lexador.test.js.map +0 -1
  72. package/testes/egua-classico/resolvedor.test.d.ts +0 -1
  73. package/testes/egua-classico/resolvedor.test.js +0 -37
  74. package/testes/egua-classico/resolvedor.test.js.map +0 -1
  75. package/testes/eguap/avaliador-sintatico.test.d.ts +0 -1
  76. package/testes/eguap/avaliador-sintatico.test.js +0 -30
  77. package/testes/eguap/avaliador-sintatico.test.js.map +0 -1
  78. package/testes/eguap/interpretador.test.d.ts +0 -1
  79. package/testes/eguap/interpretador.test.js +0 -208
  80. package/testes/eguap/interpretador.test.js.map +0 -1
  81. package/testes/eguap/lexador.test.d.ts +0 -1
  82. package/testes/eguap/lexador.test.js +0 -53
  83. package/testes/eguap/lexador.test.js.map +0 -1
  84. package/testes/interpretador.test.d.ts +0 -1
  85. package/testes/interpretador.test.js +0 -478
  86. package/testes/interpretador.test.js.map +0 -1
  87. package/testes/lexador.test.d.ts +0 -1
  88. package/testes/lexador.test.js +0 -166
  89. package/testes/lexador.test.js.map +0 -1
  90. package/testes/tradutores/tradutor-javascript.test.d.ts +0 -1
  91. package/testes/tradutores/tradutor-javascript.test.js +0 -413
  92. package/testes/tradutores/tradutor-javascript.test.js.map +0 -1
  93. package/testes/visualg/avaliador-sintatico.test.d.ts +0 -1
  94. package/testes/visualg/avaliador-sintatico.test.js +0 -113
  95. package/testes/visualg/avaliador-sintatico.test.js.map +0 -1
  96. package/testes/visualg/interpretador.test.d.ts +0 -1
  97. package/testes/visualg/interpretador.test.js +0 -24
  98. package/testes/visualg/interpretador.test.js.map +0 -1
  99. package/testes/visualg/lexador.test.d.ts +0 -1
  100. package/testes/visualg/lexador.test.js +0 -67
  101. package/testes/visualg/lexador.test.js.map +0 -1
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const delegua_1 = require("../fontes/delegua");
7
- const delegua_2 = __importDefault(require("../fontes/tipos-de-simbolos/delegua"));
8
- describe('Lexador', () => {
9
- describe('mapear()', () => {
10
- let delegua;
11
- beforeEach(() => {
12
- delegua = new delegua_1.Delegua('delegua');
13
- });
14
- describe('Cenários de sucesso', () => {
15
- it('Sucesso - Código vazio', () => {
16
- const resultado = delegua.lexador.mapear([''], -1);
17
- expect(resultado).toBeTruthy();
18
- expect(resultado.simbolos).toHaveLength(0);
19
- });
20
- it('Sucesso - Ponto-e-vírgula, opcional', () => {
21
- const resultado = delegua.lexador.mapear([';;;;;;;;;;;;;;;;;;;;;'], -1);
22
- expect(resultado).toBeTruthy();
23
- expect(resultado.simbolos).toHaveLength(0);
24
- });
25
- it('Sucesso - Olá mundo', () => {
26
- const resultado = delegua.lexador.mapear(["escreva('Olá mundo')"], -1);
27
- expect(resultado).toBeTruthy();
28
- expect(resultado.simbolos).toHaveLength(4);
29
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
30
- expect.objectContaining({ tipo: delegua_2.default.ESCREVA }),
31
- expect.objectContaining({ tipo: delegua_2.default.PARENTESE_ESQUERDO }),
32
- expect.objectContaining({ tipo: delegua_2.default.TEXTO }),
33
- expect.objectContaining({ tipo: delegua_2.default.PARENTESE_DIREITO }),
34
- ]));
35
- });
36
- it('Sucesso - Soma - Maior Igual', () => {
37
- const resultado = delegua.lexador.mapear(["var valor = 1", "valor += 2"], -1);
38
- expect(resultado).toBeTruthy();
39
- expect(resultado.simbolos).toHaveLength(7);
40
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
41
- expect.objectContaining({ tipo: delegua_2.default.VARIAVEL }),
42
- expect.objectContaining({ tipo: delegua_2.default.IGUAL }),
43
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
44
- expect.objectContaining({ tipo: delegua_2.default.IDENTIFICADOR }),
45
- expect.objectContaining({ tipo: delegua_2.default.MAIS_IGUAL }),
46
- ]));
47
- });
48
- it('Sucesso - Subtração - Menor Igual', () => {
49
- const resultado = delegua.lexador.mapear(["var valor = 5", "valor -= 2"], -1);
50
- expect(resultado).toBeTruthy();
51
- expect(resultado.simbolos).toHaveLength(7);
52
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
53
- expect.objectContaining({ tipo: delegua_2.default.VARIAVEL }),
54
- expect.objectContaining({ tipo: delegua_2.default.IDENTIFICADOR }),
55
- expect.objectContaining({ tipo: delegua_2.default.IGUAL }),
56
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
57
- expect.objectContaining({ tipo: delegua_2.default.MENOS_IGUAL }),
58
- ]));
59
- });
60
- it('Sucesso - Multiplicação Igual', () => {
61
- const resultado = delegua.lexador.mapear(["var valor = 5", "valor *= 2"], -1);
62
- expect(resultado).toBeTruthy();
63
- expect(resultado.simbolos).toHaveLength(7);
64
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
65
- expect.objectContaining({ tipo: delegua_2.default.VARIAVEL }),
66
- expect.objectContaining({ tipo: delegua_2.default.IGUAL }),
67
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
68
- expect.objectContaining({ tipo: delegua_2.default.IDENTIFICADOR }),
69
- expect.objectContaining({ tipo: delegua_2.default.MULTIPLICACAO_IGUAL }),
70
- ]));
71
- });
72
- it('Sucesso - Diferente Igual', () => {
73
- const resultado = delegua.lexador.mapear(["1 != 2"], -1);
74
- expect(resultado).toBeTruthy();
75
- expect(resultado.simbolos).toHaveLength(3);
76
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
77
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
78
- expect.objectContaining({ tipo: delegua_2.default.DIFERENTE }),
79
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
80
- ]));
81
- });
82
- it('Sucesso - Divisão Igual', () => {
83
- const resultado = delegua.lexador.mapear(["var valor = 10", "valor /= 2"], -1);
84
- expect(resultado).toBeTruthy();
85
- expect(resultado.simbolos).toHaveLength(7);
86
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
87
- expect.objectContaining({ tipo: delegua_2.default.VARIAVEL }),
88
- expect.objectContaining({ tipo: delegua_2.default.IDENTIFICADOR }),
89
- expect.objectContaining({ tipo: delegua_2.default.IGUAL }),
90
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
91
- expect.objectContaining({ tipo: delegua_2.default.DIVISAO_IGUAL }),
92
- ]));
93
- });
94
- it('Sucesso - Módulo Igual', () => {
95
- const resultado = delegua.lexador.mapear(["var valor = 5", "valor %= 2"], -1);
96
- expect(resultado).toBeTruthy();
97
- expect(resultado.simbolos).toHaveLength(7);
98
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
99
- expect.objectContaining({ tipo: delegua_2.default.VARIAVEL }),
100
- expect.objectContaining({ tipo: delegua_2.default.IDENTIFICADOR }),
101
- expect.objectContaining({ tipo: delegua_2.default.IGUAL }),
102
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
103
- expect.objectContaining({ tipo: delegua_2.default.MODULO_IGUAL }),
104
- ]));
105
- });
106
- it('Sucesso - Comentários multilinha', () => {
107
- const resultado = delegua.lexador.mapear(["/* comentário ", "outro comentário*/"], -1);
108
- expect(resultado).toBeTruthy();
109
- expect(resultado.simbolos).toHaveLength(0);
110
- });
111
- it('Sucesso - Comentários uma linha', () => {
112
- const resultado = delegua.lexador.mapear(["// comentário ", "// outro comentário"], -1);
113
- expect(resultado).toBeTruthy();
114
- expect(resultado.simbolos).toHaveLength(0);
115
- });
116
- it('Sucesso - Comentários multilinha', () => {
117
- const resultado = delegua.lexador.mapear(["/* comentário ", "outro comentário*/"], -1);
118
- expect(resultado).toBeTruthy();
119
- expect(resultado.simbolos).toHaveLength(0);
120
- });
121
- it('Sucesso - Se', () => {
122
- const resultado = delegua.lexador.mapear(["se (1 == 1) { escreva('Tautologia') }"], -1);
123
- expect(resultado).toBeTruthy();
124
- expect(resultado.simbolos).toHaveLength(12);
125
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
126
- expect.objectContaining({ tipo: delegua_2.default.SE }),
127
- expect.objectContaining({ tipo: delegua_2.default.ESCREVA }),
128
- expect.objectContaining({ tipo: delegua_2.default.PARENTESE_ESQUERDO }),
129
- expect.objectContaining({ tipo: delegua_2.default.TEXTO }),
130
- expect.objectContaining({ tipo: delegua_2.default.PARENTESE_DIREITO }),
131
- expect.objectContaining({ tipo: delegua_2.default.CHAVE_ESQUERDA }),
132
- expect.objectContaining({ tipo: delegua_2.default.CHAVE_DIREITA }),
133
- expect.objectContaining({ tipo: delegua_2.default.IGUAL_IGUAL }),
134
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
135
- ]));
136
- });
137
- it('Sucesso - Operação Matemática (soma e igualdade)', () => {
138
- const resultado = delegua.lexador.mapear(['2 + 3 == 5'], -1);
139
- expect(resultado).toBeTruthy();
140
- expect(resultado.simbolos).toHaveLength(5);
141
- expect(resultado.simbolos).toEqual(expect.arrayContaining([
142
- expect.objectContaining({ tipo: delegua_2.default.ADICAO }),
143
- expect.objectContaining({ tipo: delegua_2.default.IGUAL_IGUAL }),
144
- expect.objectContaining({ tipo: delegua_2.default.NUMERO }),
145
- ]));
146
- });
147
- it('Sucesso - Atribução de variável e Operação Matemática (diferença, multiplicação e módulo)', () => {
148
- const resultado = delegua.lexador.mapear(['var numero = 1 * 2 - 3 % 4'], -1);
149
- expect(resultado).toBeTruthy();
150
- });
151
- });
152
- describe('Cenários de falha', () => {
153
- it('Falha léxica - texto sem fim', () => {
154
- const resultado = delegua.lexador.mapear(['"texto sem fim'], -1);
155
- expect(resultado.simbolos).toHaveLength(0);
156
- expect(resultado.erros).toHaveLength(1);
157
- });
158
- it('Falha léxica - caractere inesperado', () => {
159
- const resultado = delegua.lexador.mapear(['平'], -1);
160
- expect(resultado.simbolos).toHaveLength(0);
161
- expect(resultado.erros).toHaveLength(1);
162
- });
163
- });
164
- });
165
- });
166
- //# sourceMappingURL=lexador.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lexador.test.js","sourceRoot":"","sources":["../../testes/lexador.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,413 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const construtos_1 = require("../../fontes/construtos");
7
- const declaracoes_1 = require("../../fontes/declaracoes");
8
- const lexador_1 = require("../../fontes/lexador");
9
- const tradutores_1 = require("../../fontes/tradutores");
10
- const delegua_1 = __importDefault(require("../../fontes/tipos-de-simbolos/delegua"));
11
- const delegua_2 = require("../../fontes/delegua");
12
- describe('Tradutor Delégua -> JavaScript', () => {
13
- const tradutor = new tradutores_1.TradutorJavaScript();
14
- describe('Programático', () => {
15
- it('se -> if, programático', () => {
16
- const se = new declaracoes_1.Se(new construtos_1.Binario(-1, new construtos_1.Variavel(-1, new lexador_1.Simbolo(delegua_1.default.IDENTIFICADOR, 'a', null, 1, -1)), new lexador_1.Simbolo(delegua_1.default.IGUAL_IGUAL, '', null, 1, -1), new construtos_1.Literal(-1, 1, 1)), new declaracoes_1.Bloco(-1, 1, [new declaracoes_1.Escreva(2, -1, [new construtos_1.Literal(-1, 1, 10)])]), null, null);
17
- const resultado = tradutor.traduzir([se]);
18
- expect(resultado).toBeTruthy();
19
- expect(resultado).toMatch(/if/i);
20
- expect(resultado).toMatch(/a === 1/i);
21
- expect(resultado).toMatch(/console\.log\(10\)/i);
22
- });
23
- });
24
- describe('Código', () => {
25
- let delegua;
26
- beforeEach(() => {
27
- delegua = new delegua_2.Delegua('delegua');
28
- });
29
- it('para -> for', () => {
30
- const retornoLexador = delegua.lexador.mapear([
31
- 'para (var i = 0; i < 5; i = i + 1) {',
32
- 'escreva(i);',
33
- '}',
34
- ], -1);
35
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
36
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
37
- expect(resultado).toBeTruthy();
38
- // expect(resultado).toMatch(/for (let i = 0; i < 5; i = i + 1) {/i);
39
- expect(resultado).toMatch(/console\.log\(i\)/i);
40
- });
41
- it('enquanto -> while', () => {
42
- const retornoLexador = delegua.lexador.mapear([
43
- 'var i = 0;',
44
- 'fazer {',
45
- 'escreva(i);',
46
- 'i = i + 1;',
47
- '} enquanto (i < 5)'
48
- ], -1);
49
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
50
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
51
- expect(resultado).toBeTruthy();
52
- expect(resultado).toMatch(/let i = 0/i);
53
- expect(resultado).toMatch(/do {/i);
54
- expect(resultado).toMatch(/console\.log\(i\)/i);
55
- // expect(resultado).toMatch(/i = i + 1/i);
56
- expect(resultado).toMatch(/}/i);
57
- expect(resultado).toMatch(/while \(i < 5\)/i);
58
- });
59
- it('enquanto -> do while', () => {
60
- const retornoLexador = delegua.lexador.mapear([
61
- 'enquanto (verdadeiro) {',
62
- 'escreva("sim");',
63
- '}'
64
- ], -1);
65
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
66
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
67
- expect(resultado).toBeTruthy();
68
- // expect(resultado).toMatch(/while \(true\) {/i);
69
- expect(resultado).toMatch(/console\.log\('sim'\)/i);
70
- expect(resultado).toMatch(/}/i);
71
- });
72
- it('enquanto -> while', () => {
73
- const retornoLexador = delegua.lexador.mapear([
74
- 'enquanto (verdadeiro) {',
75
- 'escreva(\'sim\');',
76
- '}'
77
- ], -1);
78
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
79
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
80
- expect(resultado).toBeTruthy();
81
- // expect(resultado).toMatch(/while (true) {/i);
82
- expect(resultado).toMatch(/console\.log\(\'sim\'\)/i);
83
- expect(resultado).toMatch(/}/i);
84
- });
85
- it('tente - pegue - finalmente -> try - catch - finally', () => {
86
- const retornoLexador = delegua.lexador.mapear([
87
- 'tente { ',
88
- '1 > "2";',
89
- 'escreva("sucesso");',
90
- '}',
91
- // 'pegue {',
92
- // 'escreva("Ocorreu uma exceção.");',
93
- // '} finalmente {',
94
- // 'escreva("Ocorrendo exceção ou não, eu sempre executo");',
95
- // '}',
96
- ], -1);
97
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
98
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
99
- expect(resultado).toBeTruthy();
100
- expect(resultado).toMatch(/try {/i);
101
- expect(resultado).toMatch(/1 > \'2\'/i);
102
- expect(resultado).toMatch(/console\.log\('sucesso'\)/i);
103
- expect(resultado).toMatch(/}/i);
104
- });
105
- it('escolha -> switch/case', () => {
106
- const retornoLexador = delegua.lexador.mapear([
107
- 'escolha (2) {',
108
- 'caso "1":',
109
- 'escreva("correspondente à opção 1");',
110
- 'escreva("escreva de novo 1");',
111
- 'caso 1:',
112
- 'caso 2:',
113
- 'escreva("correspondente à opção 2");',
114
- 'escreva("escreva de novo 2");',
115
- 'escreva("escreva de novo 3");',
116
- 'padrao:',
117
- 'escreva("Sem opção correspondente");',
118
- '}'
119
- ], -1);
120
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
121
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
122
- expect(resultado).toBeTruthy();
123
- expect(resultado).toMatch(/switch \(2\) /i);
124
- expect(resultado).toMatch(/case '1':/i);
125
- expect(resultado).toMatch(/console\.log\('correspondente à opção 1'\)/i);
126
- expect(resultado).toMatch(/console\.log\('escreva de novo 1'\)/i);
127
- expect(resultado).toMatch(/case 1:/i);
128
- expect(resultado).toMatch(/case 2:/i);
129
- expect(resultado).toMatch(/console\.log\('correspondente à opção 2'\)/i);
130
- expect(resultado).toMatch(/console\.log\('escreva de novo 2'\)/i);
131
- expect(resultado).toMatch(/console\.log\('escreva de novo 3'\)/i);
132
- });
133
- it('classe com parametros -> class', () => {
134
- const retornoLexador = delegua.lexador.mapear([
135
- 'classe Teste {',
136
- 'construtor(valor1) {',
137
- 'escreva("começou")',
138
- '}',
139
- 'testeFuncao(valor2) {',
140
- 'escreva("olá");',
141
- 'retorna \'teste\'',
142
- '}',
143
- '}'
144
- ], -1);
145
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
146
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
147
- expect(resultado).toBeTruthy();
148
- expect(resultado).toMatch(/export class Teste {/i);
149
- expect(resultado).toMatch(/constructor()/i);
150
- expect(resultado).toMatch(/console\.log\('começou'\)/i);
151
- expect(resultado).toMatch(/testeFuncao\(valor2\)/i);
152
- expect(resultado).toMatch(/console\.log\('olá'\)/i);
153
- expect(resultado).toMatch(/return 'teste'/i);
154
- });
155
- it('classe sem parametros -> class', () => {
156
- const retornoLexador = delegua.lexador.mapear([
157
- 'classe Teste {',
158
- 'construtor() {',
159
- 'escreva("começou")',
160
- '}',
161
- '}'
162
- ], -1);
163
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
164
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
165
- expect(resultado).toBeTruthy();
166
- expect(resultado).toMatch(/export class Teste {/i);
167
- expect(resultado).toMatch(/constructor()/i);
168
- expect(resultado).toMatch(/console\.log\('começou'\)/i);
169
- });
170
- it('se -> if, código', () => {
171
- const retornoLexador = delegua.lexador.mapear(['se (a == 1) {', ' escreva(10)', '}'], -1);
172
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
173
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
174
- expect(resultado).toBeTruthy();
175
- expect(resultado).toMatch(/if/i);
176
- expect(resultado).toMatch(/a === 1/i);
177
- expect(resultado).toMatch(/console\.log\(10\)/i);
178
- });
179
- it('senão -> else, código', () => {
180
- const retornoLexador = delegua.lexador.mapear(['se (a == 1) {', ' escreva(10)', '} senão {', ' escreva(20)', '}'], -1);
181
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
182
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
183
- expect(resultado).toBeTruthy();
184
- expect(resultado).toMatch(/if/i);
185
- expect(resultado).toMatch(/a === 1/i);
186
- expect(resultado).toMatch(/console\.log\(10\)/i);
187
- expect(resultado).toMatch(/else/i);
188
- expect(resultado).toMatch(/console\.log\(20\)/i);
189
- });
190
- it('se senão 01 -> if else, código', () => {
191
- const retornoLexador = delegua.lexador.mapear([
192
- 'var a = 20',
193
- 'se (a == 10) {',
194
- ' escreva(10)',
195
- '} senão se (a == 20) {',
196
- ' escreva(20)',
197
- '} senão {',
198
- " escreva('Não é 10 e não é 20')",
199
- '}',
200
- ], -1);
201
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
202
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
203
- expect(resultado).toBeTruthy();
204
- expect(resultado).toMatch(/if/i);
205
- expect(resultado).toMatch(/a === 10/i);
206
- expect(resultado).toMatch(/console\.log\(10\)/i);
207
- expect(resultado).toMatch(/else if/i);
208
- expect(resultado).toMatch(/a === 20/i);
209
- expect(resultado).toMatch(/console\.log\(20\)/i);
210
- expect(resultado).toMatch(/else/i);
211
- expect(resultado).toMatch(/console\.log\('Não é 10 e não é 20'\)/i);
212
- });
213
- it('se senão 02 -> if else, código', () => {
214
- const retornoLexador = delegua.lexador.mapear([
215
- 'var a = 20',
216
- 'se (a == 10) {',
217
- ' escreva(10)',
218
- '} senão se (a == 20) {',
219
- ' escreva(20)',
220
- '} senão se (a == 30) {',
221
- ' escreva(30)',
222
- '} senão {',
223
- " escreva('Não é nenhum desses valores: 10, 20, 30')",
224
- '}',
225
- ], -1);
226
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
227
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
228
- expect(resultado).toBeTruthy();
229
- expect(resultado).toMatch(/if/i);
230
- expect(resultado).toMatch(/a === 10/i);
231
- expect(resultado).toMatch(/console\.log\(10\)/i);
232
- expect(resultado).toMatch(/else if/i);
233
- expect(resultado).toMatch(/a === 20/i);
234
- expect(resultado).toMatch(/console\.log\(20\)/i);
235
- expect(resultado).toMatch(/else if/i);
236
- expect(resultado).toMatch(/a === 30/i);
237
- expect(resultado).toMatch(/console\.log\(30\)/i);
238
- expect(resultado).toMatch(/else/i);
239
- expect(resultado).toMatch(/console\.log\('Não é nenhum desses valores: 10, 20, 30'\)/i);
240
- });
241
- it('escreva -> console.log', () => {
242
- const codigo = ["var texto = 'Olá Mundo'", 'escreva(texto)'];
243
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
244
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
245
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
246
- expect(resultado).toBeTruthy();
247
- expect(resultado).toMatch(/let texto = 'Olá Mundo'/i);
248
- expect(resultado).toMatch(/console\.log\(texto\)/i);
249
- });
250
- it('escreva -> console.log com operação lógica', () => {
251
- const codigo = ['escreva(1 == 2)'];
252
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
253
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
254
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
255
- expect(resultado).toBeTruthy();
256
- expect(resultado).toMatch(/console\.log\(1 === 2\)/i);
257
- });
258
- it('operadores lógicos', () => {
259
- const codigo = [
260
- 'var soma = 1 + 1',
261
- 'var subtracao = 1 - 1',
262
- 'var diferente = 1 != 1',
263
- 'var igual = 1 == 1',
264
- 'var divisao = 1 / 1',
265
- 'var menor = 1 < 1',
266
- 'var maior = 1 > 1',
267
- 'var maiorOuIgual = 1 >= 1',
268
- 'var menorOuIgual = 1 <= 1',
269
- 'var multiplicacao = 1 * 1',
270
- 'var modulo = 1 % 1',
271
- 'var exponenciacao = 1 ** 1',
272
- 'escreva(soma, subtracao, diferente, igual, divisao, menor, maior, maiorOuIgual, menorOuIgual, multiplicacao, modulo, exponenciacao)',
273
- ];
274
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
275
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
276
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
277
- expect(resultado).toBeTruthy();
278
- // expect(resultado).toMatch(/let soma = 1 + 1/i);
279
- expect(resultado).toMatch(/let subtracao = 1 - 1/i);
280
- // expect(resultado).toMatch(/let diferente = 1 !== 1/i);
281
- // expect(resultado).toMatch(/let igual = 1 === 1/i);
282
- // expect(resultado).toMatch(/let divisao = 1 / 1/i);
283
- expect(resultado).toMatch(/let menor = 1 < 1/i);
284
- expect(resultado).toMatch(/let maior = 1 > 1/i);
285
- // expect(resultado).toMatch(/let maiorOuIgual = 1 >= 1/i);
286
- // expect(resultado).toMatch(/let menorOuIgual = 1 <= 1/i);
287
- // expect(resultado).toMatch(/let multiplicacao = 1 * 1/i);
288
- // expect(resultado).toMatch(/let modulo = 1 % 1/i);
289
- // expect(resultado).toMatch(/let exponenciacao = 1 ** 1/i);
290
- expect(resultado).toMatch(/console\.log\(soma, subtracao, diferente, igual, divisao, menor, maior, maiorOuIgual, menorOuIgual, multiplicacao, modulo, exponenciacao\)/i);
291
- });
292
- it('chamada de função com parametros -> function', () => {
293
- const codigo = ['funcao minhaFuncao(a, b, c) { }', 'minhaFuncao(a, b, c)'];
294
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
295
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
296
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
297
- expect(resultado).toBeTruthy();
298
- expect(resultado).toMatch(/function/i);
299
- expect(resultado).toMatch(/minhaFuncao/i);
300
- expect(resultado).toMatch(/minhaFuncao\(a, b, c\)/i);
301
- });
302
- it('chamada de função sem parametros -> function', () => {
303
- const codigo = ['funcao minhaFuncao() { }', 'minhaFuncao()'];
304
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
305
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
306
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
307
- expect(resultado).toBeTruthy();
308
- expect(resultado).toMatch(/function/i);
309
- expect(resultado).toMatch(/minhaFuncao/i);
310
- expect(resultado).toMatch(/minhaFuncao()/i);
311
- });
312
- it('função com retorno nulo -> function', () => {
313
- const codigo = ['funcao minhaFuncao() { retorna nulo }'];
314
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
315
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
316
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
317
- expect(resultado).toBeTruthy();
318
- expect(resultado).toMatch(/function/i);
319
- expect(resultado).toMatch(/minhaFuncao/i);
320
- expect(resultado).toMatch(/return null/i);
321
- });
322
- it('função com retorno lógico de texto e número -> function', () => {
323
- const codigo = ["funcao minhaFuncao() { retorna '1' == 1 }"];
324
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
325
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
326
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
327
- expect(resultado).toBeTruthy();
328
- expect(resultado).toMatch(/function/i);
329
- expect(resultado).toMatch(/minhaFuncao/i);
330
- expect(resultado).toMatch(/return '1' === 1/i);
331
- });
332
- it('função com retorno lógico de número -> function', () => {
333
- const codigo = ['funcao minhaFuncao() { retorna 1 == 1 }'];
334
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
335
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
336
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
337
- expect(resultado).toBeTruthy();
338
- expect(resultado).toMatch(/function/i);
339
- expect(resultado).toMatch(/minhaFuncao/i);
340
- expect(resultado).toMatch(/return 1 === 1/i);
341
- });
342
- it('função com retorno lógico de texto -> function', () => {
343
- const codigo = ["funcao minhaFuncao() { retorna '1' == '1' }"];
344
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
345
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
346
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
347
- expect(resultado).toBeTruthy();
348
- expect(resultado).toMatch(/function/i);
349
- expect(resultado).toMatch(/minhaFuncao/i);
350
- expect(resultado).toMatch(/return '1' === '1'/i);
351
- });
352
- it('função com retorno número -> function', () => {
353
- const codigo = ['funcao minhaFuncao() { retorna 10 }'];
354
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
355
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
356
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
357
- expect(resultado).toBeTruthy();
358
- expect(resultado).toMatch(/function/i);
359
- expect(resultado).toMatch(/minhaFuncao/i);
360
- expect(resultado).toMatch(/return 10/i);
361
- });
362
- it('função com retorno texto -> function', () => {
363
- const codigo = ["funcao minhaFuncao() { retorna 'Ola Mundo!!!' }"];
364
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
365
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
366
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
367
- expect(resultado).toBeTruthy();
368
- expect(resultado).toMatch(/function/i);
369
- expect(resultado).toMatch(/minhaFuncao/i);
370
- expect(resultado).toMatch(/return 'Ola Mundo!!!'/i);
371
- });
372
- it('função com retorno -> function', () => {
373
- const codigo = ["funcao minhaFuncao() { retorna 'Ola Mundo!!!' }"];
374
- const retornoLexador = delegua.lexador.mapear(codigo, -1);
375
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
376
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
377
- expect(resultado).toBeTruthy();
378
- expect(resultado).toMatch(/function/i);
379
- expect(resultado).toMatch(/minhaFuncao/i);
380
- expect(resultado).toMatch(/return 'Ola Mundo!!!'/i);
381
- });
382
- it('função -> function - com parametro', () => {
383
- const retornoLexador = delegua.lexador.mapear(['funcao minhaFuncaoComParametro(teste) {', ' escreva(teste)', '}'], -1);
384
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
385
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
386
- expect(resultado).toBeTruthy();
387
- expect(resultado).toMatch(/function/i);
388
- expect(resultado).toMatch(/minhaFuncao/i);
389
- expect(resultado).toMatch(/console\.log\(teste\)/i);
390
- });
391
- //TODO: Pulando pois no CI esta quebrando, mas localmente o teste passa normal
392
- //Alterar a regex do ultimo expect deve resolver
393
- it('função -> function - sem parametro', () => {
394
- const retornoLexador = delegua.lexador.mapear(['funcao minhaFuncaoSemParametro() {', " escreva('teste')", '}'], -1);
395
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
396
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
397
- expect(resultado).toBeTruthy();
398
- expect(resultado).toMatch(/function/i);
399
- expect(resultado).toMatch(/minhaFuncao/i);
400
- expect(resultado).toMatch(/console\.log\(\'teste\'\)/i);
401
- });
402
- it('se -> if, código', () => {
403
- const retornoLexador = delegua.lexador.mapear(['se (a == 1) {', ' escreva(10)', '}'], -1);
404
- const retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
405
- const resultado = tradutor.traduzir(retornoAvaliadorSintatico.declaracoes);
406
- expect(resultado).toBeTruthy();
407
- expect(resultado).toMatch(/if/i);
408
- expect(resultado).toMatch(/a === 1/i);
409
- expect(resultado).toMatch(/console\.log\(10\)/i);
410
- });
411
- });
412
- });
413
- //# sourceMappingURL=tradutor-javascript.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tradutor-javascript.test.js","sourceRoot":"","sources":["../../../testes/tradutores/tradutor-javascript.test.ts"],"names":[],"mappings":"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"}