Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thedan64/limonite
[WIP] Compiler for the Limonite programming language.
https://github.com/thedan64/limonite
llvm programming-language
Last synced: 3 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 10 years ago)
- Default Branch: master
- Last Pushed: 2022-07-07T10:18:43.000Z (over 2 years ago)
- Last Synced: 2024-11-01T12:42:20.362Z (3 months ago)
- Topics: llvm, programming-language
- Language: Rust
- Homepage:
- Size: 701 KB
- Stars: 14
- Watchers: 4
- Forks: 3
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/TheDan64/limonite.svg?branch=master)](https://travis-ci.org/TheDan64/limonite)
[![codecov](https://codecov.io/gh/TheDan64/limonite/branch/master/graph/badge.svg)](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 buildWithout 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
* CommentsExample:
```
var s = "Spam the world!"
var i = 10>> NOTE: The following requires tab-indentation
while i > 0,
i -= 1
print(s)
```