| 771 | |
| 772 | |
| 773 | bool |
| 774 | Reader::recoverFromError( TokenType skipUntilToken ) |
| 775 | { |
| 776 | int errorCount = int(errors_.size()); |
| 777 | Token skip; |
| 778 | while ( true ) |
| 779 | { |
| 780 | if ( !readToken(skip) ) |
| 781 | errors_.resize( errorCount ); // discard errors caused by recovery |
| 782 | if ( skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream ) |
| 783 | break; |
| 784 | } |
| 785 | errors_.resize( errorCount ); |
| 786 | return false; |
| 787 | } |
| 788 | |
| 789 | |
| 790 | bool |