diff --git a/src/common.rs b/src/common.rs index 3e49a1b..2592104 100644 --- a/src/common.rs +++ b/src/common.rs @@ -234,6 +234,25 @@ impl TryFrom for Whitespace { } } +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub enum Op { + Equal, + NotEqual, + GreaterThanEqual, + LessThanEqual, +} + +impl Display for Op { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Op::Equal => write!(f, "=="), + Op::NotEqual => write!(f, "!="), + Op::GreaterThanEqual => write!(f, ">="), + Op::LessThanEqual => write!(f, "<="), + } + } +} + #[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum Keyword { Important, @@ -243,6 +262,12 @@ pub enum Keyword { Inherit, Initial, Unset, + True, + False, + Not, + And, + Or, + Null, } impl Display for Keyword { @@ -255,6 +280,12 @@ impl Display for Keyword { Keyword::Inherit => write!(f, "inherit"), Keyword::Initial => write!(f, "initial"), Keyword::Unset => write!(f, "unset"), + Keyword::True => write!(f, "true"), + Keyword::False => write!(f, "false"), + Keyword::Not => write!(f, "not"), + Keyword::And => write!(f, "and"), + Keyword::Or => write!(f, "or"), + Keyword::Null => write!(f, "null"), } } } @@ -269,6 +300,12 @@ impl Into<&'static str> for Keyword { Keyword::Inherit => "inherit", Keyword::Initial => "initial", Keyword::Unset => "unset", + Keyword::True => "true", + Keyword::False => "false", + Keyword::Not => "not", + Keyword::And => "and", + Keyword::Or => "or", + Keyword::Null => "null", } } } @@ -286,6 +323,12 @@ impl TryFrom<&str> for Keyword { "inherit" => Ok(Keyword::Inherit), "initial" => Ok(Keyword::Initial), "unset" => Ok(Keyword::Unset), + "true" => Ok(Keyword::True), + "false" => Ok(Keyword::False), + "not" => Ok(Keyword::Not), + "and" => Ok(Keyword::And), + "or" => Ok(Keyword::Or), + "null" => Ok(Keyword::Null), _ => Err("invalid keyword"), } }