(
&mut self,
)
| 5568 | } |
| 5569 | |
| 5570 | fn parse_option_map( |
| 5571 | &mut self, |
| 5572 | ) -> Result<Option<BTreeMap<String, WithOptionValue<Raw>>>, ParserError> { |
| 5573 | Ok(if self.parse_keyword(MAP) { |
| 5574 | self.expect_token(&Token::LBracket)?; |
| 5575 | let mut map = BTreeMap::new(); |
| 5576 | loop { |
| 5577 | if let Some(Token::RBracket) = self.peek_token() { |
| 5578 | break; |
| 5579 | } |
| 5580 | let key = match self.next_token() { |
| 5581 | Some(Token::String(s)) => s, |
| 5582 | token => return self.expected(self.peek_pos(), "string", token), |
| 5583 | }; |
| 5584 | self.expect_token(&Token::Arrow)?; |
| 5585 | let value = Parser::parse_option_value(self)?; |
| 5586 | map.insert(key, value); |
| 5587 | if !self.consume_token(&Token::Comma) { |
| 5588 | break; |
| 5589 | } |
| 5590 | } |
| 5591 | self.expect_token(&Token::RBracket)?; |
| 5592 | Some(map) |
| 5593 | } else { |
| 5594 | None |
| 5595 | }) |
| 5596 | } |
| 5597 | |
| 5598 | fn parse_option_value(&mut self) -> Result<WithOptionValue<Raw>, ParserError> { |
| 5599 | if let Some(seq) = self.parse_option_sequence(Parser::parse_option_value)? { |
no test coverage detected