Skip to content

Commit

Permalink
Resolvendo vetor com texto
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelrvg committed Feb 25, 2024
1 parent 2197568 commit 845ebb0
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
3 changes: 2 additions & 1 deletion fontes/interpretador/interpretador-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1621,13 +1621,14 @@ export class InterpretadorBase implements InterpretadorInterface {
if (Array.isArray(objeto)) {
let retornoVetor: string = '[';
for (let elemento of objeto) {
retornoVetor += `${this.paraTexto(elemento)}, `;
retornoVetor += typeof elemento === 'string' ? `'${elemento}', ` : `${this.paraTexto(elemento)}, `;
}

if(retornoVetor.length > 1){
retornoVetor = retornoVetor.slice(0, -2);
}
retornoVetor += ']';
console.log(retornoVetor)

return retornoVetor;
}
Expand Down
6 changes: 3 additions & 3 deletions testes/biblioteca-global.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,16 +174,16 @@ describe('Biblioteca Global', () => {

it('Sucesso - filtrarPor', async () => {
const codigo = [
"var valoresLogicos = [verdadeiro, 'falso', 'falso', verdadeiro, 'falso', 'verdadeiro']",
"var f = funcao(valor) { retorna valor == verdadeiro }",
"var valoresLogicos = ['verdadeiro', 'falso', 'falso', 'verdadeiro', 'falso', 'verdadeiro']",
"var f = funcao(valor) { retorna valor == 'verdadeiro' }",
"var valoresVerdadeiros = filtrarPor(valoresLogicos, f)",
"escreva(valoresVerdadeiros)"
];
const retornoLexador = lexador.mapear(codigo, -1);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

interpretador.funcaoDeRetorno = (saida: any) => {
expect(saida).toEqual('[verdadeiro, verdadeiro]');
expect(saida).toEqual('[\'verdadeiro\', \'verdadeiro\', \'verdadeiro\']');
};

const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
Expand Down
8 changes: 4 additions & 4 deletions testes/interpretador/interpretador.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1129,7 +1129,7 @@ describe('Interpretador', () => {
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

interpretador.funcaoDeRetorno = (saida: any) => {
expect(saida).toEqual('[1, 2, 3]');
expect(saida).toEqual('[1, 2, \'3\']');
};

const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
Expand All @@ -1151,7 +1151,7 @@ describe('Interpretador', () => {
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

interpretador.funcaoDeRetorno = (saida: any) => {
expect(saida).toEqual('[Olá, mundo]');
expect(saida).toEqual('[\'Olá\', \'mundo\']');
};

const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
Expand All @@ -1170,7 +1170,7 @@ describe('Interpretador', () => {
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

interpretador.funcaoDeRetorno = (saida: any) => {
expect(saida).toEqual('[maçã, banana, morango]');
expect(saida).toEqual('[\'maçã\', \'banana\', \'morango\']');
};

const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
Expand Down Expand Up @@ -1383,7 +1383,7 @@ describe('Interpretador', () => {

expect(retornoInterpretador.erros).toHaveLength(0);
expect(saidas).toHaveLength(2);
expect(saidas[0]).toEqual('[a, b, c]');
expect(saidas[0]).toEqual('[\'a\', \'b\', \'c\']');
expect(saidas[1]).toEqual('[1, 2, 3]');
});
});
Expand Down

0 comments on commit 845ebb0

Please sign in to comment.