An open API service indexing awesome lists of open source software.

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.

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
```