(&mut self)
| 153 | } |
| 154 | |
| 155 | fn parse_array(&mut self) -> Option<Vec<Value>> { |
| 156 | self.scanner |
| 157 | .consume(TokenType::OpenBracket, "Expect '[' before array."); |
| 158 | let mut values = Vec::new(); |
| 159 | |
| 160 | while !self.scanner.check(TokenType::CloseBracket) { |
| 161 | values.push(self.parse_value()?); |
| 162 | |
| 163 | if self.scanner.check(TokenType::Comma) { |
| 164 | self.scanner.advance(); // consume comma |
| 165 | } |
| 166 | } |
| 167 | |
| 168 | self.scanner |
| 169 | .consume(TokenType::CloseBracket, "Expect '] at the end of array."); |
| 170 | Some(values) |
| 171 | } |
| 172 | |
| 173 | fn parse_value(&mut self) -> Option<Value> { |
| 174 | let token = self.scanner.current; |
no test coverage detected