Fix range grammar not being anchored
This commit is contained in:
parent
e9ec2998f0
commit
45a1b403e0
2 changed files with 6 additions and 4 deletions
|
|
@ -69,9 +69,11 @@ fn parse_range(p: Pair<'_, Rule>) -> Result<Range> {
|
|||
let mut p = p.into_inner();
|
||||
|
||||
let (start, start_delta) = parse_range_start(p.next().unwrap())?;
|
||||
let (end, end_delta) = parse_range_end(p.next().unwrap())?;
|
||||
|
||||
assert_eq!(p.next(), None);
|
||||
let (end, end_delta) = match p.next() {
|
||||
// For some reason, the EOI gets captured but the SOI doesn't.
|
||||
Some(p) if p.as_rule() != Rule::EOI => parse_range_end(p)?,
|
||||
_ => (None, None),
|
||||
};
|
||||
|
||||
Ok(Range {
|
||||
start,
|
||||
|
|
|
|||
|
|
@ -146,4 +146,4 @@ file = ${ SOI ~ (empty_line* ~ command)* ~ empty_line* ~ WHITESPACE* ~ EOI }
|
|||
today = { "today" }
|
||||
range_start = { (datum | today) ~ delta? }
|
||||
range_end = { (datum | today) ~ delta? | delta }
|
||||
range = { range_start ~ ("--" ~ range_end)? }
|
||||
range = { SOI ~ range_start ~ ("--" ~ range_end)? ~ EOI}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue