Restructure project
This commit is contained in:
@@ -3,39 +3,3 @@ mod operators;
|
||||
|
||||
pub(crate) use choose_value_in_term::*;
|
||||
pub(crate) use operators::*;
|
||||
|
||||
pub(crate) trait AssignVariableDeclarationDomain
|
||||
{
|
||||
fn assign_variable_declaration_domain(&self,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>, domain: crate::Domain);
|
||||
}
|
||||
|
||||
pub(crate) trait VariableDeclarationDomain
|
||||
{
|
||||
fn variable_declaration_domain(&self,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>) -> Option<crate::Domain>;
|
||||
}
|
||||
|
||||
pub(crate) trait VariableDeclarationID
|
||||
{
|
||||
fn variable_declaration_id(&self,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>) -> usize;
|
||||
}
|
||||
|
||||
pub(crate) trait GetOrCreateFunctionDeclaration
|
||||
{
|
||||
fn get_or_create_function_declaration(&self, name: &str, arity: usize)
|
||||
-> std::rc::Rc<foliage::FunctionDeclaration>;
|
||||
}
|
||||
|
||||
pub(crate) trait GetOrCreatePredicateDeclaration
|
||||
{
|
||||
fn get_or_create_predicate_declaration(&self, name: &str, arity: usize)
|
||||
-> std::rc::Rc<foliage::PredicateDeclaration>;
|
||||
}
|
||||
|
||||
pub(crate) trait GetOrCreateVariableDeclaration
|
||||
{
|
||||
fn get_or_create_variable_declaration(&self, name: &str)
|
||||
-> std::rc::Rc<foliage::VariableDeclaration>;
|
||||
}
|
||||
|
@@ -11,9 +11,9 @@ pub(crate) fn choose_value_in_term<C>(term: &clingo::ast::Term,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>, context: &C)
|
||||
-> Result<foliage::Formula, crate::Error>
|
||||
where
|
||||
C: crate::translate::common::GetOrCreateFunctionDeclaration
|
||||
+ crate::translate::common::GetOrCreateVariableDeclaration
|
||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
||||
C: crate::traits::GetOrCreateFunctionDeclaration
|
||||
+ crate::traits::GetOrCreateVariableDeclaration
|
||||
+ crate::traits::AssignVariableDeclarationDomain
|
||||
{
|
||||
match term.term_type()
|
||||
{
|
||||
|
@@ -5,7 +5,7 @@ mod translate_body;
|
||||
use context::*;
|
||||
use head_type::*;
|
||||
use translate_body::*;
|
||||
use crate::translate::common::AssignVariableDeclarationDomain as _;
|
||||
use crate::traits::AssignVariableDeclarationDomain as _;
|
||||
|
||||
struct StatementHandler
|
||||
{
|
||||
|
@@ -41,7 +41,7 @@ impl Context
|
||||
}
|
||||
}
|
||||
|
||||
impl crate::translate::common::GetOrCreateFunctionDeclaration for Context
|
||||
impl crate::traits::GetOrCreateFunctionDeclaration for Context
|
||||
{
|
||||
fn get_or_create_function_declaration(&self, name: &str, arity: usize)
|
||||
-> std::rc::Rc<foliage::FunctionDeclaration>
|
||||
@@ -67,7 +67,7 @@ impl crate::translate::common::GetOrCreateFunctionDeclaration for Context
|
||||
}
|
||||
}
|
||||
|
||||
impl crate::translate::common::GetOrCreatePredicateDeclaration for Context
|
||||
impl crate::traits::GetOrCreatePredicateDeclaration for Context
|
||||
{
|
||||
fn get_or_create_predicate_declaration(&self, name: &str, arity: usize)
|
||||
-> std::rc::Rc<foliage::PredicateDeclaration>
|
||||
@@ -93,7 +93,7 @@ impl crate::translate::common::GetOrCreatePredicateDeclaration for Context
|
||||
}
|
||||
}
|
||||
|
||||
impl crate::translate::common::GetOrCreateVariableDeclaration for Context
|
||||
impl crate::traits::GetOrCreateVariableDeclaration for Context
|
||||
{
|
||||
fn get_or_create_variable_declaration(&self, name: &str)
|
||||
-> std::rc::Rc<foliage::VariableDeclaration>
|
||||
@@ -116,7 +116,7 @@ impl crate::translate::common::GetOrCreateVariableDeclaration for Context
|
||||
}
|
||||
}
|
||||
|
||||
impl crate::translate::common::AssignVariableDeclarationDomain for Context
|
||||
impl crate::traits::AssignVariableDeclarationDomain for Context
|
||||
{
|
||||
fn assign_variable_declaration_domain(&self,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>, domain: crate::Domain)
|
||||
@@ -136,7 +136,7 @@ impl crate::translate::common::AssignVariableDeclarationDomain for Context
|
||||
}
|
||||
}
|
||||
|
||||
impl crate::translate::common::VariableDeclarationDomain for Context
|
||||
impl crate::traits::VariableDeclarationDomain for Context
|
||||
{
|
||||
fn variable_declaration_domain(&self,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>)
|
||||
@@ -149,7 +149,7 @@ impl crate::translate::common::VariableDeclarationDomain for Context
|
||||
}
|
||||
}
|
||||
|
||||
impl crate::translate::common::VariableDeclarationID for Context
|
||||
impl crate::traits::VariableDeclarationID for Context
|
||||
{
|
||||
fn variable_declaration_id(&self,
|
||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>)
|
||||
|
@@ -15,7 +15,7 @@ pub(crate) enum HeadType<'a>
|
||||
pub(crate) fn determine_head_type<'a, C>(head_literal: &'a clingo::ast::HeadLiteral, context: &C)
|
||||
-> Result<HeadType<'a>, crate::Error>
|
||||
where
|
||||
C: crate::translate::common::GetOrCreatePredicateDeclaration
|
||||
C: crate::traits::GetOrCreatePredicateDeclaration
|
||||
{
|
||||
let create_head_atom = |function: &'a clingo::ast::Function| -> Result<_, crate::Error>
|
||||
{
|
||||
|
@@ -2,10 +2,10 @@ pub(crate) fn translate_body_term<C>(body_term: &clingo::ast::Term, sign: clingo
|
||||
context: &C)
|
||||
-> Result<foliage::Formula, crate::Error>
|
||||
where
|
||||
C: crate::translate::common::GetOrCreateVariableDeclaration
|
||||
+ crate::translate::common::GetOrCreateFunctionDeclaration
|
||||
+ crate::translate::common::GetOrCreatePredicateDeclaration
|
||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
||||
C: crate::traits::GetOrCreateVariableDeclaration
|
||||
+ crate::traits::GetOrCreateFunctionDeclaration
|
||||
+ crate::traits::GetOrCreatePredicateDeclaration
|
||||
+ crate::traits::AssignVariableDeclarationDomain
|
||||
{
|
||||
let function = match body_term.term_type()
|
||||
{
|
||||
@@ -69,10 +69,10 @@ pub(crate) fn translate_body_literal<C>(body_literal: &clingo::ast::BodyLiteral,
|
||||
context: &C)
|
||||
-> Result<foliage::Formula, crate::Error>
|
||||
where
|
||||
C: crate::translate::common::GetOrCreateVariableDeclaration
|
||||
+ crate::translate::common::GetOrCreateFunctionDeclaration
|
||||
+ crate::translate::common::GetOrCreatePredicateDeclaration
|
||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
||||
C: crate::traits::GetOrCreateVariableDeclaration
|
||||
+ crate::traits::GetOrCreateFunctionDeclaration
|
||||
+ crate::traits::GetOrCreatePredicateDeclaration
|
||||
+ crate::traits::AssignVariableDeclarationDomain
|
||||
{
|
||||
match body_literal.sign()
|
||||
{
|
||||
@@ -147,10 +147,10 @@ pub(crate) fn translate_body<C>(body_literals: &[clingo::ast::BodyLiteral],
|
||||
context: &C)
|
||||
-> Result<foliage::Formulas, crate::Error>
|
||||
where
|
||||
C: crate::translate::common::GetOrCreateVariableDeclaration
|
||||
+ crate::translate::common::GetOrCreateFunctionDeclaration
|
||||
+ crate::translate::common::GetOrCreatePredicateDeclaration
|
||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
||||
C: crate::traits::GetOrCreateVariableDeclaration
|
||||
+ crate::traits::GetOrCreateFunctionDeclaration
|
||||
+ crate::traits::GetOrCreatePredicateDeclaration
|
||||
+ crate::traits::AssignVariableDeclarationDomain
|
||||
{
|
||||
body_literals.iter()
|
||||
.map(|body_literal| translate_body_literal(body_literal, context)
|
||||
|
Reference in New Issue
Block a user