Pbrain
# Pbrain

Pbrain é uma variante da linguagem de programação esotérica brainfuck. O diferencial entre as linguagens é o sistema de subrotinas em Pbrain.

## Forma da Linguagem

O Pbrain acessa a memória da mesma forma que brainfuck: através de células de memória. Não existe um padrão de total de células ou de tamanho de cada célula. Na sua primeira versão, havia 65 536 células de memória, de 1 Byte cada.
As proceduras são numeradas da mesma forma que as células de memória. Se existirem n células de memória, pode haver n subrotinas. Da mesma forma, quando a célula de memória n estiver selecionada, a subrotina n também estará.

### Comandos

| Caractere | Função |
| > | Acessa a célula de memória seguinte. |
| < | Acessa a célula de memória anterior. |
| + | Aumenta em 1 o valor da célula de memória selecionada. |
| - | Diminui em 1 o valor da célula de memória selecionada. |
| . | Imprime na tela o caractere relativo à célula de memória selecionada. |
| , | Salva na célula de memória selecionada o código da próxima tecla clicada. |
| [ | Repete uma série de comandos enquanto a célula de memória selecionada for diferente de zero. |
| ] | Retorna ao [ correspondente se a célula de memória selecionada for diferente de zero. |
| ( | Inicia a declaração de uma subrotina correspondente à célula de memória selecionada. |
| ) | Finaliza a declaração de uma subrotina. |
| : | Executa a subrotina correspondente à célula de memória selecionada. |

## Compatibilidade com brainfuck

Todos os códigos em brainfuck são 100% compatíveis com Pbrain, desde que não tenham (, ) e : como comentários.
Os códigos de Pbrain podem não ser compatíveis com brainfuck, pois os comandos (, ) e : são considerados comentários em brainfuck, e são ignorados.