Restructure project
This commit is contained in:
parent
f5b84eaf63
commit
d7f04da0bd
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
pub mod error;
|
pub mod error;
|
||||||
pub mod output;
|
pub mod output;
|
||||||
|
pub(crate) mod traits;
|
||||||
pub mod translate;
|
pub mod translate;
|
||||||
mod utils;
|
mod utils;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
pub(crate) struct VariableDeclarationDisplay<'a, 'b, C>
|
pub(crate) struct VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>,
|
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>,
|
||||||
context: &'b C,
|
context: &'b C,
|
||||||
@ -11,8 +11,8 @@ pub(crate) fn display_variable_declaration<'a, 'b, C>(
|
|||||||
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>, context: &'b C)
|
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>, context: &'b C)
|
||||||
-> VariableDeclarationDisplay<'a, 'b, C>
|
-> VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
VariableDeclarationDisplay
|
VariableDeclarationDisplay
|
||||||
{
|
{
|
||||||
@ -51,8 +51,8 @@ pub(crate) fn display_formula<'a, 'b, C>(formula: &'a foliage::Formula,
|
|||||||
parent_precedence: Option<i32>, context: &'b C)
|
parent_precedence: Option<i32>, context: &'b C)
|
||||||
-> FormulaDisplay<'a, 'b, C>
|
-> FormulaDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
FormulaDisplay
|
FormulaDisplay
|
||||||
{
|
{
|
||||||
@ -126,8 +126,8 @@ impl Precedence for foliage::Formula
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Debug for VariableDeclarationDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Debug for VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -147,8 +147,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Display for VariableDeclarationDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Display for VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -158,8 +158,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Debug for TermDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Debug for TermDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -245,8 +245,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Display for TermDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Display for TermDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -256,8 +256,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Debug for FormulaDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Debug for FormulaDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -393,8 +393,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Display for FormulaDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Display for FormulaDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
|
@ -35,8 +35,8 @@ impl std::fmt::Display for DomainDisplay
|
|||||||
|
|
||||||
pub(crate) struct VariableDeclarationDisplay<'a, 'b, C>
|
pub(crate) struct VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>,
|
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>,
|
||||||
context: &'b C,
|
context: &'b C,
|
||||||
@ -46,8 +46,8 @@ pub(crate) fn display_variable_declaration<'a, 'b, C>(
|
|||||||
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>, context: &'b C)
|
variable_declaration: &'a std::rc::Rc<foliage::VariableDeclaration>, context: &'b C)
|
||||||
-> VariableDeclarationDisplay<'a, 'b, C>
|
-> VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
VariableDeclarationDisplay
|
VariableDeclarationDisplay
|
||||||
{
|
{
|
||||||
@ -65,8 +65,8 @@ pub(crate) struct TermDisplay<'a, 'b, C>
|
|||||||
pub(crate) fn display_term<'a, 'b, C>(term: &'a foliage::Term, context: &'b C)
|
pub(crate) fn display_term<'a, 'b, C>(term: &'a foliage::Term, context: &'b C)
|
||||||
-> TermDisplay<'a, 'b, C>
|
-> TermDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
TermDisplay
|
TermDisplay
|
||||||
{
|
{
|
||||||
@ -84,8 +84,8 @@ pub(crate) struct FormulaDisplay<'a, 'b, C>
|
|||||||
pub(crate) fn display_formula<'a, 'b, C>(formula: &'a foliage::Formula, context: &'b C)
|
pub(crate) fn display_formula<'a, 'b, C>(formula: &'a foliage::Formula, context: &'b C)
|
||||||
-> FormulaDisplay<'a, 'b, C>
|
-> FormulaDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
FormulaDisplay
|
FormulaDisplay
|
||||||
{
|
{
|
||||||
@ -96,8 +96,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Debug for VariableDeclarationDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Debug for VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -117,8 +117,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Display for VariableDeclarationDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Display for VariableDeclarationDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -128,8 +128,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Debug for TermDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Debug for TermDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -199,8 +199,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Display for TermDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Display for TermDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -210,8 +210,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Debug for FormulaDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Debug for FormulaDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
@ -342,8 +342,8 @@ where
|
|||||||
|
|
||||||
impl<'a, 'b, C> std::fmt::Display for FormulaDisplay<'a, 'b, C>
|
impl<'a, 'b, C> std::fmt::Display for FormulaDisplay<'a, 'b, C>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::VariableDeclarationDomain
|
C: crate::traits::VariableDeclarationDomain
|
||||||
+ crate::translate::common::VariableDeclarationID
|
+ crate::traits::VariableDeclarationID
|
||||||
{
|
{
|
||||||
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
||||||
{
|
{
|
||||||
|
35
src/traits.rs
Normal file
35
src/traits.rs
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
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>;
|
||||||
|
}
|
@ -3,39 +3,3 @@ mod operators;
|
|||||||
|
|
||||||
pub(crate) use choose_value_in_term::*;
|
pub(crate) use choose_value_in_term::*;
|
||||||
pub(crate) use operators::*;
|
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)
|
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>, context: &C)
|
||||||
-> Result<foliage::Formula, crate::Error>
|
-> Result<foliage::Formula, crate::Error>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::GetOrCreateFunctionDeclaration
|
C: crate::traits::GetOrCreateFunctionDeclaration
|
||||||
+ crate::translate::common::GetOrCreateVariableDeclaration
|
+ crate::traits::GetOrCreateVariableDeclaration
|
||||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
+ crate::traits::AssignVariableDeclarationDomain
|
||||||
{
|
{
|
||||||
match term.term_type()
|
match term.term_type()
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,7 @@ mod translate_body;
|
|||||||
use context::*;
|
use context::*;
|
||||||
use head_type::*;
|
use head_type::*;
|
||||||
use translate_body::*;
|
use translate_body::*;
|
||||||
use crate::translate::common::AssignVariableDeclarationDomain as _;
|
use crate::traits::AssignVariableDeclarationDomain as _;
|
||||||
|
|
||||||
struct StatementHandler
|
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)
|
fn get_or_create_function_declaration(&self, name: &str, arity: usize)
|
||||||
-> std::rc::Rc<foliage::FunctionDeclaration>
|
-> 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)
|
fn get_or_create_predicate_declaration(&self, name: &str, arity: usize)
|
||||||
-> std::rc::Rc<foliage::PredicateDeclaration>
|
-> 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)
|
fn get_or_create_variable_declaration(&self, name: &str)
|
||||||
-> std::rc::Rc<foliage::VariableDeclaration>
|
-> 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,
|
fn assign_variable_declaration_domain(&self,
|
||||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>, domain: crate::Domain)
|
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,
|
fn variable_declaration_domain(&self,
|
||||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>)
|
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,
|
fn variable_declaration_id(&self,
|
||||||
variable_declaration: &std::rc::Rc<foliage::VariableDeclaration>)
|
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)
|
pub(crate) fn determine_head_type<'a, C>(head_literal: &'a clingo::ast::HeadLiteral, context: &C)
|
||||||
-> Result<HeadType<'a>, crate::Error>
|
-> Result<HeadType<'a>, crate::Error>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::GetOrCreatePredicateDeclaration
|
C: crate::traits::GetOrCreatePredicateDeclaration
|
||||||
{
|
{
|
||||||
let create_head_atom = |function: &'a clingo::ast::Function| -> Result<_, crate::Error>
|
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)
|
context: &C)
|
||||||
-> Result<foliage::Formula, crate::Error>
|
-> Result<foliage::Formula, crate::Error>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::GetOrCreateVariableDeclaration
|
C: crate::traits::GetOrCreateVariableDeclaration
|
||||||
+ crate::translate::common::GetOrCreateFunctionDeclaration
|
+ crate::traits::GetOrCreateFunctionDeclaration
|
||||||
+ crate::translate::common::GetOrCreatePredicateDeclaration
|
+ crate::traits::GetOrCreatePredicateDeclaration
|
||||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
+ crate::traits::AssignVariableDeclarationDomain
|
||||||
{
|
{
|
||||||
let function = match body_term.term_type()
|
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)
|
context: &C)
|
||||||
-> Result<foliage::Formula, crate::Error>
|
-> Result<foliage::Formula, crate::Error>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::GetOrCreateVariableDeclaration
|
C: crate::traits::GetOrCreateVariableDeclaration
|
||||||
+ crate::translate::common::GetOrCreateFunctionDeclaration
|
+ crate::traits::GetOrCreateFunctionDeclaration
|
||||||
+ crate::translate::common::GetOrCreatePredicateDeclaration
|
+ crate::traits::GetOrCreatePredicateDeclaration
|
||||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
+ crate::traits::AssignVariableDeclarationDomain
|
||||||
{
|
{
|
||||||
match body_literal.sign()
|
match body_literal.sign()
|
||||||
{
|
{
|
||||||
@ -147,10 +147,10 @@ pub(crate) fn translate_body<C>(body_literals: &[clingo::ast::BodyLiteral],
|
|||||||
context: &C)
|
context: &C)
|
||||||
-> Result<foliage::Formulas, crate::Error>
|
-> Result<foliage::Formulas, crate::Error>
|
||||||
where
|
where
|
||||||
C: crate::translate::common::GetOrCreateVariableDeclaration
|
C: crate::traits::GetOrCreateVariableDeclaration
|
||||||
+ crate::translate::common::GetOrCreateFunctionDeclaration
|
+ crate::traits::GetOrCreateFunctionDeclaration
|
||||||
+ crate::translate::common::GetOrCreatePredicateDeclaration
|
+ crate::traits::GetOrCreatePredicateDeclaration
|
||||||
+ crate::translate::common::AssignVariableDeclarationDomain
|
+ crate::traits::AssignVariableDeclarationDomain
|
||||||
{
|
{
|
||||||
body_literals.iter()
|
body_literals.iter()
|
||||||
.map(|body_literal| translate_body_literal(body_literal, context)
|
.map(|body_literal| translate_body_literal(body_literal, context)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user