Embeddable scripting language for Nim. Work in progress.
hayago (早語, fast language, pronounced ha-ya-go) is a small, fast, embeddable, statically typed scripting language, written in Nim. Its syntax is inspired by Nim itself.
Note | hayago is not finished yet. This readme is a draft of the language's goals. |
---|
Its main goals are:
proc hello(target: string) {
echo("Hello, " & target)
}
hello("Nim users")
iterator items[T](list: seq[T]) -> T {
var len = list.len
for i in 0..<len {
yield list[i]
}
}
let features = ["simple", "sound", "fast", "concurrent", "embeddable"]
var message = "hayago is a "
var i = 0
for x in features.items {
message.add(x)
if i != features.len - 1 {
message.add(", ")
}
i = i + 1
}
message.add(" scripting language")
echo(message)
hayago is not finished yet. The following checklist represents the current state of affairs when it comes to features:
if
, while
, for
)ref
and ref
objectsimport
try…except…finally
-like systemfor
loop variablesThere is no hard deadline for any of the listed features. This checklist is supposed to show how much of the language is complete, but it probably misses some points.
If you want to propose a new feature, feel free to open an issue. I'm open to suggestions.
rod
?Yes. I decided to change the name to avoid conflicts with yglukhov/rod, which is a much older project than this. Also, hayago just sounds so much nicer and friendlier, doesn't it?