mirror of
https://github.com/Noratrieb/dilaria.git
synced 2026-01-14 17:35:03 +01:00
142 lines
No EOL
1.7 KiB
Markdown
142 lines
No EOL
1.7 KiB
Markdown
_ 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!
|
|
```
|
|
|
|
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
|
|
`==`
|
|
`>=`
|
|
`>`
|
|
`<=`
|
|
`<`
|
|
`!=`
|
|
`+`
|
|
`-`
|
|
`*`
|
|
`/`
|
|
`%` |