handle trailing whitespace inside group

This commit is contained in:
Damien Elmes 2020-03-22 18:52:44 +10:00
parent 25ff4642ec
commit 430f1ad616

View file

@ -162,6 +162,9 @@ fn group_inner(input: &str) -> IResult<&str, Vec<Node>> {
if nodes.is_empty() {
Err(nom::Err::Error((remaining, nom::error::ErrorKind::Many1)))
} else {
// chomp any trailing whitespace
let (remaining, _) = whitespace0(remaining)?;
Ok((remaining, nodes))
}
}
@ -428,6 +431,16 @@ mod test {
]
);
// including in groups
assert_eq!(
parse("( t t2 )")?,
vec![Group(vec![
Search(UnqualifiedText("t".into())),
And,
Search(UnqualifiedText("t2".into()))
])]
);
assert_eq!(
parse(r#"hello -(world and "foo:bar baz") OR test"#)?,
vec![