glyph-runtime 0.0.1

Runtime execution engine for the Glyph programming language
Documentation
//! Test loops compilation and execution

use glyph_runtime::compiler::compile_and_run;

fn main() {
    // Test while loop
    let while_loop = r#"
@program(name="while_test", version="1.0", requires=[])

def main():
    let count = 0
    let sum = 0
    
    while count < 5:
        sum = sum + count
        count = count + 1
    
    return sum
"#;

    match compile_and_run(while_loop) {
        Ok(value) => println!("While loop result: {value:?}"),
        Err(e) => println!("While loop error: {e:?}"),
    }

    // Test for loop
    let for_loop = r#"
@program(name="for_test", version="1.0", requires=[])

def main():
    let numbers = [1, 2, 3, 4, 5]
    let sum = 0
    
    for num in numbers:
        sum = sum + num
    
    return sum
"#;

    match compile_and_run(for_loop) {
        Ok(value) => println!("For loop result: {value:?}"),
        Err(e) => println!("For loop error: {e:?}"),
    }

    // Test break and continue
    let break_continue = r#"
@program(name="break_continue_test", version="1.0", requires=[])

def main():
    let count = 0
    let sum = 0
    
    while count < 10:
        count = count + 1
        
        if count == 3:
            continue
        
        if count == 7:
            break
            
        sum = sum + count
    
    return sum  # Should be 1 + 2 + 4 + 5 + 6 = 18
"#;

    match compile_and_run(break_continue) {
        Ok(value) => println!("Break/continue result: {value:?}"),
        Err(e) => println!("Break/continue error: {e:?}"),
    }
}