(&mut self, mut f: F)
| 6910 | } |
| 6911 | |
| 6912 | fn parse_sequence<F>(&mut self, mut f: F) -> Result<Vec<Expr<Raw>>, ParserError> |
| 6913 | where |
| 6914 | F: FnMut(&mut Self) -> Result<Expr<Raw>, ParserError>, |
| 6915 | { |
| 6916 | self.expect_token(&Token::LBracket)?; |
| 6917 | let mut exprs = vec![]; |
| 6918 | loop { |
| 6919 | if let Some(Token::RBracket) = self.peek_token() { |
| 6920 | break; |
| 6921 | } |
| 6922 | let expr = if let Some(Token::LBracket) = self.peek_token() { |
| 6923 | f(self)? |
| 6924 | } else { |
| 6925 | self.parse_expr()? |
| 6926 | }; |
| 6927 | exprs.push(expr); |
| 6928 | if !self.consume_token(&Token::Comma) { |
| 6929 | break; |
| 6930 | } |
| 6931 | } |
| 6932 | self.expect_token(&Token::RBracket)?; |
| 6933 | Ok(exprs) |
| 6934 | } |
| 6935 | |
| 6936 | fn parse_number_value(&mut self) -> Result<Value, ParserError> { |
| 6937 | match self.parse_value()? { |
no test coverage detected