--- title: Execute Brain**** id: 59e0a8df964e4540d5abe599 challengeType: 5 videoUrl: '' localeTitle: Execute o cérebro **** --- ## Description

Escreva uma função para implementar um interpretador do Brain ****. A função terá uma string como parâmetro e deve retornar uma string como saída. Mais detalhes são fornecidos abaixo:

O RCBF é um conjunto de compiladores e intérpretes da Brainf *** escritos para o Rosetta Code em vários idiomas.

Abaixo estão os links para cada uma das versões do RCBF.

Uma implementação só precisa implementar corretamente as seguintes instruções:

{|

!Comando

!Descrição

| -

| style = "text-align: center" | > || Mova o ponteiro para a direita

| -

| style = "text-align: center" | < || Mova o ponteiro para a esquerda

| -

| style = "text-align: center" | + || Incrementar a célula de memória sob o ponteiro

| -

| style = "text-align: center" | - || Decrementar a célula de memória sob o ponteiro

| -

| style = "text-align: center" | . || Saída do caractere representado pela célula no ponteiro

| -

| style = "text-align: center" | , || Insira um caractere e armazene-o na célula no ponteiro

| -

| style = "text-align: center" | [ || Saltar após a correspondência ] se a célula abaixo do ponteiro for 0

| -

| style = "text-align: center" | ] || Pular de volta para a correspondência [ se a célula abaixo do ponteiro for diferente de zero

|}

Qualquer tamanho de célula é permitido, o suporte EOF ( E nd- O - F ile) é opcional, assim como se você tem memória limitada ou ilimitada.

## Instructions
## Tests
```yml tests: - text: brain(bye) deve retornar uma string testString: 'assert(typeof brain(bye) === "string", "brain(bye) should return a string");' - text: 'brain("++++++[>++++++++++<-]>+++++.")++++++++++<-]>+++++."),"A", "brain("++++++[>++++++++++<-]>+++++.")brain(bye) deve retornar Goodbye, World!\\r\\n' testString: 'assert.equal(brain(bye), "Goodbye, World!\r\n", "brain(bye) should return Goodbye, World!\\r\\n");' - text: 'brain(hello) deve retornar Hello World!\\n '' testString: 'assert.equal(brain(hello), "Hello World!\n", "brain(hello) should return Hello World!\\n");' - text: 'brain(fib) deve retornar 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89' testString: 'assert.equal(brain(fib), "1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89", "brain(fib) should return 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89");' ```
## Challenge Seed
```js function brain (prog) { // Good luck! } ```
### Before Test
```js let fib=`+ ++ +++ ++++ +>+>> >>++++ +++++++ ++++++++ +++++++++ ++++++++++ ++++++>++++ ++++++++++++ +++++++++++++ +++<<<<<<[>[>> >>>>+>+<<<<<<<- ]>>>>>>>[<<<<<<< +>>>>>>>-]<[>++++ ++++++[-<-[>>+>+<< <-]>>>[<<<+>>>-]+<[ >[-]<[-]]>[<<[>>>+<< <-]>>[-]]<<]>>>[>>+>+ <<<-]>>>[<<<+>>>-]+<[> [-]<[-]]>[<<+>>[-]]<<<< <<<]>>>>>[++++++++++++++ +++++++++++++++++++++++++ +++++++++.[-]]++++++++++<[ ->-<]>+++++++++++++++++++++ +++++++++++++++++++++++++++. [-]<<<<<<<<<<<<[>>>+>+<<<<-]> >>>[<<<<+>>>>-]<-[>>.>.<<<[-]] <<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+ >-]>[<+>-]<<<-]`; let hello='++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.' let bye='++++++++++[>+>+++>++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++<<<<<<<<<-]>>>>+.>>>>+..<.<++++++++.>>>+.<<+.<<<<++++.<++.>>>+++++++.>>>.+++.<+++++++.--------.<<<<<+.<+++.---.'; ```
## Solution
```js // solution required ```