Commit 754ce0b9 authored by Niels Lohmann's avatar Niels Lohmann Committed by GitHub

Merge pull request #496 from TedLyngmo/fix_effcplusplus_warnings

Fix -Weffc++ warnings (GNU 6.3.1)
parents 758c4add 70bbf195
...@@ -6159,6 +6159,10 @@ class basic_json ...@@ -6159,6 +6159,10 @@ class basic_json
*/ */
class serializer class serializer
{ {
private:
serializer(const serializer&) = delete;
serializer& operator=(const serializer&) = delete;
public: public:
/*! /*!
@param[in] s output stream to serialize to @param[in] s output stream to serialize to
...@@ -9859,8 +9863,7 @@ class basic_json ...@@ -9859,8 +9863,7 @@ class basic_json
{ {
lexer_char_t yych; lexer_char_t yych;
unsigned int yyaccept = 0; unsigned int yyaccept = 0;
static const unsigned char yybm[] = static const unsigned char yybm[] = {
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 32, 32, 0, 0, 32, 0, 0, 0, 32, 32, 0, 0, 32, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
...@@ -9894,995 +9897,449 @@ class basic_json ...@@ -9894,995 +9897,449 @@ class basic_json
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
}; };
if ((m_limit - m_cursor) < 5) if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
{
fill_line_buffer(5); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yybm[0 + yych] & 32) if (yybm[0+yych] & 32) {
{
goto basic_json_parser_6; goto basic_json_parser_6;
} }
if (yych <= '[') if (yych <= '[') {
{ if (yych <= '-') {
if (yych <= '-') if (yych <= '"') {
{ if (yych <= 0x00) goto basic_json_parser_2;
if (yych <= '"') if (yych <= '!') goto basic_json_parser_4;
{
if (yych <= 0x00)
{
goto basic_json_parser_2;
}
if (yych <= '!')
{
goto basic_json_parser_4;
}
goto basic_json_parser_9; goto basic_json_parser_9;
} } else {
else if (yych <= '+') goto basic_json_parser_4;
{ if (yych <= ',') goto basic_json_parser_10;
if (yych <= '+')
{
goto basic_json_parser_4;
}
if (yych <= ',')
{
goto basic_json_parser_10;
}
goto basic_json_parser_12; goto basic_json_parser_12;
} }
} } else {
else if (yych <= '9') {
{ if (yych <= '/') goto basic_json_parser_4;
if (yych <= '9') if (yych <= '0') goto basic_json_parser_13;
{
if (yych <= '/')
{
goto basic_json_parser_4;
}
if (yych <= '0')
{
goto basic_json_parser_13;
}
goto basic_json_parser_15; goto basic_json_parser_15;
} } else {
else if (yych <= ':') goto basic_json_parser_17;
{ if (yych <= 'Z') goto basic_json_parser_4;
if (yych <= ':')
{
goto basic_json_parser_17;
}
if (yych <= 'Z')
{
goto basic_json_parser_4;
}
goto basic_json_parser_19; goto basic_json_parser_19;
} }
} }
} } else {
else if (yych <= 'n') {
{ if (yych <= 'e') {
if (yych <= 'n') if (yych == ']') goto basic_json_parser_21;
{
if (yych <= 'e')
{
if (yych == ']')
{
goto basic_json_parser_21;
}
goto basic_json_parser_4;
}
else
{
if (yych <= 'f')
{
goto basic_json_parser_23;
}
if (yych <= 'm')
{
goto basic_json_parser_4; goto basic_json_parser_4;
} } else {
if (yych <= 'f') goto basic_json_parser_23;
if (yych <= 'm') goto basic_json_parser_4;
goto basic_json_parser_24; goto basic_json_parser_24;
} }
} } else {
else if (yych <= 'z') {
{ if (yych == 't') goto basic_json_parser_25;
if (yych <= 'z')
{
if (yych == 't')
{
goto basic_json_parser_25;
}
goto basic_json_parser_4; goto basic_json_parser_4;
} } else {
else if (yych <= '{') goto basic_json_parser_26;
{ if (yych == '}') goto basic_json_parser_28;
if (yych <= '{')
{
goto basic_json_parser_26;
}
if (yych == '}')
{
goto basic_json_parser_28;
}
goto basic_json_parser_4; goto basic_json_parser_4;
} }
} }
} }
basic_json_parser_2: basic_json_parser_2:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::end_of_input; break; }
last_token_type = token_type::end_of_input; basic_json_parser_4:
break;
}
basic_json_parser_4:
++m_cursor; ++m_cursor;
basic_json_parser_5: basic_json_parser_5:
{ { last_token_type = token_type::parse_error; break; }
last_token_type = token_type::parse_error; basic_json_parser_6:
break;
}
basic_json_parser_6:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yybm[0 + yych] & 32) if (yybm[0+yych] & 32) {
{
goto basic_json_parser_6; goto basic_json_parser_6;
} }
{ { continue; }
continue; basic_json_parser_9:
}
basic_json_parser_9:
yyaccept = 0; yyaccept = 0;
yych = *(m_marker = ++m_cursor); yych = *(m_marker = ++m_cursor);
if (yych <= 0x1F) if (yych <= 0x1F) goto basic_json_parser_5;
{ if (yych <= 0x7F) goto basic_json_parser_31;
goto basic_json_parser_5; if (yych <= 0xC1) goto basic_json_parser_5;
} if (yych <= 0xF4) goto basic_json_parser_31;
if (yych <= 0x7F)
{
goto basic_json_parser_31;
}
if (yych <= 0xC1)
{
goto basic_json_parser_5;
}
if (yych <= 0xF4)
{
goto basic_json_parser_31;
}
goto basic_json_parser_5; goto basic_json_parser_5;
basic_json_parser_10: basic_json_parser_10:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::value_separator; break; }
last_token_type = token_type::value_separator; basic_json_parser_12:
break;
}
basic_json_parser_12:
yych = *++m_cursor; yych = *++m_cursor;
if (yych <= '/') if (yych <= '/') goto basic_json_parser_5;
{ if (yych <= '0') goto basic_json_parser_43;
goto basic_json_parser_5; if (yych <= '9') goto basic_json_parser_45;
}
if (yych <= '0')
{
goto basic_json_parser_43;
}
if (yych <= '9')
{
goto basic_json_parser_45;
}
goto basic_json_parser_5; goto basic_json_parser_5;
basic_json_parser_13: basic_json_parser_13:
yyaccept = 1; yyaccept = 1;
yych = *(m_marker = ++m_cursor); yych = *(m_marker = ++m_cursor);
if (yych <= '9') if (yych <= '9') {
{ if (yych == '.') goto basic_json_parser_47;
if (yych == '.') if (yych >= '0') goto basic_json_parser_48;
{ } else {
goto basic_json_parser_47; if (yych <= 'E') {
} if (yych >= 'E') goto basic_json_parser_51;
if (yych >= '0') } else {
{ if (yych == 'e') goto basic_json_parser_51;
goto basic_json_parser_48; }
} }
} basic_json_parser_14:
else { last_token_type = token_type::value_unsigned; break; }
{ basic_json_parser_15:
if (yych <= 'E')
{
if (yych >= 'E')
{
goto basic_json_parser_51;
}
}
else
{
if (yych == 'e')
{
goto basic_json_parser_51;
}
}
}
basic_json_parser_14:
{
last_token_type = token_type::value_unsigned;
break;
}
basic_json_parser_15:
yyaccept = 1; yyaccept = 1;
m_marker = ++m_cursor; m_marker = ++m_cursor;
if ((m_limit - m_cursor) < 3) if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
{
fill_line_buffer(3); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yybm[0 + yych] & 64) if (yybm[0+yych] & 64) {
{
goto basic_json_parser_15; goto basic_json_parser_15;
} }
if (yych <= 'D') if (yych <= 'D') {
{ if (yych == '.') goto basic_json_parser_47;
if (yych == '.')
{
goto basic_json_parser_47;
}
goto basic_json_parser_14; goto basic_json_parser_14;
} } else {
else if (yych <= 'E') goto basic_json_parser_51;
{ if (yych == 'e') goto basic_json_parser_51;
if (yych <= 'E')
{
goto basic_json_parser_51;
}
if (yych == 'e')
{
goto basic_json_parser_51;
}
goto basic_json_parser_14; goto basic_json_parser_14;
} }
basic_json_parser_17: basic_json_parser_17:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::name_separator; break; }
last_token_type = token_type::name_separator; basic_json_parser_19:
break;
}
basic_json_parser_19:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::begin_array; break; }
last_token_type = token_type::begin_array; basic_json_parser_21:
break;
}
basic_json_parser_21:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::end_array; break; }
last_token_type = token_type::end_array; basic_json_parser_23:
break;
}
basic_json_parser_23:
yyaccept = 0; yyaccept = 0;
yych = *(m_marker = ++m_cursor); yych = *(m_marker = ++m_cursor);
if (yych == 'a') if (yych == 'a') goto basic_json_parser_52;
{
goto basic_json_parser_52;
}
goto basic_json_parser_5; goto basic_json_parser_5;
basic_json_parser_24: basic_json_parser_24:
yyaccept = 0; yyaccept = 0;
yych = *(m_marker = ++m_cursor); yych = *(m_marker = ++m_cursor);
if (yych == 'u') if (yych == 'u') goto basic_json_parser_53;
{
goto basic_json_parser_53;
}
goto basic_json_parser_5; goto basic_json_parser_5;
basic_json_parser_25: basic_json_parser_25:
yyaccept = 0; yyaccept = 0;
yych = *(m_marker = ++m_cursor); yych = *(m_marker = ++m_cursor);
if (yych == 'r') if (yych == 'r') goto basic_json_parser_54;
{
goto basic_json_parser_54;
}
goto basic_json_parser_5; goto basic_json_parser_5;
basic_json_parser_26: basic_json_parser_26:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::begin_object; break; }
last_token_type = token_type::begin_object; basic_json_parser_28:
break;
}
basic_json_parser_28:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::end_object; break; }
last_token_type = token_type::end_object; basic_json_parser_30:
break;
}
basic_json_parser_30:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
basic_json_parser_31: basic_json_parser_31:
if (yybm[0 + yych] & 128) if (yybm[0+yych] & 128) {
{
goto basic_json_parser_30; goto basic_json_parser_30;
} }
if (yych <= 0xE0) if (yych <= 0xE0) {
{ if (yych <= '\\') {
if (yych <= '\\') if (yych <= 0x1F) goto basic_json_parser_32;
{ if (yych <= '"') goto basic_json_parser_33;
if (yych <= 0x1F)
{
goto basic_json_parser_32;
}
if (yych <= '"')
{
goto basic_json_parser_33;
}
goto basic_json_parser_35; goto basic_json_parser_35;
} } else {
else if (yych <= 0xC1) goto basic_json_parser_32;
{ if (yych <= 0xDF) goto basic_json_parser_36;
if (yych <= 0xC1)
{
goto basic_json_parser_32;
}
if (yych <= 0xDF)
{
goto basic_json_parser_36;
}
goto basic_json_parser_37; goto basic_json_parser_37;
} }
} } else {
else if (yych <= 0xEF) {
{ if (yych == 0xED) goto basic_json_parser_39;
if (yych <= 0xEF)
{
if (yych == 0xED)
{
goto basic_json_parser_39;
}
goto basic_json_parser_38; goto basic_json_parser_38;
} } else {
else if (yych <= 0xF0) goto basic_json_parser_40;
{ if (yych <= 0xF3) goto basic_json_parser_41;
if (yych <= 0xF0) if (yych <= 0xF4) goto basic_json_parser_42;
{
goto basic_json_parser_40;
}
if (yych <= 0xF3)
{
goto basic_json_parser_41;
}
if (yych <= 0xF4)
{
goto basic_json_parser_42;
} }
} }
} basic_json_parser_32:
basic_json_parser_32:
m_cursor = m_marker; m_cursor = m_marker;
if (yyaccept <= 1) if (yyaccept <= 1) {
{ if (yyaccept == 0) {
if (yyaccept == 0)
{
goto basic_json_parser_5; goto basic_json_parser_5;
} } else {
else
{
goto basic_json_parser_14; goto basic_json_parser_14;
} }
} } else {
else if (yyaccept == 2) {
{
if (yyaccept == 2)
{
goto basic_json_parser_44; goto basic_json_parser_44;
} } else {
else
{
goto basic_json_parser_58; goto basic_json_parser_58;
} }
} }
basic_json_parser_33: basic_json_parser_33:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::value_string; break; }
last_token_type = token_type::value_string; basic_json_parser_35:
break;
}
basic_json_parser_35:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 'e') if (yych <= 'e') {
{ if (yych <= '/') {
if (yych <= '/') if (yych == '"') goto basic_json_parser_30;
{ if (yych <= '.') goto basic_json_parser_32;
if (yych == '"')
{
goto basic_json_parser_30; goto basic_json_parser_30;
} } else {
if (yych <= '.') if (yych <= '\\') {
{ if (yych <= '[') goto basic_json_parser_32;
goto basic_json_parser_32;
}
goto basic_json_parser_30; goto basic_json_parser_30;
} } else {
else if (yych == 'b') goto basic_json_parser_30;
{
if (yych <= '\\')
{
if (yych <= '[')
{
goto basic_json_parser_32; goto basic_json_parser_32;
} }
goto basic_json_parser_30;
}
else
{
if (yych == 'b')
{
goto basic_json_parser_30;
} }
} else {
if (yych <= 'q') {
if (yych <= 'f') goto basic_json_parser_30;
if (yych == 'n') goto basic_json_parser_30;
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
} if (yych <= 's') {
} if (yych <= 'r') goto basic_json_parser_30;
else
{
if (yych <= 'q')
{
if (yych <= 'f')
{
goto basic_json_parser_30;
}
if (yych == 'n')
{
goto basic_json_parser_30;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
else if (yych <= 't') goto basic_json_parser_30;
{ if (yych <= 'u') goto basic_json_parser_55;
if (yych <= 's')
{
if (yych <= 'r')
{
goto basic_json_parser_30;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} }
else
{
if (yych <= 't')
{
goto basic_json_parser_30;
}
if (yych <= 'u')
{
goto basic_json_parser_55;
} }
goto basic_json_parser_32;
} }
} basic_json_parser_36:
}
basic_json_parser_36:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x7F) if (yych <= 0x7F) goto basic_json_parser_32;
{ if (yych <= 0xBF) goto basic_json_parser_30;
goto basic_json_parser_32;
}
if (yych <= 0xBF)
{
goto basic_json_parser_30;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_37: basic_json_parser_37:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x9F) if (yych <= 0x9F) goto basic_json_parser_32;
{ if (yych <= 0xBF) goto basic_json_parser_36;
goto basic_json_parser_32;
}
if (yych <= 0xBF)
{
goto basic_json_parser_36;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_38: basic_json_parser_38:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x7F) if (yych <= 0x7F) goto basic_json_parser_32;
{ if (yych <= 0xBF) goto basic_json_parser_36;
goto basic_json_parser_32;
}
if (yych <= 0xBF)
{
goto basic_json_parser_36;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_39: basic_json_parser_39:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x7F) if (yych <= 0x7F) goto basic_json_parser_32;
{ if (yych <= 0x9F) goto basic_json_parser_36;
goto basic_json_parser_32; goto basic_json_parser_32;
} basic_json_parser_40:
if (yych <= 0x9F)
{
goto basic_json_parser_36;
}
goto basic_json_parser_32;
basic_json_parser_40:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x8F) if (yych <= 0x8F) goto basic_json_parser_32;
{ if (yych <= 0xBF) goto basic_json_parser_38;
goto basic_json_parser_32;
}
if (yych <= 0xBF)
{
goto basic_json_parser_38;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_41: basic_json_parser_41:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x7F) if (yych <= 0x7F) goto basic_json_parser_32;
{ if (yych <= 0xBF) goto basic_json_parser_38;
goto basic_json_parser_32;
}
if (yych <= 0xBF)
{
goto basic_json_parser_38;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_42: basic_json_parser_42:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 0x7F) if (yych <= 0x7F) goto basic_json_parser_32;
{ if (yych <= 0x8F) goto basic_json_parser_38;
goto basic_json_parser_32;
}
if (yych <= 0x8F)
{
goto basic_json_parser_38;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_43: basic_json_parser_43:
yyaccept = 2; yyaccept = 2;
yych = *(m_marker = ++m_cursor); yych = *(m_marker = ++m_cursor);
if (yych <= '9') if (yych <= '9') {
{ if (yych == '.') goto basic_json_parser_47;
if (yych == '.') if (yych >= '0') goto basic_json_parser_48;
{ } else {
goto basic_json_parser_47; if (yych <= 'E') {
} if (yych >= 'E') goto basic_json_parser_51;
if (yych >= '0') } else {
{ if (yych == 'e') goto basic_json_parser_51;
goto basic_json_parser_48; }
} }
} basic_json_parser_44:
else { last_token_type = token_type::value_integer; break; }
{ basic_json_parser_45:
if (yych <= 'E')
{
if (yych >= 'E')
{
goto basic_json_parser_51;
}
}
else
{
if (yych == 'e')
{
goto basic_json_parser_51;
}
}
}
basic_json_parser_44:
{
last_token_type = token_type::value_integer;
break;
}
basic_json_parser_45:
yyaccept = 2; yyaccept = 2;
m_marker = ++m_cursor; m_marker = ++m_cursor;
if ((m_limit - m_cursor) < 3) if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
{
fill_line_buffer(3); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '9') if (yych <= '9') {
{ if (yych == '.') goto basic_json_parser_47;
if (yych == '.') if (yych <= '/') goto basic_json_parser_44;
{
goto basic_json_parser_47;
}
if (yych <= '/')
{
goto basic_json_parser_44;
}
goto basic_json_parser_45; goto basic_json_parser_45;
} } else {
else if (yych <= 'E') {
{ if (yych <= 'D') goto basic_json_parser_44;
if (yych <= 'E')
{
if (yych <= 'D')
{
goto basic_json_parser_44;
}
goto basic_json_parser_51;
}
else
{
if (yych == 'e')
{
goto basic_json_parser_51; goto basic_json_parser_51;
} } else {
if (yych == 'e') goto basic_json_parser_51;
goto basic_json_parser_44; goto basic_json_parser_44;
} }
} }
basic_json_parser_47: basic_json_parser_47:
yych = *++m_cursor; yych = *++m_cursor;
if (yych <= '/') if (yych <= '/') goto basic_json_parser_32;
{ if (yych <= '9') goto basic_json_parser_56;
goto basic_json_parser_32;
}
if (yych <= '9')
{
goto basic_json_parser_56;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_48: basic_json_parser_48:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '/') if (yych <= '/') goto basic_json_parser_50;
{ if (yych <= '9') goto basic_json_parser_48;
goto basic_json_parser_50; basic_json_parser_50:
} { last_token_type = token_type::parse_error; break; }
if (yych <= '9') basic_json_parser_51:
{
goto basic_json_parser_48;
}
basic_json_parser_50:
{
last_token_type = token_type::parse_error;
break;
}
basic_json_parser_51:
yych = *++m_cursor; yych = *++m_cursor;
if (yych <= ',') if (yych <= ',') {
{ if (yych == '+') goto basic_json_parser_59;
if (yych == '+')
{
goto basic_json_parser_59;
}
goto basic_json_parser_32;
}
else
{
if (yych <= '-')
{
goto basic_json_parser_59;
}
if (yych <= '/')
{
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
if (yych <= '9') if (yych <= '-') goto basic_json_parser_59;
{ if (yych <= '/') goto basic_json_parser_32;
goto basic_json_parser_60; if (yych <= '9') goto basic_json_parser_60;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} }
basic_json_parser_52: basic_json_parser_52:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 'l') if (yych == 'l') goto basic_json_parser_62;
{
goto basic_json_parser_62;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_53: basic_json_parser_53:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 'l') if (yych == 'l') goto basic_json_parser_63;
{
goto basic_json_parser_63;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_54: basic_json_parser_54:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 'u') if (yych == 'u') goto basic_json_parser_64;
{
goto basic_json_parser_64;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_55: basic_json_parser_55:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '@') if (yych <= '@') {
{ if (yych <= '/') goto basic_json_parser_32;
if (yych <= '/') if (yych <= '9') goto basic_json_parser_65;
{
goto basic_json_parser_32;
}
if (yych <= '9')
{
goto basic_json_parser_65;
}
goto basic_json_parser_32;
}
else
{
if (yych <= 'F')
{
goto basic_json_parser_65;
}
if (yych <= '`')
{
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
if (yych <= 'f') if (yych <= 'F') goto basic_json_parser_65;
{ if (yych <= '`') goto basic_json_parser_32;
goto basic_json_parser_65; if (yych <= 'f') goto basic_json_parser_65;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} }
basic_json_parser_56: basic_json_parser_56:
yyaccept = 3; yyaccept = 3;
m_marker = ++m_cursor; m_marker = ++m_cursor;
if ((m_limit - m_cursor) < 3) if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
{
fill_line_buffer(3); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= 'D') if (yych <= 'D') {
{ if (yych <= '/') goto basic_json_parser_58;
if (yych <= '/') if (yych <= '9') goto basic_json_parser_56;
{ } else {
goto basic_json_parser_58; if (yych <= 'E') goto basic_json_parser_51;
} if (yych == 'e') goto basic_json_parser_51;
if (yych <= '9') }
{ basic_json_parser_58:
goto basic_json_parser_56; { last_token_type = token_type::value_float; break; }
} basic_json_parser_59:
}
else
{
if (yych <= 'E')
{
goto basic_json_parser_51;
}
if (yych == 'e')
{
goto basic_json_parser_51;
}
}
basic_json_parser_58:
{
last_token_type = token_type::value_float;
break;
}
basic_json_parser_59:
yych = *++m_cursor; yych = *++m_cursor;
if (yych <= '/') if (yych <= '/') goto basic_json_parser_32;
{ if (yych >= ':') goto basic_json_parser_32;
goto basic_json_parser_32; basic_json_parser_60:
}
if (yych >= ':')
{
goto basic_json_parser_32;
}
basic_json_parser_60:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '/') if (yych <= '/') goto basic_json_parser_58;
{ if (yych <= '9') goto basic_json_parser_60;
goto basic_json_parser_58;
}
if (yych <= '9')
{
goto basic_json_parser_60;
}
goto basic_json_parser_58; goto basic_json_parser_58;
basic_json_parser_62: basic_json_parser_62:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 's') if (yych == 's') goto basic_json_parser_66;
{
goto basic_json_parser_66;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_63: basic_json_parser_63:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 'l') if (yych == 'l') goto basic_json_parser_67;
{
goto basic_json_parser_67;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_64: basic_json_parser_64:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 'e') if (yych == 'e') goto basic_json_parser_69;
{
goto basic_json_parser_69;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_65: basic_json_parser_65:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '@') if (yych <= '@') {
{ if (yych <= '/') goto basic_json_parser_32;
if (yych <= '/') if (yych <= '9') goto basic_json_parser_71;
{
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
if (yych <= '9') if (yych <= 'F') goto basic_json_parser_71;
{ if (yych <= '`') goto basic_json_parser_32;
goto basic_json_parser_71; if (yych <= 'f') goto basic_json_parser_71;
}
goto basic_json_parser_32;
}
else
{
if (yych <= 'F')
{
goto basic_json_parser_71;
}
if (yych <= '`')
{
goto basic_json_parser_32;
}
if (yych <= 'f')
{
goto basic_json_parser_71;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} }
basic_json_parser_66: basic_json_parser_66:
yych = *++m_cursor; yych = *++m_cursor;
if (yych == 'e') if (yych == 'e') goto basic_json_parser_72;
{
goto basic_json_parser_72;
}
goto basic_json_parser_32; goto basic_json_parser_32;
basic_json_parser_67: basic_json_parser_67:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::literal_null; break; }
last_token_type = token_type::literal_null; basic_json_parser_69:
break;
}
basic_json_parser_69:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::literal_true; break; }
last_token_type = token_type::literal_true; basic_json_parser_71:
break;
}
basic_json_parser_71:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '@') if (yych <= '@') {
{ if (yych <= '/') goto basic_json_parser_32;
if (yych <= '/') if (yych <= '9') goto basic_json_parser_74;
{
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
if (yych <= '9') if (yych <= 'F') goto basic_json_parser_74;
{ if (yych <= '`') goto basic_json_parser_32;
goto basic_json_parser_74; if (yych <= 'f') goto basic_json_parser_74;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} }
else basic_json_parser_72:
{
if (yych <= 'F')
{
goto basic_json_parser_74;
}
if (yych <= '`')
{
goto basic_json_parser_32;
}
if (yych <= 'f')
{
goto basic_json_parser_74;
}
goto basic_json_parser_32;
}
basic_json_parser_72:
++m_cursor; ++m_cursor;
{ { last_token_type = token_type::literal_false; break; }
last_token_type = token_type::literal_false; basic_json_parser_74:
break;
}
basic_json_parser_74:
++m_cursor; ++m_cursor;
if (m_limit <= m_cursor) if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
{
fill_line_buffer(1); // LCOV_EXCL_LINE
}
yych = *m_cursor; yych = *m_cursor;
if (yych <= '@') if (yych <= '@') {
{ if (yych <= '/') goto basic_json_parser_32;
if (yych <= '/') if (yych <= '9') goto basic_json_parser_30;
{
goto basic_json_parser_32; goto basic_json_parser_32;
} } else {
if (yych <= '9') if (yych <= 'F') goto basic_json_parser_30;
{ if (yych <= '`') goto basic_json_parser_32;
goto basic_json_parser_30; if (yych <= 'f') goto basic_json_parser_30;
}
goto basic_json_parser_32;
}
else
{
if (yych <= 'F')
{
goto basic_json_parser_30;
}
if (yych <= '`')
{
goto basic_json_parser_32;
}
if (yych <= 'f')
{
goto basic_json_parser_30;
}
goto basic_json_parser_32; goto basic_json_parser_32;
} }
} }
......
...@@ -6159,6 +6159,10 @@ class basic_json ...@@ -6159,6 +6159,10 @@ class basic_json
*/ */
class serializer class serializer
{ {
private:
serializer(const serializer&) = delete;
serializer& operator=(const serializer&) = delete;
public: public:
/*! /*!
@param[in] s output stream to serialize to @param[in] s output stream to serialize to
......
...@@ -49,16 +49,19 @@ enum class country ...@@ -49,16 +49,19 @@ enum class country
struct age struct age
{ {
int m_val; int m_val;
age(int rhs=0) : m_val(rhs) {}
}; };
struct name struct name
{ {
std::string m_val; std::string m_val;
name(const std::string rhs="") : m_val(rhs) {}
}; };
struct address struct address
{ {
std::string m_val; std::string m_val;
address(const std::string rhs="") : m_val(rhs) {}
}; };
struct person struct person
...@@ -66,18 +69,24 @@ struct person ...@@ -66,18 +69,24 @@ struct person
age m_age; age m_age;
name m_name; name m_name;
country m_country; country m_country;
person() : m_age(),m_name(),m_country() {}
person(const age& a, const name& n, const country& c) : m_age(a), m_name(n), m_country(c) {}
}; };
struct contact struct contact
{ {
person m_person; person m_person;
address m_address; address m_address;
contact() : m_person(), m_address() {}
contact(const person& p, const address& a) : m_person(p), m_address(a) {}
}; };
struct contact_book struct contact_book
{ {
name m_book_name; name m_book_name;
std::vector<contact> m_contacts; std::vector<contact> m_contacts;
contact_book() : m_book_name(), m_contacts() {}
contact_book(const name& n, const std::vector<contact>& c) : m_book_name(n), m_contacts(c) {}
}; };
} }
...@@ -319,6 +328,8 @@ namespace udt ...@@ -319,6 +328,8 @@ namespace udt
struct legacy_type struct legacy_type
{ {
std::string number; std::string number;
legacy_type() : number() {}
legacy_type(const std::string& n) : number(n) {}
}; };
} }
...@@ -593,6 +604,8 @@ struct small_pod ...@@ -593,6 +604,8 @@ struct small_pod
struct non_pod struct non_pod
{ {
std::string s; std::string s;
non_pod() : s() {}
non_pod(const std::string& S) : s(S) {}
}; };
template <typename BasicJsonType> template <typename BasicJsonType>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment