Bail out if the current token is not an expected keyword or token, or consume it if it is
(
&mut self,
expected_keyword: Keyword,
expected_token: &Token,
)
| 1970 | |
| 1971 | /// Bail out if the current token is not an expected keyword or token, or consume it if it is |
| 1972 | fn expect_keyword_or_token( |
| 1973 | &mut self, |
| 1974 | expected_keyword: Keyword, |
| 1975 | expected_token: &Token, |
| 1976 | ) -> Result<(), ParserError> { |
| 1977 | if self.parse_keyword(expected_keyword) || self.consume_token(expected_token) { |
| 1978 | Ok(()) |
| 1979 | } else { |
| 1980 | self.expected( |
| 1981 | self.peek_pos(), |
| 1982 | format!("{expected_keyword} or {expected_token}"), |
| 1983 | self.peek_token(), |
| 1984 | ) |
| 1985 | } |
| 1986 | } |
| 1987 | |
| 1988 | /// Optional '=', then comma-separated list in parens/brackets. |
| 1989 | fn parse_list_value<T, F>(&mut self, f: F) -> Result<Vec<T>, ParserError> |
no test coverage detected