|
|
|
@ -67,6 +67,26 @@ impl Precedence for crate::Formula
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl std::fmt::Debug for crate::SpecialInteger
|
|
|
|
|
{
|
|
|
|
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
|
|
|
|
{
|
|
|
|
|
match &self
|
|
|
|
|
{
|
|
|
|
|
crate::SpecialInteger::Infimum => write!(format, "#inf"),
|
|
|
|
|
crate::SpecialInteger::Supremum => write!(format, "#sup"),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl std::fmt::Display for crate::SpecialInteger
|
|
|
|
|
{
|
|
|
|
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
|
|
|
|
{
|
|
|
|
|
write!(format, "{:?}", &self)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl std::fmt::Debug for crate::FunctionDeclaration
|
|
|
|
|
{
|
|
|
|
|
fn fmt(&self, format: &mut std::fmt::Formatter) -> std::fmt::Result
|
|
|
|
@ -121,8 +141,7 @@ struct TermDisplay<'term>
|
|
|
|
|
term: &'term crate::Term,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn display_term<'term>(term: &'term crate::Term, parent_precedence: Option<i32>)
|
|
|
|
|
-> TermDisplay<'term>
|
|
|
|
|
fn display_term(term: &crate::Term, parent_precedence: Option<i32>) -> TermDisplay
|
|
|
|
|
{
|
|
|
|
|
TermDisplay
|
|
|
|
|
{
|
|
|
|
@ -152,8 +171,7 @@ impl<'term> std::fmt::Debug for TermDisplay<'term>
|
|
|
|
|
{
|
|
|
|
|
crate::Term::Boolean(true) => write!(format, "true"),
|
|
|
|
|
crate::Term::Boolean(false) => write!(format, "false"),
|
|
|
|
|
crate::Term::SpecialInteger(crate::SpecialInteger::Infimum) => write!(format, "#inf"),
|
|
|
|
|
crate::Term::SpecialInteger(crate::SpecialInteger::Supremum) => write!(format, "#sup"),
|
|
|
|
|
crate::Term::SpecialInteger(value) => write!(format, "{:?}", value),
|
|
|
|
|
crate::Term::Integer(value) => write!(format, "{}", value),
|
|
|
|
|
crate::Term::String(value) => write!(format, "\"{}\"", value),
|
|
|
|
|
crate::Term::Variable(variable) => write!(format, "{:?}", variable.declaration),
|
|
|
|
@ -165,9 +183,9 @@ impl<'term> std::fmt::Debug for TermDisplay<'term>
|
|
|
|
|
"number of function arguments differs from declaration (expected {}, got {})",
|
|
|
|
|
function.declaration.arity, function.arguments.len());
|
|
|
|
|
|
|
|
|
|
if function.arguments.len() > 0
|
|
|
|
|
if !function.arguments.is_empty()
|
|
|
|
|
{
|
|
|
|
|
write!(format, "{}(", function.declaration.name)?;
|
|
|
|
|
write!(format, "(")?;
|
|
|
|
|
|
|
|
|
|
let mut separator = "";
|
|
|
|
|
|
|
|
|
@ -238,8 +256,7 @@ struct FormulaDisplay<'formula>
|
|
|
|
|
formula: &'formula crate::Formula,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn display_formula<'formula>(formula: &'formula crate::Formula, parent_precedence: Option<i32>)
|
|
|
|
|
-> FormulaDisplay<'formula>
|
|
|
|
|
fn display_formula(formula: &crate::Formula, parent_precedence: Option<i32>) -> FormulaDisplay
|
|
|
|
|
{
|
|
|
|
|
FormulaDisplay
|
|
|
|
|
{
|
|
|
|
|