Advances until the next statement after failing to parse a `DO` statement.
(&mut self)
| 661 | |
| 662 | /// Advances until the next statement after failing to parse a `DO` statement. |
| 663 | fn reset_do(&mut self) -> Result<()> { |
| 664 | loop { |
| 665 | match self.lexer.peek()?.token { |
| 666 | Token::Eof => break, |
| 667 | Token::Loop => { |
| 668 | self.lexer.consume_peeked(); |
| 669 | loop { |
| 670 | match self.lexer.peek()?.token { |
| 671 | Token::Eof | Token::Eol => break, |
| 672 | _ => { |
| 673 | self.lexer.consume_peeked(); |
| 674 | } |
| 675 | } |
| 676 | } |
| 677 | break; |
| 678 | } |
| 679 | _ => { |
| 680 | self.lexer.consume_peeked(); |
| 681 | } |
| 682 | } |
| 683 | } |
| 684 | self.reset() |
| 685 | } |
| 686 | |
| 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`. |
no test coverage detected