aboutsummaryrefslogtreecommitdiff
path: root/src/fexpr/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fexpr/mod.rs')
-rw-r--r--src/fexpr/mod.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/fexpr/mod.rs b/src/fexpr/mod.rs
new file mode 100644
index 0000000..f2b1090
--- /dev/null
+++ b/src/fexpr/mod.rs
@@ -0,0 +1,25 @@
+//! 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),
+}