| 978 | } |
| 979 | |
| 980 | bool Reader::recoverFromError(TokenType skipUntilToken) { |
| 981 | size_t const errorCount = errors_.size(); |
| 982 | Token skip; |
| 983 | for (;;) { |
| 984 | if (!readToken(skip)) |
| 985 | errors_.resize(errorCount); // discard errors caused by recovery |
| 986 | if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream) |
| 987 | break; |
| 988 | } |
| 989 | errors_.resize(errorCount); |
| 990 | return false; |
| 991 | } |
| 992 | |
| 993 | bool Reader::addErrorAndRecover(const JSONCPP_STRING& message, |
| 994 | Token& token, |