Instruções

Execute brain****

Escreva uma função para implementar um interpretador Brain\*\*\*\*. A função receberá uma string como parâmetro e deve retornar uma string como saída. Mais detalhes são dados abaixo: RCBF é um conjunto de <a href="https://rosettacode.org/wiki/Brainf***" target="_blank" rel="noopener noreferrer nofollow">compiladores e interpretadores Brainf\*\*\*</a> escritos para Rosetta Code em várias linguagens. Abaixo estão links para cada uma das versões do RCBF. Uma implementação precisa apenas implementar adequadamente as seguintes instruções: | Comando | Descrição | | ----------------- | --------------------------------------------------------------------------------- | | <code>></code> | Move o ponteiro para a direita | | <code>&lt;</code> | Move o ponteiro para a esquerda | | <code>+</code> | Incrementa a célula de memória sob o ponteiro | | <code>-</code> | Decrementa a célula de memória sob o ponteiro | | <code>.</code> | Exibe o caractere indicado pela célula no ponteiro | | <code>,</code> | Recebe um caractere e armazena na célula no ponteiro | | <code>\[</code> | Pula para além do <code>]</code> correspondente se a célula sob o ponteiro for 0 | | <code>]</code> | Volta para o <code>\[</code> correspondente se a célula sob o ponteiro for diferente de zero | Qualquer tamanho de célula é permitido, suporte a EOF (*E*nd-*O*-*F*ile) é opcional, assim como se a memória é limitada ou ilimitada.

O que fazer:

Testes:

  • `brain(globalThis.hello)` deve retornar uma string
  • `brain("++++++[>++++++++++<-]>+++++.")` deve retornar "A"
  • `brain(globalThis.hello)` deve retornar `Hello World!\n`
  • `brain(globalThis.fib)` deve retornar `1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89`

Console