diff --git a/src/parse.rs b/src/parse.rs index 6a5f03e..aa52e35 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -294,7 +294,7 @@ fn selector_list(input: Span) -> IResult { }; let (rest, list) = if is_dot { - let (rest, list) = match separated_list!(rest, dottok, barewordtok) { + let (rest, list) = match separated_list!(rest, dottok, alt!(barewordtok | digittok)) { IResult::Done(rest, val) => { (rest, val) } @@ -642,6 +642,12 @@ mod test { Token::new("bar", 1, 5)] => 1, 0))) ); + assert_eq!(selector_value(LocatedSpan::new("foo.0 ")), + IResult::Done(LocatedSpan{fragment: "", offset: 6, line: 1}, + Value::Selector(make_selector!(make_expr!("foo".to_string(), 1, 1) => [ + Token::new("0", 1, 5)] => + 1, 0))) + ); assert_eq!(selector_value(LocatedSpan::new("foo.bar;")), IResult::Done(LocatedSpan{fragment: ";", offset: 7, line: 1}, Value::Selector(make_selector!(make_expr!("foo", 1, 1) =>