Skip to content

📜 | Functional programming language written in kotlin.

License

Notifications You must be signed in to change notification settings

aripiprazole/plank

Repository files navigation

PLANK

GitHub Repo stars GitHub issues GitHub last commit

Plank is a simple language made with LLVM and ANTLR in Kotlin. Need help? contact me on Twitter or message me on discord Gabii#3336.

Content

Example

Hello world in plank:

use Std.IO;

fun main(argc: Int32, argv: **Char) {
  println("Hello, world");
}

You can find more examples here

Modules

Name Description
cli All command-line stuff
syntax AST and Descriptor Mapping
parser ANTLR grammar
codegen The LLVM core that compiles to IR representation
analyzer Code analyzing
vscode-plugin VSCode tooling plugin
runtime Runtime functions
stdlib Language stdlib

CLI

Usage: plank [OPTIONS] COMMAND [ARGS]...

Options:
  -h, --help  Show this message and exit

Commands:
  jit
  repl

Building

The LLVM 13.0.0 is required, you can either put llvm-config in the $PATH environment variable, either create a local.properties and put llvm.config=<target to llvm-config executable> in it.

You should execute the following commands:

$ git clone [email protected]:plank-lang/plank.git
$ cd plank
# if you are in windows
# PS .\gradlew.bat cli:linkPlankReleaseExecutableMingwX64
$ ./gradlew cli:linkPlankReleaseExecutableLinuxX64

The binary file cli/build/bin/linuxX64/plankReleaseExecutable or if you are in a Windows machine cli/build/bin/mingwX64/plankReleaseExecutable will be created.

Pull Requests

PRs are welcome as long as they are well explained and only change one feature at a time.
This doesn't mean I'm going to accept all PRs, it just means I'm going to consider it.

Ending

If you liked and/or use the language consider leaving a star on the repo and following me on twitter :)