use crate::pattern::regex;
use crate::types::{Rule, TokenData};
use super::Grain;
pub fn rules() -> Vec<Rule> {
vec![
Rule {
name: "second (grain)".to_string(),
pattern: vec![regex("წამ(ით|ი|ში|ს)?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Second))),
},
Rule {
name: "minute (grain)".to_string(),
pattern: vec![regex("წუთ(ით|ი|ში|ს)?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Minute))),
},
Rule {
name: "hour (grain)".to_string(),
pattern: vec![regex("საათ(ით|ი|ში|ს)?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Hour))),
},
Rule {
name: "day (grain)".to_string(),
pattern: vec![regex("დღით|დღის|დღე?(ში)?ს?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Day))),
},
Rule {
name: "week (grain)".to_string(),
pattern: vec![regex("კვირ(აში)?(ას|ით|ის|ა)?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Week))),
},
Rule {
name: "month (grain)".to_string(),
pattern: vec![regex("თვ(ეში|ით|ის|ეს|ს|ე)?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Month))),
},
Rule {
name: "quarter (grain)".to_string(),
pattern: vec![regex("კვარტა?ლ(ით|ი|ში|ს)?")],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Quarter))),
},
Rule {
name: "year (grain)".to_string(),
pattern: vec![regex(
"წლით|წელიწადი?(ით|ი|ში|ის|ს)?|წე?ლი?(ით|ის|ში|ს|იდან)?",
)],
production: Box::new(|_| Some(TokenData::TimeGrain(Grain::Year))),
},
]
}