Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomlin7/lemon
The Lemon Programming Language. Cinnamon is a tiny, fast, interpreted language.
https://github.com/tomlin7/lemon
cinnamon hacktoberfest interpter programming-language
Last synced: about 1 month ago
JSON representation
The Lemon Programming Language. Cinnamon is a tiny, fast, interpreted language.
- Host: GitHub
- URL: https://github.com/tomlin7/lemon
- Owner: tomlin7
- License: mit
- Created: 2022-02-03T05:28:04.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-23T09:55:36.000Z (about 1 month ago)
- Last Synced: 2024-12-23T10:19:15.724Z (about 1 month ago)
- Topics: cinnamon, hacktoberfest, interpter, programming-language
- Language: Go
- Homepage:
- Size: 152 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Lemon Programming Language
Lemon is a tiny, fast, interpreted language. This repository contains the source code for the Lemon interpreter, written in Go. The language is still in development, and the interpreter is not yet feature-complete. A peek at the REPL atm:
![repl](.github/image.png)
## Syntax
TODO BNF
## Features
- [x] Data types: boolean, integer
- [x] Variables
- [x] Arithmetic operations
- [x] Logical operations
- [x] Functions
- [x] Comparison operations
- [ ] Control structures
- [x] if, else
- [ ] else if branch
- [ ] switch, case
- [ ] match, when
- [ ] while, for, loop
- [ ] break, continue
- [x] Garbage collection
- [x] Strings
- [x] String concatenation
- [ ] Comments
- [ ] Error handling
- [ ] Arrays
- [ ] Standard library
- [ ] Modules
- [ ] Classes
- [ ] Generics
- [ ] Multithreading## Usage
To run the REPL, use the following command:
```bash
go run main.go
```To build the interpreter, use the following command:
```bash
go build
```Running [lemon files](./example.mm) (after building):
```bash
lemon example.mm
```To run tests, use the following command:
```bash
go test
```