anthem-rs/src/translate/verify_properties.rs

29 lines
707 B
Rust

mod context;
mod translate_body;
mod translate_head;
pub use context::Context;
use translate_body::translate_body;
use translate_head::determine_head_type;
pub fn read(rule: &clingo::ast::Rule, context: &mut Context) -> Result<(), crate::Error>
{
let test = translate_body(rule.body(), context)?;
println!("{:?}", test);
let test = determine_head_type(rule.head(),
|name, arity| context.find_or_create_predicate_declaration(name, arity))?;
match test
{
translate_head::HeadType::ChoiceWithSingleAtom(_) => println!("choice single"),
translate_head::HeadType::IntegrityConstraint => println!("integrity"),
translate_head::HeadType::Trivial => println!("trivial"),
_ => (),
}
Ok(())
}