https://github.com/ppodds/smli
A mini-LISP interpreter written in Rust. This is a term project for the course "Compiler" in National Central University.
https://github.com/ppodds/smli
Last synced: 2 months ago
JSON representation
A mini-LISP interpreter written in Rust. This is a term project for the course "Compiler" in National Central University.
- Host: GitHub
- URL: https://github.com/ppodds/smli
- Owner: ppodds
- License: mit
- Created: 2022-12-16T13:35:10.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-12-19T03:54:19.000Z (over 3 years ago)
- Last Synced: 2025-03-06T00:20:43.159Z (over 1 year ago)
- Language: Rust
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# smli
A mini-LISP interpreter written in Rust. It is my first Rust project. I'm still learning Rust, so the code may not be idiomatic. Currently, it only supports a subset of LISP.
## Features
- [x] Syntax Validation
- [x] Print
- [x] Numerical Operations
- [x] Logical Operations
- [x] if Expression
- [x] Variable Definition
- [x] Function
- [x] Named Function
- [x] Recursion
- [x] Type Checking
- [x] Nested Function
- [ ] First-class Function
## Installation
Download Rust from [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) and install it.
```sh
git clone https://github.com/ppodds/smli.git
cd smli
# run directly
cargo run
# compile and run (you only need smli(.exe))
cargo build -r
./target/release/smli
```
## Run Tests
```sh
cargo test
```