| 2284 | }; |
| 2285 | |
| 2286 | std::shared_ptr<base> parse_value(std::string::iterator& it, |
| 2287 | std::string::iterator& end) |
| 2288 | { |
| 2289 | parse_type type = determine_value_type(it, end); |
| 2290 | switch (type) |
| 2291 | { |
| 2292 | case parse_type::STRING: |
| 2293 | return parse_string(it, end); |
| 2294 | case parse_type::LOCAL_TIME: |
| 2295 | return parse_time(it, end); |
| 2296 | case parse_type::LOCAL_DATE: |
| 2297 | case parse_type::LOCAL_DATETIME: |
| 2298 | case parse_type::OFFSET_DATETIME: |
| 2299 | return parse_date(it, end); |
| 2300 | case parse_type::INT: |
| 2301 | case parse_type::FLOAT: |
| 2302 | return parse_number(it, end); |
| 2303 | case parse_type::BOOL: |
| 2304 | return parse_bool(it, end); |
| 2305 | case parse_type::ARRAY: |
| 2306 | return parse_array(it, end); |
| 2307 | case parse_type::INLINE_TABLE: |
| 2308 | return parse_inline_table(it, end); |
| 2309 | default: |
| 2310 | throw_parse_exception("Failed to parse value"); |
| 2311 | } |
| 2312 | } |
| 2313 | |
| 2314 | parse_type determine_value_type(const std::string::iterator& it, |
| 2315 | const std::string::iterator& end) |
no test coverage detected