Uma linguagem de programação brasileira, resiliente e cheia de ginga. Onde o erro não é um problema, é apenas uma gambiarra esperando para acontecer.
anuncia("salve do bananil")
git clone https://github.com/Leturnos/bananil-script.git
cd bananil-script
npm installAtualmente em fase alpha, mas já latindo!
# Rodar um arquivo .bna
npm start run examples/ola.bna
# ou diretamente
node cli/index.js run examples/ola.bna
# Validar sintaxe (bom para CI)
npm start check examples/ola.bna
# Modo interativo (REPL)
npm start repljeito→ variável (ex:jeito x = 10)anuncia()→ print no terminalse pá / senao→ condicional (if/else)enquanto der→ loop (while)corre / devolve→ funções e retornogambiarra / fé→ tratamento de erro (try/catch)suave { ... }→ bloco de segurança (não crasha o código interno)
O BananilScript possui integração nativa com o Google Gemini para corrigir seus erros automaticamente. Se o código falhar, a IA entra em cena, propõe um "jeitinho", mostra o diff e tenta rodar de novo.
Segurança: A IA nunca sobrescreve o arquivo original. Um novo arquivo
.gambiarra.bnaé gerado e validado pelo parser antes de ser executado.
- Crie um arquivo
.envna raiz:cp .env.example .env - Adicione sua chave:
GEMINI_API_KEY=sua_chave_aqui
# Tenta corrigir automaticamente 1 vez (padrão)
npm start run script.bna --auto-fix
# Tenta corrigir até 3 vezes
npm start run script.bna --auto-fix=3Você pode mudar a "personalidade" do interpretador via flag CLI ou diretamente no código:
--modo=jeitinho: Transformaundefinedem0, divisão por zero em1e silencia erros.--modo=caos: Reordena expressões e muda valores aleatoriamente.--modo=CLT: Adiciona lentidão, burocracia e logs de ponto.--modo=raiz: Modo vira-lata puro. Nunca crasha.
No código:
modo: jeitinho
anuncia(10 / 0) // resulta em 1
jeito frase = "salve do bananil"
anuncia(frase)
jeito sol = é_mermo
se pá (sol) {
anuncia("tá suave!")
} senao {
anuncia("deu ruim, mas a gente dá um jeito")
}
corre fatorial(n) {
se pá (n <= 1) { devolve 1 }
devolve n * fatorial(n - 1)
}
gambiarra {
anuncia(fatorial(5))
} fé {
anuncia("deu ruim no calculo!")
}
// Bloco de segurança (feature "suave")
suave {
anuncia(chamada_perigosa()) // se falhar, apenas ignora e continua
}
jeito nervoso chance = 0.5 // modificador de variável: lança erros aleatórios
O projeto conta com testes automatizados para garantir a qualidade da gambiarra:
npm testInclui testes para:
- Lexer (Tokenização)
- Parser (AST e Gramática)
- Interpreter (Lógica e Escopo)
- Modos de execução (
caos,jeitinho,CLT,raiz) - Integração com IA (Mockada para CI)
Para ter syntax highlighting profissional:
- Copie a pasta
vscode-bananilpara o diretório de extensões:- Linux/macOS:
~/.vscode/extensions/ - Windows:
%USERPROFILE%\.vscode\extensions\
- Linux/macOS:
- Reinicie o VSCode.
Em breve: Instalação facilitada via VSIX ou Marketplace.
- Resiliência: Se o código cair, o Bananil levanta.
- Humor: Mensagens de erro estilo áudio de WhatsApp.
- Brasileirismo: Símbolos e palavras que você usaria num churrasco.
BananilScript: Porque todo código merece uma segunda chance (e um jeitinho bem aplicado).