Skip to content

ArtyomKingmang/Lazurite

Repository files navigation

Для русскоговорящих

More About Language

To work you need to install JDK 17+

This language takes advantage of Java and simplifies it. This makes Lazurite quite simple. Basically, the language is used to create games and applications, because it has powerful libraries for this. But on it you can make bots for social networks, work with files, and much more.

Hello World in Lazurite!:

print("Hello World!")

async example:

using "lzr.utils.async"

func hel(arg) {
    print(arg)
}
async.supply(hel("Hello"))

thread example:

using "lzr.utils.thread"

func th(arg) {
   println("My ${arg} thread")
}
for(i = 0, i < 10, i++) {
    std.thread(::th, i)
}

stream api example:

using "lzr.utils.streamApi"

inputArray = range(0, 5) // [0, 0, 0, 0, 0]
resultArray = stream(inputArray)
 .custom(::changeNums)
 .toArray()

func changeNums(container) {
    len = length(container)
    result = Array(len)
    for(i = 0, i < len, i++) {
        result[i] = 7
    }
    return result
}

println(resultArray)

Repositories

Language (compiler, interpreter, api)

Compiler

Download

Download jar and exe files of the language interpreter can be downloaded in the Releases tab.

Contributions

We will review and help with all reasonable pull requests as long as the guidelines below are met.

  • The license header must be applied to all java source code files.
  • IDE or system-related files should be added to the .gitignore, never committed in pull requests.
  • In general, check existing code to make sure your code matches relatively close to the code already in the project.
  • Favour readability over compactness.
  • If you need help, check out the Google Java Style Guide for a reference.

License

Lazurite is released under MIT License 2.0

See more about it!

TODO

rewrite compiler

add strong typing

add anotations