Parse an identifier
(&mut self)
| 649 | |
| 650 | /// Parse an identifier |
| 651 | fn parse_ident(&mut self) -> crate::Result<Ident> { |
| 652 | match &self.current().kind { |
| 653 | TokenKind::Ident(name) => { |
| 654 | let span = self.current().span; |
| 655 | let name = name.clone(); |
| 656 | self.advance(); |
| 657 | Ok(Ident::new(name, span)) |
| 658 | } |
| 659 | _ => Err(ParseError::new( |
| 660 | self.current().span, |
| 661 | format!("Expected identifier, found {:?}", self.current().kind), |
| 662 | )), |
| 663 | } |
| 664 | } |
| 665 | |
| 666 | /// Check if current token matches |
| 667 | fn check(&self, kind: &TokenKind) -> bool { |
no test coverage detected