chumsky 0.13.0

A parser library for humans with powerful error recovery
Documentation
// Run this example with `cargo run --example nano_rust -- examples/sample.nrs`
// Feel free to play around with this sample to see what errors you can generate!
// Spans are propagated to the interpreted AST so you can even invoke runtime
// errors and still have an error message that points to source code emitted!

fn mul(x, y) {
    x * y
}

// Calculate the factorial of a number
fn factorial(x) {
    // Conditionals are supported!
    if x == 0 {
        1
    } else {
        mul(x, factorial(x - 1))
    }
}

// The main function
fn main() {
    let three = 3;
    let meaning_of_life = three * 14 + 1;

    print("Hello, world!");
    print("The meaning of life is...");

    if meaning_of_life == 42 {
        print(meaning_of_life);
    } else {
        print("...something we cannot know");

        print("However, I can tell you that the factorial of 10 is...");
        // Function calling
        print(factorial(10));
    }
}