https://github.com/thedan64/limonite
[WIP] Compiler for the Limonite programming language.
https://github.com/thedan64/limonite
llvm programming-language
Last synced: 10 months ago
JSON representation
[WIP] Compiler for the Limonite programming language.
- Host: GitHub
- URL: https://github.com/thedan64/limonite
- Owner: TheDan64
- License: apache-2.0
- Created: 2014-07-09T01:20:13.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2022-07-07T10:18:43.000Z (over 3 years ago)
- Last Synced: 2025-03-29T03:41:44.637Z (10 months ago)
- Topics: llvm, programming-language
- Language: Rust
- Homepage:
- Size: 701 KB
- Stars: 14
- Watchers: 3
- Forks: 3
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/TheDan64/limonite)
[](https://codecov.io/gh/TheDan64/limonite)
Limonite
========
This is a compiler for the Limonite programming language.
Limonite is a relatively basic programming language written in rust using LLVM as a backend.
* Uses a custom tokenizer and parser.
* Compiles to LLVM IR.
* Syntax is by no means final. See sample.lim for examples.
## Building
1. Make sure you have installed all the dependencies.
* Rust (Stable/Beta)
* Cargo
* git (optional)
* LLVM == 10.0 (optional)
* cmake (required for LLVM)
2. Download and build Limonite.
Run the following commands
git clone https://github.com/TheDan64/limonite.git
cd limonite
cargo build
Without LLVM dependency
git clone https://github.com/TheDan64/limonite.git
cd limonite
cargo build --no-default-features
## Working Features
* Basic variables w/ basic type inference
* Basic ascii/utf8 print statements
* While loops
* Comparison operators
* Addition, Subtraction, Assignment
* Comments
Example:
```
var s = "Spam the world!"
var i = 10
>> NOTE: The following requires tab-indentation
while i > 0,
i -= 1
print(s)
```