Skip to content
This repository has been archived by the owner on Jun 10, 2023. It is now read-only.

neobirl/server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Server da NeoBIRL

📋 Índice

Introdução

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!

Como funciona

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.

Executando o Projeto

  1. 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.
  2. 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

ToDo

  • 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).

Contribuidores

Caso queira contribuir, é só abrir um PR bonitinho e escrever os testes antes.

Nosso sincero obrigado a @lcfpadilha, @akafts e toda a comunidade codebuilder do Brasil.

Releases

No releases published

Packages

No packages published