diff options
Diffstat (limited to 'src/fexpr/grammar.lalrpop')
| -rw-r--r-- | src/fexpr/grammar.lalrpop | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/src/fexpr/grammar.lalrpop b/src/fexpr/grammar.lalrpop index f193a90..8674b84 100644 --- a/src/fexpr/grammar.lalrpop +++ b/src/fexpr/grammar.lalrpop @@ -10,7 +10,7 @@ use evtclib::Boss;  use std::collections::HashSet;  use lalrpop_util::ParseError; -use chrono::NaiveDateTime; +use chrono::{DateTime, Local, TimeZone, Utc};  use regex::Regex;  grammar; @@ -134,23 +134,25 @@ Boss: Boss = {      }),  } -Date: NaiveDateTime = { -    <l:@L> <d:datetime> =>? NaiveDateTime::parse_from_str(d, "%Y-%m-%d %H:%M:%S") +Date: DateTime<Utc> = { +    <l:@L> <d:datetime> =>? Local.datetime_from_str(d, "%Y-%m-%d %H:%M:%S")          .map_err(|error| ParseError::User {              error: FError {                  location: l,                  data: d.into(),                  kind: error.into(),              } -        }), -    <l:@L> <d:date> =>? NaiveDateTime::parse_from_str(&format!("{} 00:00:00", d), "%Y-%m-%d %H:%M:%S") +        }) +        .map(|d| d.with_timezone(&Utc)), +    <l:@L> <d:date> =>? Local.datetime_from_str(&format!("{} 00:00:00", d), "%Y-%m-%d %H:%M:%S")          .map_err(|error| ParseError::User {              error: FError {                  location: l,                  data: d.into(),                  kind: error.into(),              } -        }), +        }) +        .map(|d| d.with_timezone(&Utc)),  }  Comma<T>: HashSet<T> = { | 
