mirror of
https://github.com/ToruNiina/toml11.git
synced 2025-09-18 02:08:09 +08:00
fix orders of call
This commit is contained in:
@@ -520,9 +520,9 @@ using is_fundamental_type =
|
|||||||
is_basic_multiline_string<charT>,
|
is_basic_multiline_string<charT>,
|
||||||
is_literal_inline_string<charT>,
|
is_literal_inline_string<charT>,
|
||||||
is_literal_multiline_string<charT>,
|
is_literal_multiline_string<charT>,
|
||||||
is_integer<charT>,
|
|
||||||
is_float<charT>,
|
|
||||||
is_boolean<charT>,
|
is_boolean<charT>,
|
||||||
|
is_float<charT>,
|
||||||
|
is_integer<charT>,
|
||||||
is_offset_date_time<charT>,
|
is_offset_date_time<charT>,
|
||||||
is_local_date_time<charT>,
|
is_local_date_time<charT>,
|
||||||
is_local_date<charT>,
|
is_local_date<charT>,
|
||||||
@@ -608,6 +608,7 @@ struct is_inline_table
|
|||||||
{
|
{
|
||||||
typedef is_one_of<is_fundamental_type<charT>,
|
typedef is_one_of<is_fundamental_type<charT>,
|
||||||
is_array<charT>, is_inline_table<charT>> is_component;
|
is_array<charT>, is_inline_table<charT>> is_component;
|
||||||
|
|
||||||
typedef is_chain_of<
|
typedef is_chain_of<
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_key<charT>,
|
is_key<charT>,
|
||||||
@@ -632,13 +633,13 @@ struct is_inline_table
|
|||||||
>
|
>
|
||||||
>,
|
>,
|
||||||
is_ignorable<
|
is_ignorable<
|
||||||
is_chain_of<
|
is_chain_of<
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_inline_key_value_pair,
|
is_inline_key_value_pair,
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_ignorable<is_charactor<charT, ','>>
|
is_ignorable<is_charactor<charT, ','>>
|
||||||
>
|
>
|
||||||
>,
|
>,
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_charactor<charT, '}'>
|
is_charactor<charT, '}'>
|
||||||
> entity;
|
> entity;
|
||||||
@@ -657,18 +658,18 @@ using is_table_definition =
|
|||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_charactor<charT, '['>,
|
is_charactor<charT, '['>,
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
|
is_key<charT>,
|
||||||
is_ignorable<
|
is_ignorable<
|
||||||
is_repeat_of<
|
is_repeat_of<
|
||||||
is_chain_of<
|
is_chain_of<
|
||||||
is_any_num_of_ws<charT>,
|
|
||||||
is_key<charT>,
|
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_charactor<charT, '.'>,
|
is_charactor<charT, '.'>,
|
||||||
|
is_any_num_of_ws<charT>,
|
||||||
|
is_key<charT>,
|
||||||
is_any_num_of_ws<charT>
|
is_any_num_of_ws<charT>
|
||||||
>,
|
>,
|
||||||
repeat_infinite()>
|
repeat_infinite()>
|
||||||
>,
|
>,
|
||||||
is_key<charT>,
|
|
||||||
is_charactor<charT, ']'>
|
is_charactor<charT, ']'>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@@ -677,18 +678,19 @@ using is_array_of_table_definition =
|
|||||||
is_chain_of<
|
is_chain_of<
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_repeat_of<is_charactor<charT, '['>, 2>,
|
is_repeat_of<is_charactor<charT, '['>, 2>,
|
||||||
|
is_any_num_of_ws<charT>,
|
||||||
|
is_key<charT>,
|
||||||
is_ignorable<
|
is_ignorable<
|
||||||
is_repeat_of<
|
is_repeat_of<
|
||||||
is_chain_of<
|
is_chain_of<
|
||||||
is_any_num_of_ws<charT>,
|
|
||||||
is_key<charT>,
|
|
||||||
is_any_num_of_ws<charT>,
|
is_any_num_of_ws<charT>,
|
||||||
is_charactor<charT, '.'>,
|
is_charactor<charT, '.'>,
|
||||||
|
is_any_num_of_ws<charT>,
|
||||||
|
is_key<charT>,
|
||||||
is_any_num_of_ws<charT>
|
is_any_num_of_ws<charT>
|
||||||
>,
|
>,
|
||||||
repeat_infinite()>
|
repeat_infinite()>
|
||||||
>,
|
>,
|
||||||
is_key<charT>,
|
|
||||||
is_repeat_of<is_charactor<charT, ']'>, 2>
|
is_repeat_of<is_charactor<charT, ']'>, 2>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
@@ -505,8 +505,9 @@ struct parse_fixed_type_array
|
|||||||
static result_type invoke(Iterator iter, Iterator end)
|
static result_type invoke(Iterator iter, Iterator end)
|
||||||
{
|
{
|
||||||
result_type result;
|
result_type result;
|
||||||
|
--end;
|
||||||
assert(*iter == '[' && *end == ']');
|
assert(*iter == '[' && *end == ']');
|
||||||
++iter; --end;
|
++iter;
|
||||||
iter = skippable::invoke(iter);
|
iter = skippable::invoke(iter);
|
||||||
while(iter != end)
|
while(iter != end)
|
||||||
{
|
{
|
||||||
@@ -565,6 +566,9 @@ struct parse_array
|
|||||||
return parse_fixed_type_array<charT, is_inline_table<charT>,
|
return parse_fixed_type_array<charT, is_inline_table<charT>,
|
||||||
parse_inline_table<charT>>::invoke(iter, end);
|
parse_inline_table<charT>>::invoke(iter, end);
|
||||||
|
|
||||||
|
if(is_skippable_in_array<charT>::invoke(init) == std::prev(end))
|
||||||
|
return result_type{}; // empty
|
||||||
|
|
||||||
throw internal_error("no valid array here");
|
throw internal_error("no valid array here");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -582,10 +586,10 @@ struct parse_value
|
|||||||
{
|
{
|
||||||
if(iter != is_string<charT>::invoke(iter))
|
if(iter != is_string<charT>::invoke(iter))
|
||||||
return result_type(parse_string<charT>::invoke(iter, end));
|
return result_type(parse_string<charT>::invoke(iter, end));
|
||||||
else if(iter != is_integer<charT>::invoke(iter))
|
|
||||||
return result_type(parse_integer<charT>::invoke(iter, end));
|
|
||||||
else if(iter != is_float<charT>::invoke(iter))
|
else if(iter != is_float<charT>::invoke(iter))
|
||||||
return result_type(parse_float<charT>::invoke(iter, end));
|
return result_type(parse_float<charT>::invoke(iter, end));
|
||||||
|
else if(iter != is_integer<charT>::invoke(iter))
|
||||||
|
return result_type(parse_integer<charT>::invoke(iter, end));
|
||||||
else if(iter != is_boolean<charT>::invoke(iter))
|
else if(iter != is_boolean<charT>::invoke(iter))
|
||||||
return result_type(parse_boolean<charT>::invoke(iter, end));
|
return result_type(parse_boolean<charT>::invoke(iter, end));
|
||||||
else if(iter != is_datetime<charT>::invoke(iter))
|
else if(iter != is_datetime<charT>::invoke(iter))
|
||||||
@@ -642,6 +646,7 @@ struct parse_key_value_pair
|
|||||||
{
|
{
|
||||||
typedef charT value_type;
|
typedef charT value_type;
|
||||||
typedef std::pair<toml::key, toml::value> result_type;
|
typedef std::pair<toml::key, toml::value> result_type;
|
||||||
|
|
||||||
template<typename Iterator, class = typename std::enable_if<
|
template<typename Iterator, class = typename std::enable_if<
|
||||||
std::is_same<typename std::iterator_traits<Iterator>::value_type,
|
std::is_same<typename std::iterator_traits<Iterator>::value_type,
|
||||||
value_type>::value>::type>
|
value_type>::value>::type>
|
||||||
|
Reference in New Issue
Block a user