//! Filter expression language. //! //! This module contains methods to parse a given string into an abstract filter tree, check its //! type and convert it to a [`Filter`][super::filters::Filter]. // Make it available in the grammar mod. use super::{filters, FightOutcome, SearchField, Weekday}; use lalrpop_util::lalrpop_mod; use thiserror::Error; lalrpop_mod!(pub grammar, "/fexpr/grammar.rs"); #[derive(Debug, Error)] pub enum FError { #[error("invalid regular expression: {0}")] InvalidRegex(String), #[error("invalid fight outcome: {0}")] InvalidFightOutcome(String), #[error("invalid weekday: {0}")] InvalidWeekday(String), #[error("invalid timestamp: {0}")] InvalidTimestamp(String), #[error("invalid boss name: {0}")] InvalidBoss(String), }