Skip to content

fireflylabss/eterscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eterScript

Linguagem de script no estilo BDFD (Bot Designer for Discord), implementada em Rust para automação de PC e scripting geral.

Instalação

Rodar localmente

cargo build --release
./target/release/eter script.eter

Instalar globalmente no Sistema

Para usar os comandos eter ou etr de qualquer pasta:

cargo install --path .

Uso

Executar arquivo

eter script.eter
# ou usar o alias curto
etr script.etr

Evaluar expressão inline

eter -e '$print["Hello, World!"]'

Calculadora interativa

./eter examples/calculadora_loop.eter

Sintaxe

Tudo é função

Toda chamada começa com $ e usa colchetes:

$print["Hello"]
$add[5;3]

Argumentos separados por ;

$if[$eq[$x;10];"é 10";"não é 10"]

Strings devem ser quoted

$print["Hello"]     # certo
$print[Hello]       # errado - interpreta como variável/função

Variáveis

$set[nome;"Alice"]
$print[$nome]

Funções

Parâmetros são separados por ESPAÇO, não ;:

# Correto:
$def[soma;a b;$add[$a;$b]]

# Errado:
$def[soma;a;b;$add[$a;$b]]

Comentários

# Isso é um comentário
$print["Hello"]   # comentário inline

Exemplos

Veja a pasta examples/:

  • hello.eter - Hello World
  • math.eter - Operações matemáticas
  • variables.eter - Variáveis
  • factorial.eter - Fatorial recursivo
  • fibonacci.eter - Fibonacci recursivo
  • fizzbuzz.eter - FizzBuzz
  • strings.eter - Manipulação de strings
  • calculadora.eter - Calculadora single-shot
  • calculadora_loop.eter - Calculadora interativa com loop

Funções Built-in

Veja docs/reference.md para lista completa.

Arquitetura

  • src/lexer.rs - Tokenizador e parser
  • src/evaluator.rs - Avaliador de expressões
  • src/value.rs - Tipos de valor
  • src/functions/ - Implementações de funções built-in
  • src/main.rs - CLI

Licença

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages