Nav apraksta

main.rs 941B

    /* * Reads a CNF formula in DIMAC format on stdin, parses it and prints * the result. * * Many things (support for comments, empty lines and sane code in * general) are still missing. * * You have been warned ... */ extern crate solve; use std::io; use std::io::Read; use solve::cnf; use solve::dpll; fn main() { let input: &mut String = &mut String::new(); match io::stdin().read_to_string(input) { Ok(_) => match cnf::parse_dimac(input) { Ok(cnf) => { println!("cnf has {} variables and {} clauses", cnf.num_vars, cnf.num_clauses); for clause in cnf.clauses.clone() { println!("{:?}", clause); } match dpll::dpll(cnf.clauses) { Some(bindings) => println!("satisfiable: {:?}", bindings), None => println!("not satisfiable") } } Err(e) => { println!("Error: {}", e) } }, Err(e) => { println!("Error: {}", e) } } }