2020-02-04 23:33:59 +01:00
|
|
|
mod arithmetic_terms;
|
2020-05-11 03:41:33 +02:00
|
|
|
mod closures;
|
2020-02-04 23:33:59 +01:00
|
|
|
|
|
|
|
pub(crate) use arithmetic_terms::*;
|
2020-05-11 03:41:33 +02:00
|
|
|
pub(crate) use closures::*;
|
2020-02-04 23:33:59 +01:00
|
|
|
|
|
|
|
#[derive(Clone, Copy, Debug, Eq, Ord, PartialEq, PartialOrd)]
|
|
|
|
pub(crate) enum OperatorNotation
|
|
|
|
{
|
|
|
|
Prefix,
|
|
|
|
Infix,
|
|
|
|
}
|
|
|
|
|
2020-02-05 19:40:21 +01:00
|
|
|
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
|
|
|
|
pub enum Domain
|
2020-02-04 16:42:50 +01:00
|
|
|
{
|
|
|
|
Program,
|
|
|
|
Integer,
|
|
|
|
}
|
|
|
|
|
2020-02-05 19:40:21 +01:00
|
|
|
impl std::fmt::Debug for Domain
|
|
|
|
{
|
|
|
|
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result
|
|
|
|
{
|
|
|
|
match self
|
|
|
|
{
|
|
|
|
Domain::Program => write!(formatter, "program"),
|
|
|
|
Domain::Integer => write!(formatter, "integer"),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl std::fmt::Display for Domain
|
|
|
|
{
|
|
|
|
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result
|
|
|
|
{
|
|
|
|
write!(formatter, "{:?}", self)
|
|
|
|
}
|
|
|
|
}
|