Skip to main content

sudoku/
sudoku.rs

1use std::fs;
2
3fn main() {
4    let mzn_code = fs::read_to_string("examples/models/sudoku.mzn")
5        .expect("Failed to read sudoku.mzn");
6    
7    println!("=== Parsing Sudoku Example ===\n");
8    
9    let ast = match zelen::parse(&mzn_code) {
10        Ok(ast) => {
11            println!("✓ Parsing successful!");
12            println!("AST contains {} items", ast.items.len());
13            ast
14        }
15        Err(e) => {
16            println!("✗ Parsing failed: {}", e);
17            std::process::exit(1);
18        }
19    };
20    
21    println!("\n=== Translating Sudoku Example ===\n");
22    
23    match zelen::translate(&ast) {
24        Ok(_model) => {
25            println!("✓ Translation successful!");
26            println!("Model created successfully with 2D array constraints");
27        }
28        Err(e) => {
29            println!("✗ Translation failed: {}", e);
30            std::process::exit(1);
31        }
32    };
33}