Liom is a toy programming language I created as a learning experience. For more information on the syntax, see here.
- Variable definition
- Literal expression
- Integer
- Character
- String
- Byte
- Float
- Boolean
- Variable reference
- Binary expression
- Unary expression
- Variable definition
- Literal expression
- Integer
- Character
- String
- Byte
- Float
- Boolean
- Variable reference
- Binary expression
- Unary expression
- cargo with a recent nightly toolchain
- (Optional) cargo-fuzz if you want to run the fuzzer
To build the executable :
cargo build --release
The executable will be in target/release/liom_cli
To run the REPL :
target/release/liom_cli
I'm open to contributions, don't hesitate to open issues and submit PR. I try to keep the dependency graph small.
To format the code :
./ci/fmt.sh
To lint and test the code :
./ci/check.sh
To fuzz the code for 30min :
./ci/fuzz.sh
I want to thank Aramis Razzaghipour for his blog on Eldiro which inspired me to do this project.
I want to thank Aleksey Kladov for his posts from which I learned a lot about parser and Rust.
I want to thank all contributors to rust-analyzer because it helped me for the architecture of this project.
This project is licensed under the MIT license.