NeoBIRL (Neo-Bambam's "It's show time" Recursive Language) nada mais é do que uma linguagem humorística, OAG (Orientada a Gambiarra), Go Horse e baseada na semi-falecida BIRL Language. NeoBIRL funciona do mesmo modo que sua antecessora, mas com algumas funcionalidades a mais. Pretendemos dar continuidade para a linguagem mais TREZE já criada!
Primeiramente, recebemos uma requisição do cliente com:
- O código (Neo)BIRL;
- Os valores de ENTRADA.
{
code: `
HORA DO SHOW
CE QUER VER ESSA PORRA? ("Hello, World! Porra!\n");
BORA CUMPADE 0;
BIRL
`,
stdin: ""
}
Esses valores são enviados para a rota /compile através do método POST.
Após isso, recebemos uma resposta do servidor contendo o stdout (ou "saída do código"):
{
"stdout":"Hello, World! Porra!\n",
"error":null
}
O código é traduzido de (Neo)BIRL para C através de uma função de expressões regulares, após a tradução, compilamos o código, o executamos e enviamos a saída ao cliente.
- Esteja em um ambiente Unix (MacOS/Linux), a função "exec" executará comandos para ambientes de Unix. Caso esteja usando Windows, se vire e vá instalar um Linux da vida ou modifique o código para que ele rode no Windows.
- Tenha o Node.js e o GCC instalados.
$ git clone https://github.com/neobirl/server
$ cd server
$ npm install
#Para rodar em modo de desenvolvimento.
$ npm run start:dev
#O servidor estará rodando na porta 3000
- Criar testes unitários para o conversor "BirlToC";
- Acrescentar compatibilidade com o Windows;
- Criar testes para as outras funções da BirlClient;
- Expandir a sintaxe (em repúdio à linguagem de quem sobe em árvore).
Caso queira contribuir, é só abrir um PR bonitinho e escrever os testes antes.