luna-lib 1.3.0

a light weight interpreted programming language
Documentation
use crate::lang::ast::Chunk;

#[test]
fn counter() {
    use crate::run_str;

    let text = r#"
        let fn counter() {
            let counter = 0
            return fn () {
                counter = counter + 1
                return counter
            }
        }
        
        let c1 = counter()
        let c2 = counter()
        assert(c1() == 1)
        assert(c1() == 2)
        assert(c1() == 3)
        assert(c2() == 1)
        assert(c2() == 2)
        assert(c2() == 3)
    "#;
    dbg!(run_str::<Chunk>(text, None)).expect("error happened");
}
#[test]
fn counter_default() {
    use crate::run_str;

    let text = r#"
        let default = 1
        let fn counter() {
            let counter = 0
            return fn () {
                counter = counter + default
                return counter
            }
        }
        
        let c1 = counter()
        let c2 = counter()
        assert(c1() == 1)
        assert(c1() == 2)
        assert(c1() == 3)
        assert(c2() == 1)
        assert(c2() == 2)
        assert(c2() == 3)
    "#;
    dbg!(run_str::<Chunk>(text, None)).expect("error happened");
}