diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 5f67886960..ab16dfb8a0 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -2262,7 +2262,7 @@ impl<'a> Parser<'a> { } } - /// Report unexpected token + /// Report `found` was encountered instead of `expected` pub fn expected(&self, expected: &str, found: TokenWithLocation) -> Result { parser_err!( format!("Expected {expected}, found: {found}"), @@ -2270,8 +2270,8 @@ impl<'a> Parser<'a> { ) } - /// Look for an expected keyword and consume it if it exists - #[must_use] + /// If the current token is the `expected` keyword, consume it and returns + /// true. Otherwise, no tokens are consumed and returns false [must_use]. pub fn parse_keyword(&mut self, expected: Keyword) -> bool { match self.peek_token().token { Token::Word(w) if expected == w.keyword => { @@ -2282,7 +2282,9 @@ impl<'a> Parser<'a> { } } - /// Look for an expected sequence of keywords and consume them if they exist + /// If the current and subsequent tokens exactly match the `keywords` + /// sequence, consume them and returns true. Otherwise, no tokens are + /// consumed and returns false #[must_use] pub fn parse_keywords(&mut self, keywords: &[Keyword]) -> bool { let index = self.index; @@ -2297,7 +2299,9 @@ impl<'a> Parser<'a> { true } - /// Look for one of the given keywords and return the one that matches. + /// If the current token is one of the given `keywords`, consume the token + /// and return the keyword that matches. Otherwise, no tokens are consumed + /// and returns `None`. #[must_use] pub fn parse_one_of_keywords(&mut self, keywords: &[Keyword]) -> Option { match self.peek_token().token { @@ -2314,9 +2318,10 @@ impl<'a> Parser<'a> { } } - /// Bail out if the current token is not one of the expected keywords, or consume it if it is + /// If the current token is one of the expected keywords, consume the token + /// and return the keyword that matches. Otherwise, return an error. pub fn expect_one_of_keywords(&mut self, keywords: &[Keyword]) -> Result { - if let Some(keyword) = self.parse_one_of_keywords(keywords) { + if let Some(keyword) = self.parse_one_of_keywords(keywords) { Ok(keyword) } else { let keywords: Vec = keywords.iter().map(|x| format!("{x:?}")).collect(); @@ -2327,7 +2332,8 @@ impl<'a> Parser<'a> { } } - /// Bail out if the current token is not an expected keyword, or consume it if it is + /// If the current token is the `expected` keyword, consume the token. + /// Otherwise return an error. pub fn expect_keyword(&mut self, expected: Keyword) -> Result<(), ParserError> { if self.parse_keyword(expected) { Ok(()) @@ -2336,8 +2342,8 @@ impl<'a> Parser<'a> { } } - /// Bail out if the following tokens are not the expected sequence of - /// keywords, or consume them if they are. + /// If the current and subsequent tokens exactly match the `keywords` + /// sequence, consume them and returns Ok. Otherwise, return an Error. pub fn expect_keywords(&mut self, expected: &[Keyword]) -> Result<(), ParserError> { for &kw in expected { self.expect_keyword(kw)?;