blob: 482066881d4cdcf9e7329ecfcfd88e3c841eb9e4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
//! The definition of the "kairos" syntax, for parsing user input into TimeType objects
//!
//! The syntax itself is described in the grammar.rustpeg file.
//! Here goes a documentation on the syntax
//!
//! # Syntax
//!
//! ## Units
//!
//! UnitSec = "second" | "seconds" | "sec" | "secs" | "s"
//! UnitMin = "minute" | "minutes" | "min" | "mins"
//! UnitHr = "hour" | "hours" | "hr" | "hrs"
//! UnitDay = "day" | "days" | "d"
//! UnitWeek = "week" | "weeks" | "w"
//! UnitMonth = "month" | "months" |
//! UnitYear = "year" | "years" | "yrs"
//! Unit = UnitSec | UnitMin | UnitHr | UnitDay | UnitWeek | UnitMonth | UnitYear
//!
//! ## Operators
//!
//! Operator = "+" | "-"
//!
//! ## Intermediate syntax nodes
//!
//! Amount = "<Number><Unit>"
//!
//! TextIterSpec = "secondly" | "minutely" | "hourly" | "daily" | "weekly" | "monthly" | "yearly"
//! Iterspec = TextIterSpec | "every" <Number><Unit>
//!
//! ## User-facing syntax nodes
//!
//! AmountExp = <Amount> (<Operator> <AmountExp>)?
//! ExactDate = "today" | "yesterday" | "tomorrow" | <Iso8601>
//! Date = <ExactDate> (<Operator> <AmountExp>)?
//! Iterator = <Date> <Iterspec> ("until" <ExactDate> | <number> "times")?
//!
mod grammar {
include!(concat!(env!("OUT_DIR"), "/grammar.rs"));
}
|