No description
Find a file
2021-10-07 20:39:31 +02:00
src test program 2021-10-07 20:39:31 +02:00
.gitignore inital commit 2021-10-03 20:30:19 +02:00
Cargo.lock inital commit 2021-10-03 20:30:19 +02:00
Cargo.toml inital commit 2021-10-03 20:30:19 +02:00
README.md all lex tests pass 🎉 2021-10-07 20:22:44 +02:00
test.sl test program 2021-10-07 20:39:31 +02:00

_ is a small embeddable scripting language

_ is inspired by Javascript, Lox, Lua, Python, Rust and more

Reference

Overview

Declaring variables using let

let hello = 4

Semicolons are not needed

let test = 5
let another = 4

The language has strings, numbers, arrays, objects and null and booleans

let string = "hallo"
let number = 4
let array = []
let object = {}
let _null = null
let bool = true

You access properties on objects using .

let obj = {}
obj.hi = "hi!"

Functions are first class

let obj = {}
obj.hello = helloFn
obj.hello()

Functions are declared using fn

fn greet(name) {
    return "hello, " + name
}

Comments using #

# hi!

Multiline comments using ## until ##

##
hi
comment
##

There are many native functions, that can easily be customized and added/removed by the host

# rocket game
turnRocketLeft(29)
turnRocketRight(32)

# chat bot
message.respond("hi")

# dangerous http requests
fn callback(html) {
    print(html)
}
fetch("https://github.com/Nilstrieb", callback);

Basic arithmetic and boolean logic is available

let a = 5
let b = 5
print(a + b / b * b - a % b)
print(true and false or false or true and false)

Loops and conditionals

let x = true
if x {
    print("true!")
} else {
    print("false :(")
}

loop {
    while 1 > 5 {
        print("yeet")
        break
    }
    # no for loops for now, but will be added (probably like python)
}

_ is dynamically and strongly typed

Detail

Reserved Keywords

Statements

fn let if else loop while for

Values

true false null

Operators

not and or

Operators

== >= > <= < != + - * / %