Graviton Programming language

[![crates.io](https://img.shields.io/crates/v/graviton?style=flat-square)](https://crates.io/crates/graviton) [![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE) [![build](https://img.shields.io/travis/Ralakus/graviton?style=flat-square)](https://travis-ci.org/Ralakus/graviton) [![issues](https://img.shields.io/github/issues/Ralakus/graviton?style=flat-square)](https://github.com/Ralakus/graviton/issues) [![repo size](https://img.shields.io/github/repo-size/Ralakus/graviton?style=flat-square)](https://github.com/Ralakus/graviton) [![code size](https://img.shields.io/github/languages/code-size/Ralakus/graviton?style=flat-square)](https://github.com/Ralakus/graviton) ## Build requirements * Rust nightly with cargo ## How to build 0. Run `cargo build` ## What is Graviton? Graviton is a fast programming language that is minimal and simplistic with a simple and easy to read compiler. Everything is an expression unless a semicolon is used `;` then it becomes a statement which gives a clear distinction between expressions and statements. Graviton is still under heavy development so it is bound to have breaking changes ## Examples [Iterative fibonacci example](./examples/fib.grav) ```rust import "/std"; println("Iterative Fibonacci example"); let fib = (n: I32) { let mut prevprevn = 0; let mut prevn = 0; let mut curn = 1; let mut i = 2; while i <= n { prevprevn = prevn; prevn = curn; curn = prevprevn + prevn; i = i + 1; }; curn }; print("Enter a number: "); let n = read_num(); let fib_number: I32 = fib(n); let output = if fib_number != fib(14) { fib_number } else { println("Input was 14 so result will be negated for demonstration"); -fib_number }; print("Fibonacci of "); printn(n); print(" is "); printnln(fib(n)); println(""); ``` ## How can follow the progress? * There is a [Trello](https://trello.com/b/Z2PQHhgy/graviton) board set up for this project