plank
所属分类:编译器/解释器
开发工具:kotlin
文件大小:258KB
下载次数:0
上传日期:2022-10-20 11:57:47
上 传 者:
sh-1993
说明: |用kotlin编写的函数式编程语言。
(| Functional programming language written in kotlin.)
文件列表:
.editorconfig (5086, 2022-10-14)
.idea (0, 2022-10-14)
.idea\.name (5, 2022-10-14)
.idea\detekt.xml (639, 2022-10-14)
.idea\externalDependencies.xml (339, 2022-10-14)
.idea\ktlint.xml (203, 2022-10-14)
LICENSE.txt (1093, 2022-10-14)
build.gradle.kts (3669, 2022-10-14)
buildSrc (0, 2022-10-14)
buildSrc\build.gradle.kts (87, 2022-10-14)
buildSrc\src (0, 2022-10-14)
buildSrc\src\main (0, 2022-10-14)
buildSrc\src\main\kotlin (0, 2022-10-14)
buildSrc\src\main\kotlin\KtSupressFilterReader.kt (1552, 2022-10-14)
buildSrc\src\main\kotlin\LlvmConfig.kt (1266, 2022-10-14)
buildSrc\src\main\kotlin\LocalProperties.kt (533, 2022-10-14)
buildSrc\src\main\kotlin\Utils.kt (162, 2022-10-14)
config (0, 2022-10-14)
config\detekt.yml (19473, 2022-10-14)
frontend (0, 2022-10-14)
frontend\analyzer (0, 2022-10-14)
frontend\analyzer\build.gradle.kts (390, 2022-10-14)
frontend\analyzer\src (0, 2022-10-14)
frontend\analyzer\src\commonMain (0, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin (0, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\Analyze.kt (532, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\Pretty.kt (14484, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker (0, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckBody.kt (1227, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckBranch.kt (819, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckExpr.kt (9367, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckPattern.kt (2365, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckStmt.kt (6879, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckTy.kt (1468, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\CheckViolation.kt (3741, 2022-10-14)
frontend\analyzer\src\commonMain\kotlin\checker\Env.kt (956, 2022-10-14)
... ...
# PLANK
![GitHub Repo stars](https://img.shields.io/github/stars/plank-lang/plank?color=orange&style=for-the-badge)
![GitHub issues](https://img.shields.io/github/issues/plank-lang/plank?color=orange&style=for-the-badge)
![GitHub last commit](https://img.shields.io/github/last-commit/plank-lang/plank?color=orange&style=for-the-badge)
Plank is a simple language made with LLVM and ANTLR in Kotlin. Need help? contact me
on [Twitter](https://twitter.com/gabrielleeg1) or message me on discord **Gabii#3336**.
### Content
* [Example](#example)
* [Modules](#modules)
* [CLI](#cli)
* [Building](#building)
* [Pull Requests](#pull-requests)
* [Ending](#ending)
* Documentation (WIP)
## Example
Hello world in plank:
```ocaml
use Std.IO;
fun main(argc: Int32, argv: **Char) {
println("Hello, world");
}
```
You can find more examples [here](samples)
## Modules
| Name | Description |
|----------------------------------------|--------------------------------------------------|
| [cli](modules/cli) | All command-line stuff |
| [syntax](modules/syntax) | AST and Descriptor Mapping |
| [parser](modules/parser) | ANTLR grammar |
| [codegen](modules/codegen) | The LLVM core that compiles to IR representation |
| [analyzer](modules/analyzer) | Code analyzing |
| [vscode-plugin](modules/vscode-plugin) | VSCode tooling plugin |
| [runtime](runtime) | Runtime functions |
| [stdlib](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=` in it.
You should execute the following commands:
```shell
$ git clone git@github.com:plank-lang/plank.git
$ cd plank
# if you are in windows
# PS .\gradlew.bat cli:linkPlankReleaseExecutableMingwX***
$ ./gradlew cli:linkPlankReleaseExecutableLinuxX***
```
The binary file `cli/build/bin/linuxX***/plankReleaseExecutable` or if you are in a Windows
machine `cli/build/bin/mingwX***/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 :)
近期下载者:
相关文件:
收藏者: