Parses a potential `END` statement but, if this corresponds to a statement terminator such as `END IF`, returns the token that followed `END`.
(&mut self, pos: LineCol)
| 687 | /// Parses a potential `END` statement but, if this corresponds to a statement terminator such |
| 688 | /// as `END IF`, returns the token that followed `END`. |
| 689 | fn maybe_parse_end(&mut self, pos: LineCol) -> Result<std::result::Result<Statement, Token>> { |
| 690 | match self.lexer.peek()?.token { |
| 691 | Token::Function => Ok(Err(Token::Function)), |
| 692 | Token::If => Ok(Err(Token::If)), |
| 693 | Token::Select => Ok(Err(Token::Select)), |
| 694 | Token::Sub => Ok(Err(Token::Sub)), |
| 695 | _ => { |
| 696 | let code = self.parse_expr(None)?; |
| 697 | Ok(Ok(Statement::End(EndSpan { code, pos }))) |
| 698 | } |
| 699 | } |
| 700 | } |
| 701 | |
| 702 | /// Parses an `END` statement. |
| 703 | fn parse_end(&mut self, pos: LineCol) -> Result<Statement> { |
no test coverage detected