| 110 | } |
| 111 | |
| 112 | JSONReader::Token JSONReader::peekToken() { |
| 113 | auto c = _parser.peek(); |
| 114 | switch (c) { |
| 115 | case '{': |
| 116 | return JSONReader::Token::Object; |
| 117 | case '[': |
| 118 | return JSONReader::Token::Array; |
| 119 | case '"': |
| 120 | return JSONReader::Token::String; |
| 121 | case '0': |
| 122 | case '1': |
| 123 | case '2': |
| 124 | case '3': |
| 125 | case '4': |
| 126 | case '5': |
| 127 | case '6': |
| 128 | case '7': |
| 129 | case '8': |
| 130 | case '9': |
| 131 | return JSONReader::Token::Number; |
| 132 | case 't': |
| 133 | case 'f': |
| 134 | return JSONReader::Token::Boolean; |
| 135 | case 'n': |
| 136 | return JSONReader::Token::Null; |
| 137 | default: { |
| 138 | if (c == 0) { |
| 139 | ensureNotAtEnd(); |
| 140 | } else { |
| 141 | setErrorAtCurrentPosition(fmt::format("Invalid token '{}'", c)); |
| 142 | } |
| 143 | return JSONReader::Token::Error; |
| 144 | } |
| 145 | } |
| 146 | } |
| 147 | |
| 148 | bool JSONReader::tryParseEndObject() { |
| 149 | return tryParseToken('}'); |
no test coverage detected