| 192 | |
| 193 | |
| 194 | bool |
| 195 | Reader::readValue() |
| 196 | { |
| 197 | Token token; |
| 198 | skipCommentTokens( token ); |
| 199 | bool successful = true; |
| 200 | |
| 201 | if ( collectComments_ && !commentsBefore_.empty() ) |
| 202 | { |
| 203 | currentValue().setComment( commentsBefore_, commentBefore ); |
| 204 | commentsBefore_ = ""; |
| 205 | } |
| 206 | |
| 207 | |
| 208 | switch ( token.type_ ) |
| 209 | { |
| 210 | case tokenObjectBegin: |
| 211 | successful = readObject( token ); |
| 212 | break; |
| 213 | case tokenArrayBegin: |
| 214 | successful = readArray( token ); |
| 215 | break; |
| 216 | case tokenNumber: |
| 217 | successful = decodeNumber( token ); |
| 218 | break; |
| 219 | case tokenString: |
| 220 | successful = decodeString( token ); |
| 221 | break; |
| 222 | case tokenTrue: |
| 223 | currentValue() = true; |
| 224 | break; |
| 225 | case tokenFalse: |
| 226 | currentValue() = false; |
| 227 | break; |
| 228 | case tokenNull: |
| 229 | currentValue() = Value(); |
| 230 | break; |
| 231 | default: |
| 232 | return addError( "Syntax error: value, object or array expected.", token ); |
| 233 | } |
| 234 | |
| 235 | if ( collectComments_ ) |
| 236 | { |
| 237 | lastValueEnd_ = current_; |
| 238 | lastValue_ = ¤tValue(); |
| 239 | } |
| 240 | |
| 241 | return successful; |
| 242 | } |
| 243 | |
| 244 | |
| 245 | void |
nothing calls this directly
no test coverage detected