From: Francis Dupont Date: Fri, 24 Mar 2023 09:01:20 +0000 (+0000) Subject: [2785] Regen flex and bison X-Git-Tag: Kea-2.3.6~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b86464f430bcb38552e2693047a6d89d2910a73;p=thirdparty%2Fkea.git [2785] Regen flex and bison --- diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 46b3219872..8790fb9373 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,6 +1,6 @@ -#line 2 "dhcp4_lexer.cc" +#line 1 "dhcp4_lexer.cc" -#line 4 "dhcp4_lexer.cc" +#line 3 "dhcp4_lexer.cc" #define YY_INT_ALIGNED short int @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 224 -#define YY_END_OF_BUFFER 225 +#define YY_NUM_RULES 225 +#define YY_END_OF_BUFFER 226 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,21 +700,21 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2204] = +static const flex_int16_t yy_accept[2227] = { 0, - 217, 217, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 223, 10, 11, 223, 1, 217, 214, 217, 217, - 223, 216, 215, 223, 223, 223, 223, 223, 210, 211, - 223, 223, 223, 212, 213, 5, 5, 5, 223, 223, - 223, 10, 11, 0, 0, 205, 0, 0, 0, 0, + 218, 218, 0, 0, 0, 0, 0, 0, 0, 0, + 226, 224, 10, 11, 224, 1, 218, 215, 218, 218, + 224, 217, 216, 224, 224, 224, 224, 224, 211, 212, + 224, 224, 224, 213, 214, 5, 5, 5, 224, 224, + 224, 10, 11, 0, 0, 206, 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, 1, 217, - 217, 0, 216, 217, 3, 2, 6, 0, 217, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 218, + 218, 0, 217, 218, 3, 2, 6, 0, 218, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 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, 0, 0, 0, 0, @@ -724,7 +724,7 @@ static const flex_int16_t yy_accept[2204] = 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 207, 209, 0, + 0, 0, 0, 0, 0, 0, 0, 208, 210, 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, @@ -736,8 +736,8 @@ static const flex_int16_t yy_accept[2204] = 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, 222, - 220, 0, 219, 218, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 221, 0, 220, 219, 0, 0, 0, 0, 0, 0, 0, 180, 0, 179, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -751,7 +751,7 @@ static const flex_int16_t yy_accept[2204] = 18, 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, 19, 0, 0, 0, 0, 0, 221, 218, 0, + 0, 19, 0, 0, 0, 0, 0, 222, 219, 0, 0, 0, 0, 0, 0, 181, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 85, @@ -804,147 +804,149 @@ static const flex_int16_t yy_accept[2204] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 143, 111, 0, - 0, 0, 0, 0, 0, 116, 36, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 111, + 0, 0, 0, 0, 0, 0, 116, 36, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 118, 43, 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, 79, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, + 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, - 58, 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, 40, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, - 0, 0, 57, 0, 0, 0, 129, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 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, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 168, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 130, 0, - 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, - 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 23, 0, 139, + 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 0, 0, 0, 0, 0, 0, 0, 134, + 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 0, 87, 0, 0, 0, - 0, 82, 0, 0, 0, 0, 0, 0, 142, 0, - 38, 0, 161, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 0, 0, 0, 0, 0, 0, 107, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, + 0, 23, 0, 139, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, + 87, 0, 0, 0, 0, 82, 0, 0, 0, 0, + 0, 0, 142, 0, 38, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 136, 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, 194, 0, 0, 83, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 169, 0, 0, + 167, 0, 0, 158, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 22, 0, 0, 0, 0, 0, 182, + + 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 151, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, - 0, 83, 98, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 169, 0, 0, 167, 0, 0, 158, 157, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, - - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, - 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 140, 0, 15, 0, - 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 64, 0, 0, 135, 0, 0, 0, 126, + 0, 0, 140, 0, 15, 0, 0, 44, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 64, 0, + 0, 135, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 0, 90, 0, 0, 188, - 0, 0, 193, 0, 110, 0, 0, 0, 200, 0, + 56, 0, 90, 0, 0, 188, 0, 0, 193, 0, + 110, 0, 0, 0, 200, 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, 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, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, + 0, 0, 47, 0, 0, 196, 0, 0, 120, 31, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 191, 0, 164, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 0, 0, 0, 28, 0, 0, 170, 0, + 0, 0, 55, 0, 0, 0, 205, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 124, 0, 0, 0, 47, 0, 0, 196, 0, - 0, 120, 31, 0, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, - - 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 0, 0, 0, 0, 28, 0, 0, - 170, 0, 0, 0, 55, 0, 0, 0, 204, 0, - 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 60, 0, 0, 109, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, - 0, 109, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 141, 0, 0, 0, 30, 0, 0, + + 0, 0, 0, 192, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 141, 0, 0, 0, 30, - 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, - - 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, - 195, 0, 81, 0, 51, 0, 0, 0, 0, 189, - 187, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21, 0, 0, 195, + 0, 81, 0, 51, 0, 0, 0, 0, 189, 187, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, + 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 48, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 177, 0, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 0, 165, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 148, 0, 62, 61, 20, 0, 173, + 0, 177, 0, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 0, 62, 61, 20, + 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, - 0, 0, 147, 0, 0, 0, 0, 0, 54, 0, - 67, 0, 49, 175, 0, 101, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, + 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, + 0, 54, 0, 67, 0, 49, 175, 0, 101, 0, + 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, + 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 76, 0, 0, 0, 0, 153, 0, 0, 0, 0, - - 0, 198, 201, 174, 0, 121, 102, 0, 0, 0, - 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, - 0, 0, 150, 0, 74, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, - 0, 0, 144, 0, 0, 178, 202, 199, 0, 0, + + 0, 0, 33, 0, 0, 76, 0, 0, 0, 0, + 153, 0, 0, 0, 0, 0, 0, 198, 201, 174, + 0, 121, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 0, 0, 0, 0, 0, 150, + 0, 74, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, + 144, 0, 0, 178, 0, 203, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 0, 0, 0, 0, 27, 25, - 0, 0, 0, 78, 0, 0, 105, 0, 70, 0, - 0, 0, 0, 0, 0, 0, 0, 69, 0, 146, + 0, 0, 0, 73, 0, 0, 0, 0, 0, 27, - 26, 197, 0 + 25, 0, 0, 0, 78, 0, 0, 105, 0, 0, + 70, 0, 0, 0, 202, 0, 0, 0, 0, 0, + 69, 0, 146, 26, 197, 0 } ; static const YY_CHAR yy_ec[256] = @@ -991,283 +993,285 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[2212] = +static const flex_int16_t yy_base[2235] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2594, 2595, 34, 2590, 145, 0, 207, 2595, 214, 221, - 13, 228, 2595, 2570, 118, 25, 2, 6, 2595, 2595, - 73, 11, 17, 2595, 2595, 2595, 104, 2578, 2531, 0, - 2568, 108, 2585, 24, 262, 2595, 2527, 67, 2533, 84, - 75, 88, 224, 91, 89, 290, 220, 2525, 206, 285, - 236, 204, 197, 60, 291, 2534, 247, 308, 315, 214, - 286, 2517, 212, 320, 344, 318, 2536, 335, 0, 385, - 401, 415, 422, 427, 2595, 0, 2595, 441, 446, 236, - 314, 238, 326, 353, 309, 2595, 2533, 2574, 2595, 263, - - 2595, 440, 2561, 308, 2530, 364, 10, 329, 359, 384, - 391, 241, 2571, 0, 501, 408, 2513, 2510, 2514, 418, - 2510, 80, 2518, 422, 2504, 2505, 2510, 78, 2520, 2503, - 2512, 2502, 2511, 341, 343, 340, 2504, 2502, 410, 2550, - 2554, 2500, 2493, 2546, 2486, 174, 2507, 2507, 2501, 340, - 2494, 2492, 2493, 2485, 2490, 2484, 429, 2495, 412, 2480, - 2479, 2493, 425, 2479, 422, 447, 2473, 497, 436, 471, - 2494, 2491, 2492, 432, 2490, 2525, 2524, 450, 446, 2471, - 471, 2472, 478, 2464, 2481, 2473, 2475, 0, 477, 483, - 473, 496, 489, 515, 2471, 2595, 2516, 530, 2465, 499, - - 523, 530, 2519, 535, 2518, 532, 2517, 2595, 2595, 578, - 441, 543, 2476, 2468, 2455, 2466, 2470, 2471, 2451, 2462, - 2466, 2463, 2462, 475, 516, 2500, 2464, 2445, 2442, 2450, - 2445, 2459, 2455, 2446, 2442, 2454, 2454, 2442, 2444, 2447, - 2427, 2431, 2444, 2446, 2443, 2435, 2425, 2443, 2595, 2428, - 2437, 523, 2475, 2421, 2430, 2472, 2419, 2429, 2432, 510, - 2428, 2467, 2412, 2414, 2425, 2463, 557, 2408, 562, 2421, - 2401, 2416, 561, 2406, 2412, 527, 2403, 2401, 2401, 2407, - 2398, 2397, 2404, 2394, 2453, 2409, 2408, 2402, 530, 2409, - 2404, 2396, 2386, 2401, 2400, 2395, 2399, 2380, 2396, 2382, - - 2388, 2395, 2377, 536, 2382, 2379, 2378, 603, 2377, 2372, - 2386, 571, 2385, 2428, 2387, 560, 2378, 2366, 561, 2595, - 2595, 583, 2595, 2595, 2364, 566, 461, 2412, 586, 2422, - 580, 2595, 2421, 2595, 2415, 630, 2595, 2377, 590, 2354, - 2363, 2411, 2371, 2354, 2371, 2407, 2367, 2350, 2356, 2408, - 2363, 2366, 2357, 2360, 2346, 2357, 2401, 2395, 2353, 2350, - 621, 2356, 2396, 2331, 2389, 2342, 2337, 2331, 2333, 2336, - 2383, 2340, 2329, 2345, 2379, 2325, 628, 2339, 2324, 2323, - 2336, 2334, 2332, 2332, 2331, 2326, 2333, 2328, 2324, 599, - 2322, 2325, 2320, 2306, 2318, 2314, 2364, 589, 602, 2358, - - 2595, 2305, 2321, 2355, 2305, 2304, 2303, 2296, 2298, 2310, - 2301, 2308, 2289, 2306, 2301, 610, 2348, 2301, 2298, 2301, - 2595, 2300, 559, 2290, 2302, 600, 2277, 2278, 2299, 2290, - 2280, 2331, 2276, 2290, 614, 2276, 2288, 2287, 2286, 2281, - 2323, 2283, 2282, 2281, 2280, 2263, 2271, 2321, 2280, 2260, - 2318, 2595, 2260, 2259, 661, 2272, 2270, 2595, 2595, 2270, - 2259, 2251, 605, 2310, 2309, 2595, 2308, 2595, 639, 687, - 2267, 606, 2306, 2248, 2259, 2298, 2251, 2253, 2255, 2242, - 2250, 2238, 2595, 2243, 2236, 2248, 2251, 2238, 2237, 2595, - 631, 2239, 2236, 626, 2234, 2236, 2595, 2281, 2243, 2240, - - 2225, 2239, 2237, 2237, 2231, 678, 2238, 2226, 2219, 2270, - 2595, 2217, 2233, 2267, 2228, 2226, 2224, 2225, 2209, 2218, - 2260, 2211, 2210, 2205, 2204, 2255, 2199, 636, 2218, 2192, - 2199, 2204, 2214, 2248, 2252, 2595, 2197, 2193, 710, 2191, - 2243, 2199, 2198, 2192, 2199, 2183, 2183, 2193, 2181, 2195, - 2195, 2183, 2179, 2177, 2595, 2234, 2595, 2176, 2187, 2226, - 2171, 2170, 2175, 2184, 2178, 2172, 2181, 2223, 2217, 2179, - 2163, 2158, 2178, 2153, 2159, 589, 2173, 2166, 2170, 2153, - 2211, 2152, 2152, 2203, 2148, 2149, 2148, 2146, 2163, 2595, - 2159, 2196, 2595, 2147, 2145, 2595, 2156, 2192, 2191, 2151, - - 2135, 2152, 2192, 2595, 2595, 2595, 649, 664, 2132, 711, - 2595, 2142, 2141, 660, 2148, 2128, 2138, 2180, 2125, 2178, - 2123, 2133, 2175, 2120, 2127, 2120, 2132, 2114, 2114, 2129, - 2128, 659, 2127, 2126, 2126, 2108, 2113, 2154, 2121, 2118, - 2112, 2157, 2101, 2116, 2116, 2114, 2114, 2595, 2099, 2096, - 2154, 2109, 2101, 2107, 2098, 2106, 2091, 2142, 2106, 2088, - 2100, 2092, 530, 2083, 2082, 2076, 2081, 2096, 2093, 2094, - 2073, 2083, 2089, 2132, 2087, 2079, 2070, 2595, 2071, 2073, - 2068, 2081, 2073, 2072, 2077, 2116, 2115, 2066, 16, 2075, - 2112, 2057, 2110, 2057, 2060, 2053, 2595, 2067, 2046, 2050, - - 2064, 2059, 2055, 2100, 2052, 2059, 2097, 2595, 2042, 2056, - 2055, 2058, 2039, 2091, 2090, 2037, 2088, 2048, 2032, 2081, - 20, 2595, 188, 224, 239, 702, 324, 363, 377, 457, - 606, 572, 599, 585, 625, 649, 642, 2595, 674, 667, - 2595, 691, 702, 670, 667, 667, 682, 694, 688, 677, + 2617, 2618, 34, 2613, 145, 0, 207, 2618, 214, 221, + 13, 228, 2618, 2593, 118, 25, 2, 6, 2618, 2618, + 73, 11, 17, 2618, 2618, 2618, 104, 2601, 2554, 0, + 2591, 108, 2608, 24, 262, 2618, 2550, 67, 2556, 84, + 75, 88, 224, 91, 89, 290, 220, 2548, 206, 285, + 236, 204, 197, 60, 291, 2557, 247, 308, 315, 214, + 286, 2540, 212, 320, 344, 318, 2559, 335, 0, 385, + 401, 415, 422, 427, 2618, 0, 2618, 441, 446, 236, + 314, 238, 326, 353, 309, 2618, 2556, 2597, 2618, 263, + + 2618, 440, 2584, 308, 2553, 364, 10, 329, 359, 384, + 391, 241, 2594, 0, 501, 408, 2536, 2533, 2537, 418, + 2533, 80, 2541, 422, 2527, 2528, 2533, 78, 2543, 2526, + 2535, 2525, 2534, 341, 343, 340, 2527, 2525, 410, 2573, + 2577, 2523, 2516, 2569, 2509, 174, 2530, 2530, 2524, 340, + 2517, 2515, 2516, 2508, 2513, 2507, 429, 2518, 412, 2503, + 2502, 2516, 425, 2502, 422, 447, 2496, 497, 436, 471, + 2517, 2514, 2515, 432, 2513, 2548, 2547, 450, 446, 2494, + 471, 2495, 478, 2487, 2504, 2496, 2498, 0, 477, 483, + 473, 496, 489, 515, 2494, 2618, 2539, 530, 2488, 499, + + 523, 530, 2542, 535, 2541, 532, 2540, 2618, 2618, 578, + 441, 543, 2499, 2491, 2478, 2489, 2493, 2494, 2474, 2485, + 2489, 2486, 2485, 475, 516, 2523, 2487, 2468, 2465, 2473, + 2468, 2482, 2478, 2469, 2465, 2477, 2477, 2465, 2467, 2470, + 2450, 2454, 2467, 2469, 2466, 2458, 2448, 2466, 2618, 2451, + 2460, 523, 2498, 2444, 2453, 2495, 2442, 2452, 2455, 510, + 2451, 2490, 2435, 2437, 2448, 2486, 557, 2431, 562, 2444, + 2424, 2439, 561, 2429, 2435, 527, 2426, 2424, 2424, 2430, + 2421, 2420, 2427, 2417, 2476, 2432, 2431, 2425, 530, 2432, + 2427, 2419, 2409, 2424, 2423, 2418, 2422, 2403, 2419, 2405, + + 2411, 2418, 2400, 536, 2405, 2402, 2401, 603, 2400, 2395, + 2409, 571, 2408, 2451, 2410, 560, 2401, 2389, 561, 2618, + 2618, 583, 2618, 2618, 2387, 566, 461, 2435, 586, 2445, + 580, 2618, 2444, 2618, 2438, 630, 2618, 2400, 590, 2377, + 2386, 2434, 2394, 2377, 2394, 2430, 2390, 2373, 2379, 2431, + 2386, 2389, 2380, 2383, 2369, 2380, 2424, 2418, 2376, 2373, + 621, 2379, 2419, 2354, 2412, 2365, 2360, 2354, 2356, 2359, + 2406, 2363, 2352, 2368, 2402, 2348, 628, 2362, 2347, 2346, + 2359, 2357, 2355, 2355, 2354, 2349, 2356, 2351, 2347, 599, + 2345, 2348, 2343, 2329, 2341, 2337, 2387, 589, 602, 2381, + + 2618, 2328, 2344, 2378, 2328, 2327, 2326, 2319, 2321, 2333, + 2324, 2331, 2312, 2329, 2324, 610, 2371, 2324, 2321, 2324, + 2618, 2323, 559, 2313, 2325, 600, 2300, 2301, 2322, 2313, + 2303, 2354, 2299, 2313, 614, 2299, 2311, 2310, 2309, 2304, + 2346, 2306, 2305, 2304, 2303, 2286, 2294, 2344, 2303, 2283, + 2341, 2618, 2283, 2282, 661, 2295, 2293, 2618, 2618, 2293, + 2282, 2274, 605, 2333, 2332, 2618, 2331, 2618, 639, 687, + 2290, 606, 2329, 2271, 2282, 2321, 2274, 2276, 2278, 2265, + 2273, 2261, 2618, 2266, 2259, 2271, 2274, 2261, 2260, 2618, + 631, 2262, 2259, 626, 2257, 2259, 2618, 2304, 2266, 2263, + + 2248, 2262, 2260, 2260, 2254, 678, 2261, 2249, 2242, 2293, + 2618, 2240, 2256, 2290, 2251, 2249, 2247, 2248, 2232, 2241, + 2283, 2234, 2233, 2228, 2227, 2278, 2222, 636, 2241, 2215, + 2222, 2227, 2237, 2271, 2275, 2618, 2220, 2216, 710, 2214, + 2266, 2222, 2221, 2215, 2222, 2206, 2206, 2216, 2204, 2218, + 2218, 2206, 2202, 2200, 2618, 2257, 2618, 2199, 2210, 2249, + 2194, 2193, 2198, 2207, 2201, 2195, 2204, 2246, 2240, 2202, + 2186, 2181, 2201, 2176, 2182, 589, 2196, 2189, 2193, 2176, + 2234, 2175, 2175, 2226, 2171, 2172, 2171, 2169, 2186, 2618, + 2182, 2219, 2618, 2170, 2168, 2618, 2179, 2215, 2214, 2174, + + 2158, 2175, 2215, 2618, 2618, 2618, 649, 664, 2155, 711, + 2618, 2165, 2164, 660, 2171, 2151, 2161, 2203, 2148, 2201, + 2146, 2156, 2198, 2143, 2150, 2143, 2155, 2137, 2137, 2152, + 2151, 659, 2150, 2149, 2149, 2131, 2136, 2177, 2144, 2141, + 2135, 2180, 2124, 2139, 2139, 2137, 2137, 2618, 2122, 2119, + 2177, 2132, 2124, 2130, 2121, 2129, 2114, 2165, 2129, 2111, + 2123, 2115, 530, 2106, 2105, 2099, 2104, 2119, 2116, 2117, + 2096, 2106, 2112, 2155, 2110, 2102, 2093, 2618, 2094, 2096, + 2091, 2104, 2096, 2095, 2100, 2139, 2138, 2089, 16, 2098, + 2135, 2080, 2133, 2080, 2083, 2076, 2618, 2090, 2069, 2073, + + 2087, 2082, 2078, 2123, 2075, 2082, 2120, 2618, 2065, 2079, + 2078, 2081, 2062, 2114, 2113, 2060, 2111, 2071, 2055, 2104, + 20, 2618, 188, 224, 239, 702, 324, 363, 377, 457, + 606, 572, 599, 585, 625, 649, 642, 2618, 674, 667, + 2618, 691, 702, 670, 667, 667, 682, 694, 688, 677, 673, 687, 688, 735, 699, 742, 702, 706, 739, 740, 700, 700, 710, 715, 701, 704, 715, 715, 699, 756, 709, 719, 722, 760, 723, 716, 720, 717, 719, 766, - 767, 731, 775, 732, 734, 2595, 737, 732, 723, 738, - 743, 740, 728, 744, 743, 731, 745, 743, 751, 787, - - 749, 794, 795, 745, 737, 747, 794, 752, 802, 2595, - 803, 756, 758, 754, 748, 764, 752, 762, 811, 807, - 770, 759, 772, 2595, 762, 773, 762, 775, 765, 778, - 822, 823, 766, 777, 762, 785, 776, 765, 771, 826, - 790, 774, 786, 830, 831, 778, 833, 797, 792, 797, - 795, 839, 781, 793, 796, 800, 792, 789, 2595, 853, - 812, 813, 801, 815, 805, 808, 819, 804, 811, 817, - 818, 810, 824, 864, 840, 814, 828, 833, 830, 812, - 819, 833, 878, 835, 832, 833, 831, 840, 2595, 836, - 831, 846, 843, 829, 831, 850, 847, 835, 842, 843, - - 852, 856, 892, 855, 845, 843, 842, 853, 849, 905, - 852, 863, 848, 849, 855, 871, 867, 862, 909, 2595, - 873, 873, 866, 877, 875, 920, 862, 864, 883, 880, - 868, 866, 928, 885, 871, 877, 875, 2595, 2595, 885, - 890, 895, 883, 893, 895, 2595, 2595, 896, 883, 901, - 888, 890, 883, 900, 2595, 889, 907, 894, 944, 895, - 947, 893, 897, 915, 956, 2595, 2595, 901, 905, 904, - 901, 917, 962, 915, 905, 906, 902, 915, 926, 927, - 922, 923, 925, 918, 920, 916, 922, 922, 924, 939, - 922, 981, 938, 943, 920, 943, 929, 928, 2595, 935, - - 936, 985, 986, 938, 951, 989, 947, 937, 952, 946, - 954, 941, 973, 981, 1003, 951, 946, 1001, 1002, 964, - 1004, 2595, 1010, 953, 969, 973, 1014, 964, 963, 958, - 959, 971, 966, 962, 965, 966, 976, 986, 1022, 970, - 988, 980, 975, 1033, 990, 991, 982, 2595, 996, 985, - 988, 996, 998, 983, 995, 1000, 997, 995, 1042, 1008, - 992, 993, 2595, 1009, 1012, 995, 1006, 1055, 998, 1017, - 2595, 1016, 1019, 1005, 1000, 1018, 1058, 1016, 1012, 1009, - 1062, 1063, 1025, 1011, 1029, 1029, 1029, 1030, 1031, 1017, - 1032, 1024, 1031, 1021, 1039, 1038, 1025, 1042, 2595, 1034, - - 1040, 1043, 1088, 1035, 2595, 1038, 1043, 1088, 1039, 1051, - 1045, 1046, 1044, 1046, 1056, 1101, 1045, 1046, 1046, 1105, - 1049, 1061, 1054, 2595, 1050, 1058, 1056, 1107, 1050, 1071, - 1057, 1058, 1059, 1060, 1066, 1074, 1065, 1070, 1080, 1081, - 1082, 1087, 1128, 1100, 1105, 2595, 1087, 1084, 1080, 1094, - 1077, 1077, 2595, 1078, 1138, 1081, 2595, 1092, 1082, 1102, - 1101, 1092, 1103, 1146, 1107, 1100, 1104, 1108, 1091, 1108, - 1099, 1154, 1101, 2595, 1151, 1100, 1103, 1121, 1103, 1104, - 1104, 1125, 1122, 1110, 1128, 1116, 1130, 1116, 1124, 1133, - 1113, 1128, 1135, 1177, 1173, 2595, 1179, 1180, 1122, 1132, - - 1142, 1126, 1146, 1134, 1130, 1137, 1146, 1134, 1141, 1142, - 1154, 1195, 1142, 1197, 1141, 1140, 1144, 1161, 1202, 1152, - 1151, 1157, 1155, 1153, 1148, 1209, 1160, 1211, 1207, 1213, - 2595, 1154, 1171, 1164, 1155, 1174, 1162, 1172, 1173, 1169, - 1182, 1183, 2595, 1167, 1163, 1169, 2595, 1170, 1230, 1189, - 1170, 1189, 1190, 1192, 1231, 1184, 1238, 1239, 1192, 1197, - 1191, 1189, 1200, 1199, 1183, 1188, 1194, 1207, 2595, 1229, - 1220, 1252, 1192, 1214, 1209, 1209, 1213, 1258, 2595, 1201, - 1201, 1204, 1221, 1216, 1220, 1215, 2595, 1207, 1224, 1204, - 1225, 1215, 1266, 1219, 2595, 1233, 1233, 1271, 1218, 1227, - - 1275, 1233, 1238, 1224, 1284, 1227, 1228, 1242, 1240, 1232, - 1238, 1234, 1252, 1253, 1254, 2595, 1244, 2595, 1254, 2595, - 1239, 1250, 1241, 1260, 1253, 1251, 1244, 1256, 1300, 1264, - 1253, 1260, 1261, 1267, 2595, 1260, 2595, 1312, 1265, 1254, - 1315, 2595, 1316, 1258, 1264, 1271, 1315, 1277, 2595, 1278, - 2595, 1265, 2595, 1265, 1268, 1282, 1287, 1270, 1329, 1286, - 1287, 1327, 1279, 1284, 1335, 1331, 1284, 1338, 2595, 1289, - 1286, 1341, 1342, 1299, 1300, 1302, 2595, 2595, 1294, 1289, - 1343, 1292, 1308, 1351, 1293, 1305, 1294, 1311, 1326, 1357, - 2595, 1314, 1307, 1316, 1307, 1318, 2595, 1363, 1300, 1311, - - 1326, 1362, 1314, 1325, 1326, 1327, 1324, 1368, 1331, 1321, - 1331, 1337, 1324, 1320, 1380, 1376, 1334, 1378, 1386, 1343, - 2595, 1329, 1345, 1336, 1339, 1348, 1349, 1346, 1336, 1339, - 1339, 1350, 1345, 1400, 1347, 1402, 1345, 1350, 1405, 1401, - 1343, 1358, 1351, 1354, 1367, 1368, 1366, 1415, 2595, 1364, - 1370, 2595, 2595, 1375, 1367, 1377, 1362, 1418, 1365, 1365, - 1426, 1427, 1371, 1381, 1430, 2595, 1378, 1379, 1381, 1434, - 1375, 1378, 2595, 1396, 1397, 2595, 1397, 1385, 2595, 2595, - 1398, 1381, 1401, 1402, 1388, 1390, 1449, 1399, 2595, 1451, - 1400, 1394, 1454, 1434, 2595, 1456, 1413, 1458, 1409, 1456, - - 2595, 1404, 1463, 1413, 1407, 1404, 1407, 1409, 1426, 1465, - 1418, 1430, 1433, 1421, 1424, 1417, 1424, 1415, 2595, 1423, - 1438, 1423, 2595, 1425, 1479, 1427, 1481, 1443, 1443, 1446, - 1446, 1443, 1487, 1449, 1441, 1442, 2595, 1443, 2595, 1453, - 1445, 2595, 1451, 1456, 1457, 1454, 1498, 1446, 1461, 1462, - 1454, 2595, 1464, 1452, 1453, 1453, 1459, 1458, 1456, 1510, - 1471, 2595, 2595, 1512, 1459, 2595, 1460, 1461, 1467, 2595, - 1476, 1470, 1525, 1472, 1465, 1477, 1472, 1482, 1493, 1486, - 1492, 1482, 1537, 1490, 2595, 1499, 2595, 1496, 1541, 2595, - 1494, 1517, 2595, 1544, 2595, 1502, 1487, 1547, 2595, 1548, - - 1505, 1510, 1492, 1552, 1548, 1512, 1509, 1505, 1498, 1553, - 1511, 1512, 1502, 1507, 1519, 1564, 1519, 1567, 1517, 1564, - 1529, 1529, 1525, 1569, 1517, 1522, 1520, 1579, 1530, 1536, - 1524, 1583, 1579, 1542, 1586, 1547, 1536, 1530, 1590, 1532, - 1533, 1547, 1594, 1551, 1551, 1597, 1539, 1556, 1552, 1550, - 1557, 1541, 1599, 1600, 1601, 1564, 1557, 1556, 1556, 1551, - 1569, 2595, 1560, 1566, 1571, 1558, 1559, 1558, 1560, 1615, - 1561, 2595, 1557, 1575, 1624, 2595, 1582, 1595, 2595, 1627, - 1580, 2595, 2595, 1571, 1582, 1631, 2595, 1577, 1582, 1580, - 1630, 1588, 1594, 1582, 1598, 1587, 1585, 1599, 1586, 2595, - - 1588, 2595, 1606, 1592, 1601, 1644, 1587, 1592, 1652, 1600, - 1611, 1612, 2595, 1657, 1653, 1611, 1655, 2595, 1606, 1662, - 2595, 1605, 1620, 1608, 2595, 1618, 1619, 1668, 2595, 1626, - 1630, 2595, 1666, 1632, 1608, 1626, 1627, 1636, 1618, 1625, - 1637, 1636, 1627, 1677, 1629, 1625, 1685, 1627, 1628, 1688, - 1684, 1690, 1640, 1692, 1645, 1635, 1651, 1644, 2595, 1697, - 1698, 2595, 1647, 1700, 1642, 2595, 1645, 1655, 1699, 1647, - 1662, 1649, 1664, 1650, 1657, 1657, 1712, 1669, 1670, 1657, - 1659, 1673, 1659, 1719, 1672, 2595, 1716, 1667, 1664, 2595, - 1666, 1679, 1666, 1687, 2595, 1684, 1729, 1682, 1679, 1680, - - 2595, 1733, 1692, 1675, 1677, 1693, 1686, 1676, 1692, 1693, - 1702, 1692, 1744, 1704, 1688, 1697, 1743, 2595, 1701, 1750, - 2595, 1699, 2595, 1693, 2595, 1700, 1754, 1755, 1752, 2595, - 2595, 1714, 2595, 1754, 1716, 1717, 1702, 1703, 1711, 1765, - 1713, 1762, 1763, 1718, 2595, 1713, 1731, 1713, 1719, 1732, - 1727, 2595, 1724, 1729, 1727, 1779, 1736, 1781, 1729, 1726, - 1726, 2595, 1741, 1742, 1743, 2595, 1744, 1734, 1746, 1791, - 1744, 1793, 1735, 1743, 1744, 1757, 2595, 1758, 1739, 1740, - 1747, 1749, 2595, 1763, 1760, 1800, 1761, 2595, 2595, 1765, - 1750, 1750, 1765, 1758, 1757, 1768, 1755, 2595, 1771, 1759, - - 1762, 1818, 1758, 1777, 1816, 1780, 1773, 1772, 1781, 1783, - 1787, 2595, 1777, 2595, 1781, 1772, 1831, 1774, 1833, 1834, - 1835, 1793, 1837, 2595, 1779, 2595, 1834, 1796, 1797, 1784, - 1792, 1803, 1790, 1801, 1787, 1785, 1793, 1792, 1797, 1789, - 1854, 1807, 1808, 1798, 1815, 1814, 1855, 1799, 1818, 1819, - 2595, 1824, 1817, 1856, 1823, 1810, 1825, 1870, 1827, 1830, - 1829, 1818, 1827, 2595, 1876, 2595, 2595, 2595, 1837, 2595, - 1878, 1820, 1880, 1881, 1824, 1883, 1831, 1880, 1881, 1843, - 1883, 1829, 1833, 1851, 1892, 1851, 2595, 1842, 1832, 1891, - 1857, 1850, 1846, 1900, 1843, 1845, 1844, 1851, 1894, 1848, - - 1907, 1851, 2595, 1856, 1866, 1869, 1852, 1860, 2595, 1855, - 2595, 1867, 2595, 2595, 1872, 2595, 1873, 1873, 1864, 1920, - 1864, 1874, 1859, 1872, 2595, 1874, 1882, 1927, 1868, 1870, - 1867, 1891, 2595, 1878, 1885, 1886, 1889, 1936, 1879, 2595, - 1933, 1880, 1888, 1882, 1898, 1897, 1900, 1893, 1888, 1888, - 1900, 1895, 2595, 1906, 1894, 1947, 1898, 1910, 1955, 2595, - 1901, 1913, 1958, 1907, 1909, 1907, 1908, 1963, 2595, 1916, - 1903, 1918, 1923, 1920, 1969, 1970, 1971, 1928, 1973, 1974, - 1918, 1922, 1918, 1934, 1917, 1929, 1923, 2595, 1939, 1983, - 2595, 1940, 1925, 1943, 1934, 2595, 1935, 1949, 1945, 1938, - - 1938, 2595, 2595, 2595, 1993, 2595, 2595, 1936, 1944, 1939, - 1992, 1958, 1955, 2000, 1961, 2595, 2002, 1944, 2004, 1947, - 1960, 1959, 1960, 1950, 1957, 2595, 1952, 2012, 1965, 1974, - 1967, 2011, 2595, 1958, 2595, 1970, 2595, 2014, 2020, 1962, - 1978, 2023, 2024, 2025, 2595, 1982, 1976, 1969, 1989, 1986, - 1978, 1982, 2595, 2029, 1978, 2595, 2595, 2595, 1978, 1986, - 2033, 1993, 1986, 2041, 1989, 1989, 1985, 1987, 2046, 2047, - 1989, 2005, 1990, 2595, 2051, 1998, 2005, 2054, 2595, 2595, - 2007, 2056, 2004, 2595, 2008, 2007, 2595, 2008, 2595, 2002, - 2002, 2019, 2020, 2065, 2011, 2067, 2068, 2595, 2069, 2595, - - 2595, 2595, 2595, 2075, 2078, 2081, 2082, 2084, 2087, 2090, - 2093 + 767, 731, 775, 732, 734, 2618, 737, 732, 723, 738, + 743, 740, 742, 744, 743, 731, 745, 743, 751, 787, + + 749, 794, 795, 745, 737, 747, 795, 754, 803, 2618, + 804, 757, 759, 755, 749, 765, 753, 763, 812, 808, + 771, 760, 773, 2618, 763, 774, 763, 776, 766, 779, + 823, 824, 767, 778, 763, 786, 777, 766, 772, 827, + 791, 775, 787, 831, 832, 779, 834, 798, 793, 798, + 796, 840, 782, 794, 797, 801, 793, 790, 2618, 854, + 813, 814, 802, 816, 806, 809, 820, 805, 812, 818, + 819, 811, 825, 865, 841, 815, 829, 834, 831, 813, + 820, 834, 879, 836, 833, 834, 832, 841, 2618, 837, + 832, 847, 844, 830, 832, 851, 848, 836, 843, 844, + + 853, 857, 893, 856, 846, 844, 843, 854, 850, 906, + 853, 864, 849, 850, 856, 872, 868, 863, 910, 2618, + 874, 874, 867, 878, 876, 921, 863, 865, 877, 885, + 883, 870, 868, 930, 887, 873, 879, 877, 2618, 2618, + 887, 892, 897, 885, 895, 897, 2618, 2618, 898, 885, + 903, 890, 892, 885, 902, 2618, 891, 909, 896, 946, + 897, 949, 895, 899, 917, 958, 2618, 2618, 903, 907, + 906, 903, 919, 964, 917, 907, 908, 904, 917, 928, + 929, 924, 925, 927, 920, 922, 918, 924, 924, 926, + 941, 924, 983, 940, 945, 922, 945, 931, 930, 2618, + + 937, 938, 987, 988, 940, 953, 991, 949, 939, 954, + 948, 956, 943, 975, 983, 1005, 953, 948, 1003, 1004, + 966, 1006, 2618, 1012, 955, 971, 975, 1016, 966, 965, + 960, 961, 973, 968, 964, 967, 968, 978, 988, 1024, + 972, 990, 982, 977, 1035, 992, 993, 984, 2618, 998, + 987, 990, 998, 1000, 985, 997, 1002, 999, 997, 1044, + 1010, 994, 995, 2618, 1011, 1014, 997, 1014, 1009, 1058, + 1001, 1020, 2618, 1019, 1022, 1008, 1003, 1021, 1061, 1019, + 1015, 1012, 1065, 1066, 1028, 1014, 1032, 1032, 1032, 1033, + 1034, 1020, 1035, 1027, 1034, 1024, 1042, 1041, 1028, 1045, + + 2618, 1037, 1043, 1046, 1091, 1038, 2618, 1041, 1046, 1091, + 1042, 1054, 1048, 1049, 1047, 1049, 1059, 1104, 1048, 1049, + 1049, 1108, 1052, 1064, 1057, 2618, 1053, 1061, 1059, 1110, + 1053, 1074, 1060, 1061, 1062, 1063, 1069, 1077, 1068, 1073, + 1083, 1084, 1085, 1090, 1131, 1103, 1108, 2618, 1090, 1087, + 1083, 1097, 1080, 1080, 2618, 1081, 1141, 1084, 2618, 1095, + 1085, 1105, 1104, 1095, 1106, 1149, 1110, 1103, 1107, 1111, + 1094, 1111, 1102, 1157, 1104, 2618, 1154, 1103, 1106, 1124, + 1106, 1107, 1107, 1128, 1125, 1113, 1131, 1119, 1133, 1119, + 1127, 1136, 1116, 1131, 1138, 1180, 1126, 1177, 2618, 1183, + + 1184, 1126, 1136, 1146, 1130, 1150, 1138, 1134, 1141, 1150, + 1138, 1145, 1146, 1158, 1199, 1146, 1201, 1145, 1144, 1148, + 1165, 1206, 1156, 1155, 1161, 1159, 1157, 1152, 1213, 1164, + 1215, 1211, 1217, 2618, 1158, 1175, 1168, 1159, 1178, 1166, + 1176, 1177, 1173, 1186, 1187, 2618, 1171, 1167, 1173, 2618, + 1174, 1234, 1193, 1174, 1193, 1194, 1196, 1235, 1188, 1242, + 1243, 1196, 1201, 1195, 1193, 1204, 1203, 1187, 1192, 1198, + 1211, 2618, 1233, 1224, 1256, 1196, 1218, 1213, 1213, 1217, + 1262, 2618, 1205, 1205, 1208, 1225, 1220, 1224, 1219, 2618, + 1211, 1228, 1208, 1229, 1219, 1270, 1223, 2618, 1237, 1237, + + 1275, 1222, 1231, 1279, 1237, 1242, 1228, 1288, 1231, 1232, + 1246, 1244, 1236, 1242, 1238, 1256, 1257, 1258, 2618, 1294, + 1249, 2618, 1259, 2618, 1244, 1255, 1246, 1265, 1258, 1256, + 1249, 1261, 1305, 1269, 1258, 1265, 1266, 1272, 2618, 1265, + 2618, 1317, 1270, 1259, 1320, 2618, 1321, 1263, 1269, 1276, + 1320, 1282, 2618, 1283, 2618, 1270, 2618, 1270, 1273, 1287, + 1292, 1275, 1334, 1291, 1292, 1332, 1284, 1289, 1340, 1336, + 1289, 1343, 2618, 1294, 1291, 1346, 1347, 1304, 1305, 1307, + 2618, 2618, 1299, 1294, 1348, 1297, 1313, 1356, 1298, 1310, + 1299, 1316, 1331, 1362, 2618, 1319, 1312, 1321, 1312, 1323, + + 2618, 1368, 1305, 1316, 1331, 1367, 1319, 1330, 1331, 1332, + 1329, 1373, 1336, 1326, 1336, 1342, 1329, 1325, 1385, 1381, + 1339, 1383, 1391, 1348, 2618, 1334, 1350, 1341, 1344, 1353, + 1354, 1351, 1341, 1344, 1344, 1345, 1356, 1351, 1406, 1353, + 1408, 1351, 1356, 1411, 1408, 1349, 1364, 1357, 1360, 1373, + 1374, 1372, 1421, 2618, 1370, 1376, 2618, 2618, 1381, 1373, + 1383, 1368, 1424, 1371, 1371, 1432, 1433, 1377, 1387, 1436, + 2618, 1384, 1385, 1387, 1440, 1381, 1384, 2618, 1402, 1403, + 2618, 1403, 1391, 2618, 2618, 1404, 1387, 1407, 1408, 1394, + 1396, 1455, 1405, 2618, 1457, 1406, 1400, 1460, 1440, 2618, + + 1462, 1419, 1464, 1415, 1462, 2618, 1410, 1469, 1419, 1413, + 1410, 1413, 1415, 1432, 1471, 1424, 1436, 1439, 1427, 1430, + 1423, 1430, 1421, 2618, 1429, 1444, 1429, 2618, 1431, 1485, + 1433, 1487, 1449, 1449, 1452, 1452, 1449, 1493, 1455, 1456, + 1448, 1449, 2618, 1450, 2618, 1460, 1452, 2618, 1458, 1463, + 1464, 1461, 1505, 1453, 1468, 1469, 1461, 2618, 1471, 1459, + 1460, 1460, 1466, 1465, 1463, 1517, 1478, 2618, 2618, 1519, + 1466, 2618, 1467, 1468, 1474, 2618, 1483, 1477, 1532, 1479, + 1472, 1484, 1479, 1489, 1500, 1493, 1499, 1489, 1544, 1497, + 2618, 1506, 2618, 1503, 1548, 2618, 1501, 1524, 2618, 1551, + + 2618, 1509, 1494, 1554, 2618, 1555, 1512, 1517, 1499, 1559, + 1555, 1519, 1516, 1512, 1505, 1560, 1518, 1519, 1509, 1514, + 1526, 1571, 1526, 1574, 1524, 1571, 1536, 1536, 1532, 1576, + 1524, 1529, 1527, 1586, 1530, 1538, 1544, 1532, 1591, 1587, + 1550, 1594, 1555, 1544, 1538, 1598, 1540, 1541, 1555, 1602, + 1559, 1559, 1605, 1547, 1564, 1560, 1558, 1565, 1549, 1607, + 1608, 1609, 1572, 1565, 1564, 1564, 1559, 1577, 2618, 1568, + 1574, 1579, 1566, 1567, 1566, 1568, 1623, 1569, 2618, 1565, + 1583, 1632, 2618, 1590, 1603, 2618, 1635, 1588, 2618, 2618, + 1579, 1590, 1639, 2618, 1585, 1590, 1588, 1638, 1597, 1602, + + 1590, 1606, 1595, 1593, 1607, 1594, 2618, 1596, 2618, 1614, + 1600, 1609, 1652, 1595, 1600, 1660, 1608, 1619, 1620, 2618, + 1665, 1605, 1662, 1620, 1664, 2618, 1615, 1671, 2618, 1614, + 1629, 1617, 2618, 1627, 1628, 1677, 2618, 1635, 1639, 2618, + 1675, 1641, 1617, 1635, 1636, 1645, 1627, 1634, 1646, 1645, + 1636, 1686, 1638, 1634, 1694, 1636, 1637, 1697, 1693, 1699, + 1649, 1701, 1654, 1644, 1660, 1653, 2618, 1706, 1707, 2618, + 1656, 1709, 1651, 2618, 1654, 1664, 1708, 1656, 1671, 1658, + 1673, 1659, 1666, 1666, 1721, 1678, 1679, 1666, 1668, 1682, + 1668, 1728, 1681, 2618, 1725, 1676, 1673, 2618, 1689, 1676, + + 1689, 1676, 1697, 2618, 1694, 1739, 1692, 1689, 1690, 2618, + 1743, 1702, 1685, 1687, 1703, 1696, 1686, 1702, 1703, 1712, + 1702, 1754, 1714, 1698, 1707, 1753, 2618, 1711, 1760, 2618, + 1709, 2618, 1703, 2618, 1710, 1764, 1765, 1762, 2618, 2618, + 1724, 2618, 1764, 1726, 1727, 1712, 1713, 1721, 1775, 1723, + 1772, 1773, 1728, 2618, 1723, 1741, 1723, 1729, 1742, 1737, + 2618, 1734, 1739, 1737, 1789, 1733, 1747, 1792, 1740, 1737, + 1737, 2618, 1752, 1753, 1754, 2618, 1755, 1745, 1757, 1802, + 1755, 1804, 1746, 1754, 1755, 1768, 2618, 1769, 1750, 1751, + 1758, 1760, 2618, 1774, 1771, 1811, 1772, 2618, 2618, 1776, + + 1761, 1761, 1776, 1769, 1768, 1779, 1766, 2618, 1782, 1770, + 1773, 1829, 1769, 1788, 1827, 1791, 1784, 1783, 1792, 1794, + 1798, 2618, 1834, 1789, 2618, 1793, 1784, 1843, 1786, 1845, + 1846, 1847, 1805, 1849, 2618, 1791, 2618, 1846, 1808, 1809, + 1796, 1804, 1815, 1802, 1813, 1799, 1797, 1805, 1804, 1809, + 1801, 1866, 1819, 1820, 1810, 1827, 1826, 1867, 1811, 1830, + 1831, 2618, 1836, 1829, 1868, 1835, 1822, 1837, 1882, 1839, + 1842, 1837, 1842, 1831, 1840, 2618, 1889, 2618, 2618, 2618, + 1850, 2618, 1891, 1833, 1893, 1894, 1837, 1896, 1844, 1893, + 1894, 1856, 1896, 1842, 1846, 1864, 1905, 1864, 2618, 1855, + + 1845, 1904, 1870, 1863, 1859, 1913, 1856, 1858, 1857, 1864, + 1907, 1861, 1920, 1864, 2618, 1869, 1879, 1881, 1883, 1866, + 1874, 2618, 1869, 2618, 1881, 2618, 2618, 1886, 2618, 1887, + 1887, 1878, 1934, 1878, 1888, 1873, 1886, 2618, 1888, 1896, + 1941, 1882, 1884, 1881, 1905, 2618, 1892, 1899, 1900, 1903, + 1950, 1893, 2618, 1947, 1894, 1902, 1911, 1897, 1913, 1912, + 1915, 1908, 1903, 1903, 1915, 1910, 2618, 1921, 1909, 1962, + 1913, 1925, 1970, 2618, 1916, 1928, 1973, 1922, 1924, 1922, + 1923, 1978, 2618, 1931, 1918, 1933, 1938, 1930, 1936, 1985, + 1986, 1987, 1944, 1989, 1990, 1934, 1938, 1934, 1950, 1933, + + 1945, 1939, 2618, 1955, 1999, 2618, 1956, 1941, 1959, 1950, + 2618, 1951, 1965, 1961, 1954, 1949, 1955, 2618, 2618, 2618, + 2010, 2618, 2618, 1953, 1961, 1956, 2009, 1975, 1972, 2017, + 1978, 2618, 2019, 1961, 2021, 1964, 1977, 1976, 1977, 1967, + 1979, 1975, 2618, 1970, 2030, 1983, 1992, 1985, 2029, 2618, + 1976, 2618, 1988, 2618, 2032, 2038, 1980, 1996, 2041, 1997, + 2043, 2044, 2618, 2001, 1995, 1988, 2008, 2005, 1997, 2001, + 2618, 2048, 1997, 2618, 2007, 2618, 2618, 1998, 2006, 2053, + 2013, 2006, 2061, 2009, 2009, 2005, 2007, 2022, 2067, 2068, + 2010, 2026, 2011, 2618, 2072, 2019, 2026, 2075, 2019, 2618, + + 2618, 2029, 2078, 2026, 2618, 2030, 2029, 2618, 2082, 2031, + 2618, 2025, 2025, 2042, 2618, 2043, 2088, 2034, 2090, 2091, + 2618, 2092, 2618, 2618, 2618, 2618, 2098, 2101, 2104, 2105, + 2107, 2110, 2113, 2116 } ; -static const flex_int16_t yy_def[2212] = +static const flex_int16_t yy_def[2235] = { 0, - 2204, 2204, 2205, 2205, 2204, 2204, 2204, 2204, 2204, 2204, - 2203, 2203, 2203, 2203, 2203, 2206, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2207, - 2203, 2203, 2203, 2208, 15, 2203, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2209, 45, 45, 45, 45, + 2227, 2227, 2228, 2228, 2227, 2227, 2227, 2227, 2227, 2227, + 2226, 2226, 2226, 2226, 2226, 2229, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2230, + 2226, 2226, 2226, 2231, 15, 2226, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2232, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2206, 2203, - 2203, 2203, 2203, 2203, 2203, 2210, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2207, 2203, 2208, + 45, 45, 45, 45, 45, 45, 45, 45, 2229, 2226, + 2226, 2226, 2226, 2226, 2226, 2233, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2230, 2226, 2231, - 2203, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2211, 45, 2209, 45, 45, 45, 45, 45, + 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2234, 45, 2232, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2210, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2233, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2211, 2203, 2203, 115, + 45, 45, 45, 45, 45, 45, 2234, 2226, 2226, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1275,9 +1279,9 @@ static const flex_int16_t yy_def[2212] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 45, 45, 45, 45, 45, - 45, 2203, 45, 2203, 45, 115, 2203, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 45, 45, 45, 45, 45, + 45, 2226, 45, 2226, 45, 115, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1285,211 +1289,213 @@ static const flex_int16_t yy_def[2212] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 2203, 2203, 2203, - 45, 45, 45, 45, 45, 2203, 45, 2203, 45, 115, + 45, 2226, 45, 45, 45, 45, 45, 2226, 2226, 2226, + 45, 45, 45, 45, 45, 2226, 45, 2226, 45, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 45, 45, 45, 2203, - 45, 45, 45, 45, 45, 45, 2203, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 2226, + 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 2203, 45, 45, 45, + 45, 45, 45, 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2203, - 45, 45, 2203, 45, 45, 2203, 45, 45, 45, 2203, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, + 45, 45, 2226, 45, 45, 2226, 45, 45, 45, 2226, - 45, 45, 45, 2203, 2203, 2203, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2226, 2226, 2226, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2203, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2203, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2203, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2203, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 2203, 45, - 45, 45, 45, 45, 45, 2203, 2203, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 2203, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 2226, + 45, 45, 45, 45, 45, 45, 2226, 2226, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2203, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 2203, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2203, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 2203, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 45, 45, 45, 45, 45, 2203, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 2203, 45, 2203, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 2226, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 2203, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 2203, 45, - 2203, 45, 2203, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 45, 45, 45, 45, 45, 2203, 2203, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 2226, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 45, 45, 2226, 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 2203, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, + 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 2203, 2203, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 2203, 45, 45, 2203, 2203, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 45, 2203, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2203, 45, 2203, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 2203, 45, 45, 2203, 45, 45, 45, 2203, + 45, 45, 45, 2226, 45, 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 2203, 45, 45, 2203, - 45, 45, 2203, 45, 2203, 45, 45, 45, 2203, 45, + 2226, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 2226, 45, 45, 2226, 2226, 45, 45, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 2226, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2226, 45, 2226, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 2226, 45, + 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2226, 45, 2226, 45, 45, 2226, 45, 45, 2226, 45, + + 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 2203, 45, 45, 2203, 45, - 45, 2203, 2203, 45, 45, 45, 2203, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2203, - - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 45, 2203, 45, 45, - 2203, 45, 45, 45, 2203, 45, 45, 45, 2203, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, - 45, 2203, 45, 45, 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 2203, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, - 2203, 45, 2203, 45, 2203, 45, 45, 45, 45, 2203, - 2203, 45, 2203, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 45, 45, 2203, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2203, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 45, 2203, 2203, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, - + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 45, 45, 2226, 45, 45, 2226, 45, 45, 2226, 2226, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 2226, 45, 2226, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, + 45, 45, 45, 45, 45, 2226, 45, 45, 2226, 45, + 45, 45, 2226, 45, 45, 45, 2226, 45, 45, 2226, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2203, 45, 2203, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2203, 45, 2203, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2226, 45, 45, 2226, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 2226, 45, 45, + + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2203, 45, 2203, 2203, 2203, 45, 2203, + 45, 45, 45, 45, 45, 45, 2226, 45, 45, 2226, + 45, 2226, 45, 2226, 45, 45, 45, 45, 2226, 2226, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 2226, 2226, 45, + + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2203, 45, 45, 45, + 45, 2226, 45, 45, 2226, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 2226, 2226, 2226, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, - 45, 45, 2203, 45, 45, 45, 45, 45, 2203, 45, - 2203, 45, 2203, 2203, 45, 2203, 45, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 45, 45, 45, 45, 2203, - 45, 45, 45, 45, 45, 45, 45, 45, 2203, 45, + 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, + 45, 2226, 45, 2226, 45, 2226, 2226, 45, 2226, 45, + 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 45, - 2203, 45, 45, 45, 45, 2203, 45, 45, 45, 45, - - 45, 2203, 2203, 2203, 45, 2203, 2203, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2203, 45, 45, 45, 45, - 45, 45, 2203, 45, 2203, 45, 2203, 45, 45, 45, - 45, 45, 45, 45, 2203, 45, 45, 45, 45, 45, - 45, 45, 2203, 45, 45, 2203, 2203, 2203, 45, 45, + + 45, 45, 2226, 45, 45, 2226, 45, 45, 45, 45, + 2226, 45, 45, 45, 45, 45, 45, 2226, 2226, 2226, + 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, + 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 2226, + 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, + 2226, 45, 45, 2226, 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2203, 45, 45, 45, 45, 2203, 2203, - 45, 45, 45, 2203, 45, 45, 2203, 45, 2203, 45, - 45, 45, 45, 45, 45, 45, 45, 2203, 45, 2203, + 45, 45, 45, 2226, 45, 45, 45, 45, 45, 2226, - 2203, 2203, 0, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203 + 2226, 45, 45, 45, 2226, 45, 45, 2226, 45, 45, + 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, + 2226, 45, 2226, 2226, 2226, 0, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226 } ; -static const flex_int16_t yy_nxt[2669] = +static const flex_int16_t yy_nxt[2692] = { 0, - 2203, 13, 14, 13, 2203, 15, 16, 2203, 17, 18, + 2226, 13, 14, 13, 2226, 15, 16, 2226, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 85, 824, 37, 14, 37, 86, 25, 26, 38, 101, 855, 27, 37, 14, 37, 42, 28, 42, 38, 91, @@ -1575,25 +1581,25 @@ static const flex_int16_t yy_nxt[2669] = 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 916, 917, 918, 914, 919, 920, 921, 915, 922, 923, 924, 925, 926, 927, 928, - 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, + 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, - 939, 940, 941, 942, 944, 945, 943, 946, 947, 948, + 940, 941, 942, 943, 930, 945, 944, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, - 979, 980, 981, 982, 983, 984, 986, 987, 988, 991, - 992, 993, 985, 996, 994, 989, 997, 998, 999, 990, - 995, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 979, 980, 981, 982, 983, 984, 985, 987, 988, 989, + 992, 993, 994, 986, 997, 995, 990, 998, 999, 1000, + 991, 996, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1014, 1042, 1043, 1044, 1045, 1046, 1047, + 1039, 1040, 1041, 1042, 1015, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, - 1058, 1059, 1060, 1061, 1062, 1063, 1065, 1066, 1067, 1068, - 1064, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1066, 1067, 1068, + 1069, 1065, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, - 1088, 1089, 1090, 1092, 1093, 1094, 1091, 1095, 1096, 1097, + 1088, 1089, 1090, 1091, 1092, 1094, 1095, 1096, 1093, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, @@ -1602,76 +1608,76 @@ static const flex_int16_t yy_nxt[2669] = 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, - 1145, 1168, 1169, 1144, 1170, 1171, 1172, 1173, 1174, 1175, + 1168, 1169, 1147, 1170, 1171, 1146, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, - 1196, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, + 1196, 1197, 1198, 1199, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, - 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1225, 1226, 1227, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1224, 1235, 1236, + 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, + 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, - 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, - 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1197, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - 1266, 1267, 1268, 1269, 1270, 1272, 1271, 1273, 1274, 1275, + 1227, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, + 1257, 1200, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1275, 1274, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, - 1296, 1297, 1270, 1271, 1298, 1299, 1300, 1301, 1302, 1303, + 1296, 1297, 1298, 1299, 1300, 1273, 1274, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1316, 1317, 1318, 1320, 1322, 1323, 1324, 1319, - 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, + 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1324, + 1326, 1327, 1328, 1323, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1321, - 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, + 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1325, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, - 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1389, 1412, - 1413, 1414, 1415, 1416, 1390, 1417, 1418, 1419, 1420, 1421, + 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, + 1414, 1415, 1393, 1416, 1417, 1418, 1419, 1420, 1394, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, - 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1471, 1472, - 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, + 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, + 1472, 1473, 1474, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1503, - 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1494, - 1470, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, + 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, + 1503, 1504, 1505, 1506, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 1524, 1525, 1526, 1527, 1499, 1475, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, - 1542, 1543, 1502, 1544, 1545, 1547, 1548, 1549, 1550, 1551, - 1552, 1553, 1546, 1554, 1555, 1556, 1557, 1558, 1559, 1560, + 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1507, 1549, 1550, + 1551, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1552, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, - 1572, 1573, 1576, 1574, 1571, 1575, 1577, 1578, 1579, 1580, - 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, - 1592, 1593, 1594, 1595, 1591, 1596, 1597, 1598, 1599, 1600, - 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, - 1611, 1612, 1613, 1592, 1614, 1615, 1616, 1617, 1618, 1619, + 1571, 1572, 1573, 1574, 1575, 1576, 1578, 1579, 1582, 1580, + 1577, 1581, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, + 1591, 1592, 1593, 1594, 1595, 1596, 1598, 1599, 1600, 1601, + 1597, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, + 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1598, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, - 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1661, 1658, - 1662, 1663, 1659, 1664, 1665, 1660, 1666, 1667, 1668, 1669, - 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, + 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, + 1660, 1661, 1662, 1663, 1664, 1668, 1665, 1669, 1670, 1666, + 1671, 1672, 1667, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, - 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, - 1690, 1701, 1702, 1703, 1704, 1678, 1705, 1706, 1707, 1708, - 1709, 1710, 1711, 1712, 1713, 1715, 1716, 1717, 1718, 1719, - 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, + 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1698, 1699, 1700, + 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1697, 1708, 1709, + 1710, 1711, 1685, 1712, 1713, 1714, 1715, 1716, 1717, 1718, + 1719, 1720, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, - 1770, 1771, 1714, 1772, 1773, 1774, 1775, 1776, 1777, 1778, - 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1761, - 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, + 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1721, + 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, + 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1769, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, @@ -1681,9 +1687,9 @@ static const flex_int16_t yy_nxt[2669] = 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, - 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1886, 1887, 1888, - 1889, 1885, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, - 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, + 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, + 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1896, 1897, 1898, + 1899, 1895, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, @@ -1692,8 +1698,8 @@ static const flex_int16_t yy_nxt[2669] = 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, - 1978, 1979, 1980, 1981, 1982, 1984, 1985, 1983, 1986, 1987, - 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, + 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, @@ -1712,79 +1718,83 @@ static const flex_int16_t yy_nxt[2669] = 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, - 2158, 2159, 2160, 2161, 2162, 2164, 2163, 2165, 2166, 2167, + 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, - 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, + 2178, 2179, 2180, 2181, 2183, 2182, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, - 2198, 2199, 2200, 2201, 2202, 12, 12, 12, 36, 36, - 36, 79, 98, 79, 100, 100, 100, 113, 113, 113, - 188, 854, 188, 207, 207, 207, 853, 852, 851, 850, - - 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, - 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, - 829, 828, 827, 826, 823, 822, 821, 820, 819, 818, - 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, - 807, 806, 805, 804, 803, 802, 801, 800, 797, 796, - 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, - 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, - 775, 774, 773, 772, 771, 770, 769, 766, 765, 764, - 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, - 753, 752, 751, 750, 747, 746, 744, 741, 740, 739, - - 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, - 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, - 718, 715, 714, 713, 712, 711, 710, 709, 708, 707, - 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, - 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, - 686, 685, 684, 683, 682, 680, 679, 678, 677, 676, - 675, 674, 673, 672, 669, 668, 667, 666, 665, 664, - 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, - 653, 652, 651, 650, 647, 646, 645, 644, 643, 642, - 641, 640, 639, 638, 634, 633, 626, 625, 624, 623, - - 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, - 612, 611, 609, 606, 605, 604, 602, 601, 600, 599, - 598, 595, 594, 593, 592, 591, 590, 589, 588, 587, - 586, 585, 584, 583, 582, 581, 580, 579, 578, 575, - 574, 573, 572, 571, 570, 569, 568, 565, 564, 561, - 560, 559, 558, 557, 554, 553, 552, 551, 550, 549, - 548, 547, 546, 545, 544, 543, 542, 541, 540, 536, - 535, 534, 533, 532, 531, 530, 526, 525, 524, 523, - 522, 521, 520, 519, 518, 517, 516, 515, 510, 509, - 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, - - 498, 497, 496, 493, 492, 491, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, - 476, 475, 474, 473, 471, 469, 468, 466, 464, 460, - 457, 456, 453, 452, 451, 449, 448, 447, 445, 444, - 443, 440, 439, 438, 437, 436, 435, 434, 433, 432, - 431, 430, 429, 428, 427, 424, 423, 422, 421, 420, - 419, 418, 417, 416, 415, 414, 413, 410, 409, 405, - 404, 403, 400, 398, 397, 396, 395, 394, 393, 389, - 388, 387, 386, 385, 384, 383, 380, 379, 378, 377, - 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, - - 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, - 356, 350, 349, 348, 347, 346, 345, 344, 343, 342, - 341, 340, 208, 334, 332, 328, 326, 325, 318, 317, - 316, 315, 313, 311, 307, 306, 305, 302, 301, 300, - 285, 279, 274, 273, 272, 269, 266, 265, 264, 263, - 262, 261, 258, 257, 256, 253, 252, 251, 250, 249, - 248, 244, 243, 235, 234, 233, 232, 231, 228, 227, - 226, 222, 219, 215, 214, 213, 208, 199, 197, 196, - 195, 186, 166, 145, 119, 105, 103, 43, 99, 97, - 96, 87, 43, 2203, 11, 2203, 2203, 2203, 2203, 2203, - - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203 + 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, + 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, + 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 12, 12, + + 12, 36, 36, 36, 79, 98, 79, 100, 100, 100, + 113, 113, 113, 188, 854, 188, 207, 207, 207, 853, + 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, + 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, + 832, 831, 830, 829, 828, 827, 826, 823, 822, 821, + 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, + 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, + 800, 797, 796, 795, 794, 793, 792, 791, 790, 789, + 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, + 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, + + 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, + 756, 755, 754, 753, 752, 751, 750, 747, 746, 744, + 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, + 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, + 721, 720, 719, 718, 715, 714, 713, 712, 711, 710, + 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, + 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, + 689, 688, 687, 686, 685, 684, 683, 682, 680, 679, + 678, 677, 676, 675, 674, 673, 672, 669, 668, 667, + 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, + + 656, 655, 654, 653, 652, 651, 650, 647, 646, 645, + 644, 643, 642, 641, 640, 639, 638, 634, 633, 626, + 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, + 615, 614, 613, 612, 611, 609, 606, 605, 604, 602, + 601, 600, 599, 598, 595, 594, 593, 592, 591, 590, + 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, + 579, 578, 575, 574, 573, 572, 571, 570, 569, 568, + 565, 564, 561, 560, 559, 558, 557, 554, 553, 552, + 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, + 541, 540, 536, 535, 534, 533, 532, 531, 530, 526, + + 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, + 515, 510, 509, 508, 507, 506, 505, 504, 503, 502, + 501, 500, 499, 498, 497, 496, 493, 492, 491, 490, + 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, + 479, 478, 477, 476, 475, 474, 473, 471, 469, 468, + 466, 464, 460, 457, 456, 453, 452, 451, 449, 448, + 447, 445, 444, 443, 440, 439, 438, 437, 436, 435, + 434, 433, 432, 431, 430, 429, 428, 427, 424, 423, + 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, + 410, 409, 405, 404, 403, 400, 398, 397, 396, 395, + + 394, 393, 389, 388, 387, 386, 385, 384, 383, 380, + 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, + 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, + 359, 358, 357, 356, 350, 349, 348, 347, 346, 345, + 344, 343, 342, 341, 340, 208, 334, 332, 328, 326, + 325, 318, 317, 316, 315, 313, 311, 307, 306, 305, + 302, 301, 300, 285, 279, 274, 273, 272, 269, 266, + 265, 264, 263, 262, 261, 258, 257, 256, 253, 252, + 251, 250, 249, 248, 244, 243, 235, 234, 233, 232, + 231, 228, 227, 226, 222, 219, 215, 214, 213, 208, + + 199, 197, 196, 195, 186, 166, 145, 119, 105, 103, + 43, 99, 97, 96, 87, 43, 2226, 11, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226 + } ; -static const flex_int16_t yy_chk[2669] = +static const flex_int16_t yy_chk[2692] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1874,211 +1884,215 @@ static const flex_int16_t yy_chk[2669] = 783, 784, 778, 785, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, - 803, 804, 805, 806, 807, 808, 806, 809, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, - 823, 825, 826, 827, 828, 829, 830, 831, 832, 833, - 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 851, 852, - 853, 854, 849, 856, 855, 851, 857, 858, 860, 851, - 855, 861, 862, 863, 864, 865, 866, 867, 868, 869, - 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, - 880, 881, 882, 883, 884, 885, 886, 887, 888, 890, - 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, - - 901, 902, 903, 875, 904, 905, 906, 907, 908, 909, - 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, - 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, - 926, 931, 932, 933, 934, 935, 936, 937, 940, 941, - 942, 943, 944, 945, 948, 949, 950, 951, 952, 953, - 954, 956, 957, 958, 959, 960, 957, 961, 962, 963, - 964, 965, 968, 969, 970, 971, 972, 973, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 1000, 1001, 1002, 1003, 1004, 1005, 1006, - - 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 1017, 1018, 1019, 1020, 1021, 1023, 1024, 1025, 1026, 1027, - 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, - 1014, 1038, 1039, 1013, 1040, 1041, 1042, 1043, 1044, 1045, - 1046, 1047, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, - 1057, 1058, 1059, 1060, 1061, 1062, 1064, 1065, 1066, 1067, - 1068, 1069, 1070, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, - 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, - 1100, 1101, 1102, 1103, 1104, 1106, 1107, 1095, 1108, 1109, - - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1125, 1126, 1127, 1128, 1068, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, - 1140, 1141, 1142, 1143, 1144, 1147, 1145, 1148, 1149, 1150, - 1151, 1152, 1154, 1155, 1156, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, - 1173, 1175, 1144, 1145, 1176, 1177, 1178, 1179, 1180, 1181, - 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1197, 1198, 1199, 1200, 1201, 1197, - 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, - - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1232, - 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1198, - 1242, 1244, 1245, 1246, 1248, 1249, 1250, 1251, 1252, 1253, - 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, - 1264, 1265, 1266, 1267, 1268, 1270, 1271, 1272, 1273, 1274, - 1275, 1276, 1277, 1278, 1280, 1281, 1282, 1283, 1284, 1285, - 1286, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1270, 1296, - 1297, 1298, 1299, 1300, 1271, 1301, 1302, 1303, 1304, 1305, - 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, - - 1317, 1319, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, - 1329, 1330, 1331, 1332, 1333, 1334, 1336, 1338, 1339, 1340, - 1341, 1343, 1344, 1345, 1346, 1347, 1348, 1350, 1352, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, - 1365, 1366, 1367, 1368, 1370, 1371, 1372, 1373, 1374, 1375, - 1376, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1392, 1393, 1394, 1395, 1396, 1398, 1399, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, - 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1389, - 1362, 1419, 1420, 1422, 1423, 1424, 1425, 1426, 1427, 1428, - - 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, - 1439, 1440, 1398, 1441, 1442, 1443, 1444, 1445, 1446, 1447, - 1448, 1450, 1442, 1451, 1454, 1455, 1456, 1457, 1458, 1459, - 1460, 1461, 1462, 1463, 1464, 1465, 1467, 1468, 1469, 1470, - 1471, 1472, 1475, 1474, 1470, 1474, 1477, 1478, 1481, 1482, - 1483, 1484, 1485, 1486, 1487, 1488, 1490, 1491, 1492, 1493, - 1494, 1496, 1497, 1498, 1493, 1499, 1500, 1502, 1503, 1504, - 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, - 1515, 1516, 1517, 1494, 1518, 1520, 1521, 1522, 1524, 1525, - 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, - - 1536, 1538, 1540, 1541, 1543, 1544, 1545, 1546, 1547, 1548, - 1549, 1550, 1551, 1553, 1554, 1555, 1556, 1557, 1558, 1559, - 1560, 1561, 1564, 1565, 1567, 1568, 1569, 1571, 1572, 1571, - 1573, 1574, 1571, 1575, 1576, 1571, 1577, 1578, 1579, 1580, - 1581, 1582, 1583, 1584, 1586, 1588, 1589, 1591, 1592, 1594, - 1596, 1597, 1598, 1600, 1601, 1602, 1603, 1604, 1605, 1606, - 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, - 1606, 1617, 1618, 1619, 1620, 1592, 1621, 1622, 1623, 1624, - 1625, 1626, 1627, 1627, 1628, 1629, 1630, 1631, 1632, 1633, - 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, - - 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, - 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1663, 1664, - 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1673, 1674, 1675, - 1677, 1678, 1680, 1681, 1684, 1685, 1686, 1688, 1689, 1690, - 1691, 1692, 1628, 1693, 1694, 1695, 1696, 1697, 1698, 1699, - 1701, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1678, - 1711, 1712, 1714, 1715, 1716, 1717, 1719, 1720, 1722, 1723, - 1724, 1726, 1727, 1728, 1730, 1731, 1733, 1734, 1735, 1736, - 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, - 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, - - 1757, 1758, 1760, 1761, 1763, 1764, 1765, 1767, 1768, 1769, - 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, - 1780, 1781, 1782, 1783, 1784, 1785, 1787, 1788, 1789, 1791, - 1792, 1793, 1794, 1796, 1797, 1798, 1799, 1800, 1802, 1803, - 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, - 1814, 1815, 1816, 1817, 1819, 1820, 1822, 1824, 1826, 1827, - 1828, 1822, 1829, 1832, 1834, 1835, 1836, 1837, 1838, 1839, - 1840, 1841, 1842, 1843, 1844, 1846, 1847, 1848, 1849, 1850, - 1851, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, - 1863, 1864, 1865, 1867, 1868, 1869, 1870, 1871, 1872, 1873, - - 1874, 1875, 1876, 1878, 1879, 1880, 1881, 1882, 1884, 1885, - 1886, 1887, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, - 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, - 1909, 1910, 1911, 1913, 1915, 1916, 1917, 1918, 1919, 1920, - 1921, 1922, 1923, 1925, 1927, 1928, 1929, 1930, 1931, 1932, - 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1937, 1940, 1941, - 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1952, - 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, - 1963, 1965, 1969, 1971, 1972, 1973, 1974, 1975, 1976, 1977, - 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1988, - - 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2010, - 2012, 2015, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, - 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2034, 2035, 2036, - 2037, 2038, 2039, 2041, 2042, 2043, 2044, 2045, 2046, 2047, - 2048, 2049, 2050, 2051, 2052, 2054, 2055, 2056, 2057, 2058, - 2059, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2070, - 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, - 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2089, 2090, 2092, - 2093, 2094, 2095, 2097, 2098, 2099, 2100, 2101, 2105, 2108, - - 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2117, 2118, 2119, - 2120, 2121, 2122, 2123, 2124, 2125, 2127, 2128, 2129, 2130, - 2131, 2132, 2134, 2136, 2138, 2139, 2140, 2141, 2142, 2143, - 2144, 2146, 2147, 2148, 2149, 2150, 2149, 2151, 2152, 2154, - 2155, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, - 2168, 2169, 2170, 2171, 2172, 2173, 2175, 2176, 2177, 2178, - 2181, 2182, 2183, 2185, 2186, 2188, 2190, 2191, 2192, 2193, - 2194, 2195, 2196, 2197, 2199, 2204, 2204, 2204, 2205, 2205, - 2205, 2206, 2207, 2206, 2208, 2208, 2208, 2209, 2209, 2209, - 2210, 720, 2210, 2211, 2211, 2211, 719, 718, 717, 716, - - 715, 714, 713, 712, 711, 710, 709, 707, 706, 705, - 704, 703, 702, 701, 700, 699, 698, 696, 695, 694, - 693, 692, 691, 690, 688, 687, 686, 685, 684, 683, - 682, 681, 680, 679, 677, 676, 675, 674, 673, 672, - 671, 670, 669, 668, 667, 666, 665, 664, 662, 661, - 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, - 650, 649, 647, 646, 645, 644, 643, 642, 641, 640, - 639, 638, 637, 636, 635, 634, 633, 631, 630, 629, - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, - 618, 617, 616, 615, 613, 612, 609, 603, 602, 601, - - 600, 599, 598, 597, 595, 594, 592, 591, 589, 588, - 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, - 577, 575, 574, 573, 572, 571, 570, 569, 568, 567, - 566, 565, 564, 563, 562, 561, 560, 559, 558, 556, - 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, - 544, 543, 542, 541, 540, 538, 537, 535, 534, 533, - 532, 531, 530, 529, 527, 526, 525, 524, 523, 522, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 510, 509, 508, 507, 505, 504, 503, 502, 501, 500, - 499, 498, 496, 495, 493, 492, 489, 488, 487, 486, - - 485, 484, 482, 481, 480, 479, 478, 477, 476, 475, - 474, 473, 471, 467, 465, 464, 462, 461, 460, 457, - 456, 454, 453, 451, 450, 449, 448, 447, 446, 445, - 444, 443, 442, 441, 440, 439, 438, 437, 436, 434, - 433, 432, 431, 430, 429, 428, 427, 425, 424, 422, - 420, 419, 418, 417, 415, 414, 413, 412, 411, 410, - 409, 408, 407, 406, 405, 404, 403, 402, 400, 397, - 396, 395, 394, 393, 392, 391, 389, 388, 387, 386, - 385, 384, 383, 382, 381, 380, 379, 378, 376, 375, - 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, - - 364, 363, 362, 360, 359, 358, 357, 356, 355, 354, - 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, - 343, 342, 341, 340, 338, 335, 333, 330, 328, 325, - 318, 317, 315, 314, 313, 311, 310, 309, 307, 306, - 305, 303, 302, 301, 300, 299, 298, 297, 296, 295, - 294, 293, 292, 291, 290, 288, 287, 286, 285, 284, - 283, 282, 281, 280, 279, 278, 277, 275, 274, 272, - 271, 270, 268, 266, 265, 264, 263, 262, 261, 259, - 258, 257, 256, 255, 254, 253, 251, 250, 248, 247, - 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, - - 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, - 226, 223, 222, 221, 220, 219, 218, 217, 216, 215, - 214, 213, 207, 205, 203, 199, 197, 195, 187, 186, - 185, 184, 182, 180, 177, 176, 175, 173, 172, 171, - 167, 164, 162, 161, 160, 158, 156, 155, 154, 153, - 152, 151, 149, 148, 147, 145, 144, 143, 142, 141, - 140, 138, 137, 133, 132, 131, 130, 129, 127, 126, - 125, 123, 121, 119, 118, 117, 113, 105, 103, 98, - 97, 77, 72, 66, 58, 49, 47, 43, 41, 39, - 38, 24, 14, 11, 2203, 2203, 2203, 2203, 2203, 2203, - - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203 + 803, 804, 805, 806, 793, 807, 806, 808, 809, 811, + 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 825, 826, 827, 828, 829, 830, 831, 832, + 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, + 843, 844, 845, 846, 847, 848, 849, 850, 851, 851, + 852, 853, 854, 849, 856, 855, 851, 857, 858, 860, + 851, 855, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + + 900, 901, 902, 903, 875, 904, 905, 906, 907, 908, + 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, + 919, 921, 922, 923, 924, 925, 926, 927, 928, 929, + 930, 926, 931, 932, 933, 934, 935, 936, 937, 938, + 941, 942, 943, 944, 945, 946, 949, 950, 951, 952, + 953, 954, 955, 957, 958, 959, 960, 961, 958, 962, + 963, 964, 965, 966, 969, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1001, 1002, 1003, 1004, 1005, + + 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, + 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1024, 1025, 1026, + 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, + 1037, 1038, 1015, 1039, 1040, 1014, 1041, 1042, 1043, 1044, + 1045, 1046, 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1065, 1066, + 1067, 1068, 1069, 1070, 1071, 1072, 1074, 1075, 1076, 1077, + 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, + 1098, 1099, 1100, 1102, 1103, 1104, 1105, 1106, 1108, 1109, + + 1097, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, + 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1128, 1129, + 1130, 1070, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1149, 1147, + 1150, 1151, 1152, 1153, 1154, 1156, 1157, 1158, 1160, 1161, + 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, + 1172, 1173, 1174, 1175, 1177, 1146, 1147, 1178, 1179, 1180, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, + 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1200, 1201, + 1202, 1203, 1204, 1200, 1205, 1206, 1207, 1208, 1209, 1210, + + 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, + 1231, 1232, 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 1244, 1201, 1245, 1247, 1248, 1249, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, + 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1283, 1284, + 1285, 1286, 1287, 1288, 1289, 1291, 1292, 1293, 1294, 1295, + 1296, 1297, 1273, 1299, 1300, 1301, 1302, 1303, 1274, 1304, + 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, + + 1315, 1316, 1317, 1318, 1320, 1321, 1323, 1325, 1326, 1327, + 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, + 1338, 1340, 1342, 1343, 1344, 1345, 1347, 1348, 1349, 1350, + 1351, 1352, 1354, 1356, 1358, 1359, 1360, 1361, 1362, 1363, + 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1383, 1384, 1385, 1386, + 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1396, 1397, + 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1393, 1366, 1423, 1424, 1426, 1427, + + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, + 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1402, 1445, 1446, + 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1455, 1447, 1456, + 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, + 1469, 1470, 1472, 1473, 1474, 1475, 1476, 1477, 1480, 1479, + 1475, 1479, 1482, 1483, 1486, 1487, 1488, 1489, 1490, 1491, + 1492, 1493, 1495, 1496, 1497, 1498, 1499, 1501, 1502, 1503, + 1498, 1504, 1505, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1499, + 1523, 1525, 1526, 1527, 1529, 1530, 1531, 1532, 1533, 1534, + + 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1544, 1546, + 1547, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1570, + 1571, 1573, 1574, 1575, 1577, 1578, 1577, 1579, 1580, 1577, + 1581, 1582, 1577, 1583, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1592, 1594, 1595, 1597, 1598, 1600, 1602, 1603, 1604, + 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1612, 1623, 1624, + 1625, 1626, 1598, 1627, 1628, 1629, 1630, 1631, 1632, 1633, + 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + + 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, + 1663, 1664, 1665, 1666, 1667, 1668, 1670, 1671, 1672, 1673, + 1674, 1675, 1676, 1677, 1678, 1680, 1681, 1682, 1684, 1685, + 1687, 1688, 1691, 1692, 1693, 1695, 1696, 1697, 1698, 1634, + 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1708, 1710, + 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1685, 1718, 1719, + 1721, 1722, 1723, 1724, 1725, 1727, 1728, 1730, 1731, 1732, + 1734, 1735, 1736, 1738, 1739, 1741, 1742, 1743, 1744, 1745, + 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, + + 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, + 1766, 1768, 1769, 1771, 1772, 1773, 1775, 1776, 1777, 1778, + 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, + 1789, 1790, 1791, 1792, 1793, 1795, 1796, 1797, 1799, 1800, + 1801, 1802, 1803, 1805, 1806, 1807, 1808, 1809, 1811, 1812, + 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, + 1823, 1824, 1825, 1826, 1828, 1829, 1831, 1833, 1835, 1836, + 1837, 1831, 1838, 1841, 1843, 1844, 1845, 1846, 1847, 1848, + 1849, 1850, 1851, 1852, 1853, 1855, 1856, 1857, 1858, 1859, + 1860, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + + 1871, 1873, 1874, 1875, 1877, 1878, 1879, 1880, 1881, 1882, + 1883, 1884, 1885, 1886, 1888, 1889, 1890, 1891, 1892, 1894, + 1895, 1896, 1897, 1900, 1901, 1902, 1903, 1904, 1905, 1906, + 1907, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, + 1918, 1919, 1920, 1921, 1923, 1924, 1926, 1927, 1928, 1929, + 1930, 1931, 1932, 1933, 1934, 1936, 1938, 1939, 1940, 1941, + 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1948, + 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, + 1961, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, + 1972, 1973, 1974, 1975, 1977, 1981, 1983, 1984, 1985, 1986, + + 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, + 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017, 2018, + 2019, 2020, 2021, 2023, 2025, 2028, 2030, 2031, 2032, 2033, + 2034, 2035, 2036, 2037, 2039, 2040, 2041, 2042, 2043, 2044, + 2045, 2047, 2048, 2049, 2050, 2051, 2052, 2054, 2055, 2056, + 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, + 2068, 2069, 2070, 2071, 2072, 2073, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2084, 2085, 2086, 2087, 2088, 2089, + 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, + + 2100, 2101, 2102, 2104, 2105, 2107, 2108, 2109, 2110, 2112, + 2113, 2114, 2115, 2116, 2117, 2121, 2124, 2125, 2126, 2127, + 2128, 2129, 2130, 2131, 2133, 2134, 2135, 2136, 2137, 2138, + 2139, 2140, 2141, 2142, 2144, 2145, 2146, 2147, 2148, 2149, + 2151, 2153, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, + 2164, 2165, 2166, 2167, 2168, 2167, 2169, 2170, 2172, 2173, + 2175, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, + 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2195, 2196, 2197, + 2198, 2199, 2202, 2203, 2204, 2206, 2207, 2209, 2210, 2212, + 2213, 2214, 2216, 2217, 2218, 2219, 2220, 2222, 2227, 2227, + + 2227, 2228, 2228, 2228, 2229, 2230, 2229, 2231, 2231, 2231, + 2232, 2232, 2232, 2233, 720, 2233, 2234, 2234, 2234, 719, + 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, + 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, + 696, 695, 694, 693, 692, 691, 690, 688, 687, 686, + 685, 684, 683, 682, 681, 680, 679, 677, 676, 675, + 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, + 664, 662, 661, 660, 659, 658, 657, 656, 655, 654, + 653, 652, 651, 650, 649, 647, 646, 645, 644, 643, + 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, + + 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 613, 612, 609, + 603, 602, 601, 600, 599, 598, 597, 595, 594, 592, + 591, 589, 588, 587, 586, 585, 584, 583, 582, 581, + 580, 579, 578, 577, 575, 574, 573, 572, 571, 570, + 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, + 559, 558, 556, 554, 553, 552, 551, 550, 549, 548, + 547, 546, 545, 544, 543, 542, 541, 540, 538, 537, + 535, 534, 533, 532, 531, 530, 529, 527, 526, 525, + 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, + + 514, 513, 512, 510, 509, 508, 507, 505, 504, 503, + 502, 501, 500, 499, 498, 496, 495, 493, 492, 489, + 488, 487, 486, 485, 484, 482, 481, 480, 479, 478, + 477, 476, 475, 474, 473, 471, 467, 465, 464, 462, + 461, 460, 457, 456, 454, 453, 451, 450, 449, 448, + 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, + 437, 436, 434, 433, 432, 431, 430, 429, 428, 427, + 425, 424, 422, 420, 419, 418, 417, 415, 414, 413, + 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, + 402, 400, 397, 396, 395, 394, 393, 392, 391, 389, + + 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, + 378, 376, 375, 374, 373, 372, 371, 370, 369, 368, + 367, 366, 365, 364, 363, 362, 360, 359, 358, 357, + 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, + 346, 345, 344, 343, 342, 341, 340, 338, 335, 333, + 330, 328, 325, 318, 317, 315, 314, 313, 311, 310, + 309, 307, 306, 305, 303, 302, 301, 300, 299, 298, + 297, 296, 295, 294, 293, 292, 291, 290, 288, 287, + 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, + 275, 274, 272, 271, 270, 268, 266, 265, 264, 263, + + 262, 261, 259, 258, 257, 256, 255, 254, 253, 251, + 250, 248, 247, 246, 245, 244, 243, 242, 241, 240, + 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, + 229, 228, 227, 226, 223, 222, 221, 220, 219, 218, + 217, 216, 215, 214, 213, 207, 205, 203, 199, 197, + 195, 187, 186, 185, 184, 182, 180, 177, 176, 175, + 173, 172, 171, 167, 164, 162, 161, 160, 158, 156, + 155, 154, 153, 152, 151, 149, 148, 147, 145, 144, + 143, 142, 141, 140, 138, 137, 133, 132, 131, 130, + 129, 127, 126, 125, 123, 121, 119, 118, 117, 113, + + 105, 103, 98, 97, 77, 72, 66, 58, 49, 47, + 43, 41, 39, 38, 24, 14, 11, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, + 2226 + } ; static yy_state_type yy_last_accepting_state; @@ -2087,7 +2101,7 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[224] = +static const flex_int16_t yy_rule_linenum[225] = { 0, 146, 148, 150, 155, 156, 161, 162, 163, 175, 178, 183, 190, 199, 208, 217, 226, 235, 244, 253, 263, @@ -2111,9 +2125,9 @@ static const flex_int16_t yy_rule_linenum[224] = 1867, 1877, 1887, 1897, 1907, 1917, 1927, 1937, 1946, 1955, 1964, 1973, 1984, 1995, 2008, 2021, 2034, 2043, 2052, 2061, - 2070, 2079, 2088, 2097, 2109, 2210, 2226, 2275, 2283, 2298, - 2299, 2300, 2301, 2302, 2303, 2305, 2323, 2336, 2341, 2345, - 2347, 2349, 2351 + 2070, 2079, 2088, 2097, 2106, 2118, 2219, 2235, 2284, 2292, + 2307, 2308, 2309, 2310, 2311, 2312, 2314, 2332, 2345, 2350, + 2354, 2356, 2358, 2360 } ; /* The intent behind this definition is that it'll catch @@ -2167,7 +2181,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2171 "dhcp4_lexer.cc" +#line 2184 "dhcp4_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2193,8 +2207,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 2197 "dhcp4_lexer.cc" -#line 2198 "dhcp4_lexer.cc" +#line 2210 "dhcp4_lexer.cc" +#line 2211 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2522,7 +2536,7 @@ YY_DECL } -#line 2526 "dhcp4_lexer.cc" +#line 2539 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2551,13 +2565,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2204 ) + if ( yy_current_state >= 2227 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2203 ); + while ( yy_current_state != 2226 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2576,13 +2590,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 224 ) + else if ( yy_act < 225 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 224 ) + else if ( yy_act == 225 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 225 ) + else if ( yy_act == 226 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -5149,9 +5163,9 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: - return isc::dhcp::Dhcp4Parser::make_IGNORE_RAI_LINK_SEL(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_IGNORE_DHCP_SERVER_ID(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ignore-dhcp-server-identifier", driver.loc_); } } YY_BREAK @@ -5161,15 +5175,27 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: - return isc::dhcp::Dhcp4Parser::make_EXCLUDE_FIRST_LAST_24(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_IGNORE_RAI_LINK_SEL(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("exclude-first-last-24", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_); } } YY_BREAK case 204: YY_RULE_SETUP #line 2097 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::COMPATIBILITY: + return isc::dhcp::Dhcp4Parser::make_EXCLUDE_FIRST_LAST_24(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("exclude-first-last-24", driver.loc_); + } +} + YY_BREAK +case 205: +YY_RULE_SETUP +#line 2106 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5182,9 +5208,9 @@ YY_RULE_SETUP } } YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2109 "dhcp4_lexer.ll" +#line 2118 "dhcp4_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -5286,10 +5312,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 206: -/* rule 206 can match eol */ +case 207: +/* rule 207 can match eol */ YY_RULE_SETUP -#line 2210 "dhcp4_lexer.ll" +#line 2219 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5306,10 +5332,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 207: -/* rule 207 can match eol */ +case 208: +/* rule 208 can match eol */ YY_RULE_SETUP -#line 2226 "dhcp4_lexer.ll" +#line 2235 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5359,9 +5385,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2275 "dhcp4_lexer.ll" +#line 2284 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5370,9 +5396,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 2283 "dhcp4_lexer.ll" +#line 2292 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5388,39 +5414,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 2298 "dhcp4_lexer.ll" +#line 2307 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 2299 "dhcp4_lexer.ll" +#line 2308 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 2300 "dhcp4_lexer.ll" +#line 2309 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2301 "dhcp4_lexer.ll" +#line 2310 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 2302 "dhcp4_lexer.ll" +#line 2311 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 215: +case 216: YY_RULE_SETUP -#line 2303 "dhcp4_lexer.ll" +#line 2312 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 216: +case 217: YY_RULE_SETUP -#line 2305 "dhcp4_lexer.ll" +#line 2314 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5439,9 +5465,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 217: +case 218: YY_RULE_SETUP -#line 2323 "dhcp4_lexer.ll" +#line 2332 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5455,43 +5481,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 218: +case 219: YY_RULE_SETUP -#line 2336 "dhcp4_lexer.ll" +#line 2345 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 219: +case 220: YY_RULE_SETUP -#line 2341 "dhcp4_lexer.ll" +#line 2350 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 220: +case 221: YY_RULE_SETUP -#line 2345 "dhcp4_lexer.ll" +#line 2354 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 221: +case 222: YY_RULE_SETUP -#line 2347 "dhcp4_lexer.ll" +#line 2356 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 222: +case 223: YY_RULE_SETUP -#line 2349 "dhcp4_lexer.ll" +#line 2358 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 223: +case 224: YY_RULE_SETUP -#line 2351 "dhcp4_lexer.ll" +#line 2360 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2353 "dhcp4_lexer.ll" +#line 2362 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5515,12 +5541,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 224: +case 225: YY_RULE_SETUP -#line 2376 "dhcp4_lexer.ll" +#line 2385 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5524 "dhcp4_lexer.cc" +#line 5549 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5839,7 +5865,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2204 ) + if ( yy_current_state >= 2227 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5872,11 +5898,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2204 ) + if ( yy_current_state >= 2227 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2203); + yy_is_jam = (yy_current_state == 2226); return yy_is_jam ? 0 : yy_current_state; } @@ -6625,7 +6651,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2376 "dhcp4_lexer.ll" +#line 2385 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 98be7b2b7e..4f6bffdb02 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.2. +// A Bison parser, made by GNU Bison 3.8.2. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see . +// along with this program. If not, see . // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -125,7 +125,7 @@ #else // !PARSER4_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) +# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol) # define YY_REDUCE_PRINT(Rule) static_cast (0) # define YY_STACK_PRINT() static_cast (0) @@ -160,9 +160,9 @@ namespace isc { namespace dhcp { Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW {} - /*---------------. - | symbol kinds. | - `---------------*/ + /*---------. + | symbol. | + `---------*/ @@ -390,7 +390,7 @@ namespace isc { namespace dhcp { Dhcp4Parser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const { std::ostream& yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (yysym.empty ()) yyo << "empty symbol"; else @@ -402,79 +402,79 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 408 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 414 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 420 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 426 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 432 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 438 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 444 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 450 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 456 "dhcp4_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 462 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 468 "dhcp4_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 474 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 480 "dhcp4_parser.cc" break; @@ -507,7 +507,7 @@ namespace isc { namespace dhcp { } void - Dhcp4Parser::yypop_ (int n) + Dhcp4Parser::yypop_ (int n) YY_NOEXCEPT { yystack_.pop (n); } @@ -550,13 +550,13 @@ namespace isc { namespace dhcp { } bool - Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) + Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT { return yyvalue == yypact_ninf_; } bool - Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) + Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT { return yyvalue == yytable_ninf_; } @@ -755,127 +755,127 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 305 "dhcp4_parser.yy" +#line 306 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 761 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 306 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 767 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 307 "dhcp4_parser.yy" +#line 308 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 773 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 308 "dhcp4_parser.yy" +#line 309 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 779 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 309 "dhcp4_parser.yy" +#line 310 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 785 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 310 "dhcp4_parser.yy" +#line 311 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 791 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 311 "dhcp4_parser.yy" +#line 312 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 797 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 312 "dhcp4_parser.yy" +#line 313 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 803 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 313 "dhcp4_parser.yy" +#line 314 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 809 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 314 "dhcp4_parser.yy" +#line 315 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 815 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 315 "dhcp4_parser.yy" +#line 316 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 821 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 316 "dhcp4_parser.yy" +#line 317 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 827 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 317 "dhcp4_parser.yy" +#line 318 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 833 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 325 "dhcp4_parser.yy" +#line 326 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 839 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 326 "dhcp4_parser.yy" +#line 327 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 845 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 327 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 851 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 328 "dhcp4_parser.yy" +#line 329 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 857 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 329 "dhcp4_parser.yy" +#line 330 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 863 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 330 "dhcp4_parser.yy" +#line 331 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 869 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 331 "dhcp4_parser.yy" +#line 332 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 875 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 334 "dhcp4_parser.yy" +#line 335 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -884,7 +884,7 @@ namespace isc { namespace dhcp { break; case 36: // $@14: %empty -#line 339 "dhcp4_parser.yy" +#line 340 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -895,7 +895,7 @@ namespace isc { namespace dhcp { break; case 37: // map2: "{" $@14 map_content "}" -#line 344 "dhcp4_parser.yy" +#line 345 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -905,13 +905,13 @@ namespace isc { namespace dhcp { break; case 38: // map_value: map2 -#line 350 "dhcp4_parser.yy" +#line 351 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 911 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 357 "dhcp4_parser.yy" +#line 358 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -921,7 +921,7 @@ namespace isc { namespace dhcp { break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 362 "dhcp4_parser.yy" +#line 363 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -932,7 +932,7 @@ namespace isc { namespace dhcp { break; case 43: // not_empty_map: not_empty_map "," -#line 368 "dhcp4_parser.yy" +#line 369 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -940,7 +940,7 @@ namespace isc { namespace dhcp { break; case 44: // $@15: %empty -#line 373 "dhcp4_parser.yy" +#line 374 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -949,7 +949,7 @@ namespace isc { namespace dhcp { break; case 45: // list_generic: "[" $@15 list_content "]" -#line 376 "dhcp4_parser.yy" +#line 377 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -957,7 +957,7 @@ namespace isc { namespace dhcp { break; case 48: // not_empty_list: value -#line 384 "dhcp4_parser.yy" +#line 385 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -966,7 +966,7 @@ namespace isc { namespace dhcp { break; case 49: // not_empty_list: not_empty_list "," value -#line 388 "dhcp4_parser.yy" +#line 389 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -975,7 +975,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: not_empty_list "," -#line 392 "dhcp4_parser.yy" +#line 393 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -983,7 +983,7 @@ namespace isc { namespace dhcp { break; case 51: // $@16: %empty -#line 398 "dhcp4_parser.yy" +#line 399 "dhcp4_parser.yy" { // List parsing about to start } @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 400 "dhcp4_parser.yy" +#line 401 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp { break; case 55: // not_empty_list_strings: "constant string" -#line 409 "dhcp4_parser.yy" +#line 410 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1009,7 +1009,7 @@ namespace isc { namespace dhcp { break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 413 "dhcp4_parser.yy" +#line 414 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 417 "dhcp4_parser.yy" +#line 418 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp { break; case 58: // unknown_map_entry: "constant string" ":" -#line 427 "dhcp4_parser.yy" +#line 428 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp { break; case 59: // $@17: %empty -#line 436 "dhcp4_parser.yy" +#line 437 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp { break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 441 "dhcp4_parser.yy" +#line 442 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1061,7 +1061,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 451 "dhcp4_parser.yy" +#line 452 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1076,7 +1076,7 @@ namespace isc { namespace dhcp { break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 460 "dhcp4_parser.yy" +#line 461 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1086,7 +1086,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object_comma: global_object "," -#line 468 "dhcp4_parser.yy" +#line 469 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1094,7 +1094,7 @@ namespace isc { namespace dhcp { break; case 65: // $@19: %empty -#line 474 "dhcp4_parser.yy" +#line 475 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1104,7 +1104,7 @@ namespace isc { namespace dhcp { break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 478 "dhcp4_parser.yy" +#line 479 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1113,7 +1113,7 @@ namespace isc { namespace dhcp { break; case 69: // global_params: global_params "," -#line 485 "dhcp4_parser.yy" +#line 486 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1121,7 +1121,7 @@ namespace isc { namespace dhcp { break; case 136: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 560 "dhcp4_parser.yy" +#line 561 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1131,7 +1131,7 @@ namespace isc { namespace dhcp { break; case 137: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 566 "dhcp4_parser.yy" +#line 567 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp { break; case 138: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 572 "dhcp4_parser.yy" +#line 573 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1151,7 +1151,7 @@ namespace isc { namespace dhcp { break; case 139: // renew_timer: "renew-timer" ":" "integer" -#line 578 "dhcp4_parser.yy" +#line 579 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1161,7 +1161,7 @@ namespace isc { namespace dhcp { break; case 140: // rebind_timer: "rebind-timer" ":" "integer" -#line 584 "dhcp4_parser.yy" +#line 585 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1171,7 +1171,7 @@ namespace isc { namespace dhcp { break; case 141: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 590 "dhcp4_parser.yy" +#line 591 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1181,7 +1181,7 @@ namespace isc { namespace dhcp { break; case 142: // t1_percent: "t1-percent" ":" "floating point" -#line 596 "dhcp4_parser.yy" +#line 597 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1191,7 +1191,7 @@ namespace isc { namespace dhcp { break; case 143: // t2_percent: "t2-percent" ":" "floating point" -#line 602 "dhcp4_parser.yy" +#line 603 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1201,7 +1201,7 @@ namespace isc { namespace dhcp { break; case 144: // cache_threshold: "cache-threshold" ":" "floating point" -#line 608 "dhcp4_parser.yy" +#line 609 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1211,7 +1211,7 @@ namespace isc { namespace dhcp { break; case 145: // cache_max_age: "cache-max-age" ":" "integer" -#line 614 "dhcp4_parser.yy" +#line 615 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1221,7 +1221,7 @@ namespace isc { namespace dhcp { break; case 146: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 620 "dhcp4_parser.yy" +#line 621 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1231,7 +1231,7 @@ namespace isc { namespace dhcp { break; case 147: // $@20: %empty -#line 626 "dhcp4_parser.yy" +#line 627 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1240,7 +1240,7 @@ namespace isc { namespace dhcp { break; case 148: // server_tag: "server-tag" $@20 ":" "constant string" -#line 629 "dhcp4_parser.yy" +#line 630 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1250,7 +1250,7 @@ namespace isc { namespace dhcp { break; case 149: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 635 "dhcp4_parser.yy" +#line 636 "dhcp4_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1260,7 +1260,7 @@ namespace isc { namespace dhcp { break; case 150: // $@21: %empty -#line 641 "dhcp4_parser.yy" +#line 642 "dhcp4_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1269,7 +1269,7 @@ namespace isc { namespace dhcp { break; case 151: // allocator: "allocator" $@21 ":" "constant string" -#line 644 "dhcp4_parser.yy" +#line 645 "dhcp4_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1279,7 +1279,7 @@ namespace isc { namespace dhcp { break; case 152: // echo_client_id: "echo-client-id" ":" "boolean" -#line 650 "dhcp4_parser.yy" +#line 651 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1289,7 +1289,7 @@ namespace isc { namespace dhcp { break; case 153: // match_client_id: "match-client-id" ":" "boolean" -#line 656 "dhcp4_parser.yy" +#line 657 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1299,7 +1299,7 @@ namespace isc { namespace dhcp { break; case 154: // authoritative: "authoritative" ":" "boolean" -#line 662 "dhcp4_parser.yy" +#line 663 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1309,7 +1309,7 @@ namespace isc { namespace dhcp { break; case 155: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 668 "dhcp4_parser.yy" +#line 669 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1319,7 +1319,7 @@ namespace isc { namespace dhcp { break; case 156: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 674 "dhcp4_parser.yy" +#line 675 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1329,7 +1329,7 @@ namespace isc { namespace dhcp { break; case 157: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 680 "dhcp4_parser.yy" +#line 681 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1339,7 +1339,7 @@ namespace isc { namespace dhcp { break; case 158: // $@22: %empty -#line 686 "dhcp4_parser.yy" +#line 687 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1348,7 +1348,7 @@ namespace isc { namespace dhcp { break; case 159: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 689 "dhcp4_parser.yy" +#line 690 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1357,7 +1357,7 @@ namespace isc { namespace dhcp { break; case 160: // ddns_replace_client_name_value: "when-present" -#line 695 "dhcp4_parser.yy" +#line 696 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1365,7 +1365,7 @@ namespace isc { namespace dhcp { break; case 161: // ddns_replace_client_name_value: "never" -#line 698 "dhcp4_parser.yy" +#line 699 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1373,7 +1373,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_replace_client_name_value: "always" -#line 701 "dhcp4_parser.yy" +#line 702 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1381,7 +1381,7 @@ namespace isc { namespace dhcp { break; case 163: // ddns_replace_client_name_value: "when-not-present" -#line 704 "dhcp4_parser.yy" +#line 705 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1389,7 +1389,7 @@ namespace isc { namespace dhcp { break; case 164: // ddns_replace_client_name_value: "boolean" -#line 707 "dhcp4_parser.yy" +#line 708 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1398,7 +1398,7 @@ namespace isc { namespace dhcp { break; case 165: // $@23: %empty -#line 713 "dhcp4_parser.yy" +#line 714 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1407,7 +1407,7 @@ namespace isc { namespace dhcp { break; case 166: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 716 "dhcp4_parser.yy" +#line 717 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1417,7 +1417,7 @@ namespace isc { namespace dhcp { break; case 167: // $@24: %empty -#line 722 "dhcp4_parser.yy" +#line 723 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1426,7 +1426,7 @@ namespace isc { namespace dhcp { break; case 168: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 725 "dhcp4_parser.yy" +#line 726 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1436,7 +1436,7 @@ namespace isc { namespace dhcp { break; case 169: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 731 "dhcp4_parser.yy" +#line 732 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1446,7 +1446,7 @@ namespace isc { namespace dhcp { break; case 170: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 737 "dhcp4_parser.yy" +#line 738 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1456,7 +1456,7 @@ namespace isc { namespace dhcp { break; case 171: // $@25: %empty -#line 743 "dhcp4_parser.yy" +#line 744 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1465,7 +1465,7 @@ namespace isc { namespace dhcp { break; case 172: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 746 "dhcp4_parser.yy" +#line 747 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -1475,7 +1475,7 @@ namespace isc { namespace dhcp { break; case 173: // $@26: %empty -#line 752 "dhcp4_parser.yy" +#line 753 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1484,7 +1484,7 @@ namespace isc { namespace dhcp { break; case 174: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 755 "dhcp4_parser.yy" +#line 756 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -1494,7 +1494,7 @@ namespace isc { namespace dhcp { break; case 175: // store_extended_info: "store-extended-info" ":" "boolean" -#line 761 "dhcp4_parser.yy" +#line 762 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1504,7 +1504,7 @@ namespace isc { namespace dhcp { break; case 176: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 767 "dhcp4_parser.yy" +#line 768 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1514,7 +1514,7 @@ namespace isc { namespace dhcp { break; case 177: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 773 "dhcp4_parser.yy" +#line 774 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1524,7 +1524,7 @@ namespace isc { namespace dhcp { break; case 178: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 779 "dhcp4_parser.yy" +#line 780 "dhcp4_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1534,7 +1534,7 @@ namespace isc { namespace dhcp { break; case 179: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 785 "dhcp4_parser.yy" +#line 786 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1544,7 +1544,7 @@ namespace isc { namespace dhcp { break; case 180: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 791 "dhcp4_parser.yy" +#line 792 "dhcp4_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1554,7 +1554,7 @@ namespace isc { namespace dhcp { break; case 181: // offer_lifetime: "offer-lifetime" ":" "integer" -#line 797 "dhcp4_parser.yy" +#line 798 "dhcp4_parser.yy" { ctx.unique("offer-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr offer_lifetime(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1564,7 +1564,7 @@ namespace isc { namespace dhcp { break; case 182: // $@27: %empty -#line 803 "dhcp4_parser.yy" +#line 804 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1576,7 +1576,7 @@ namespace isc { namespace dhcp { break; case 183: // interfaces_config: "interfaces-config" $@27 ":" "{" interfaces_config_params "}" -#line 809 "dhcp4_parser.yy" +#line 810 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1586,7 +1586,7 @@ namespace isc { namespace dhcp { break; case 186: // interfaces_config_params: interfaces_config_params "," -#line 817 "dhcp4_parser.yy" +#line 818 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1594,7 +1594,7 @@ namespace isc { namespace dhcp { break; case 197: // $@28: %empty -#line 834 "dhcp4_parser.yy" +#line 835 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1604,7 +1604,7 @@ namespace isc { namespace dhcp { break; case 198: // sub_interfaces4: "{" $@28 interfaces_config_params "}" -#line 838 "dhcp4_parser.yy" +#line 839 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed @@ -1613,7 +1613,7 @@ namespace isc { namespace dhcp { break; case 199: // $@29: %empty -#line 843 "dhcp4_parser.yy" +#line 844 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1625,7 +1625,7 @@ namespace isc { namespace dhcp { break; case 200: // interfaces_list: "interfaces" $@29 ":" list_strings -#line 849 "dhcp4_parser.yy" +#line 850 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1634,7 +1634,7 @@ namespace isc { namespace dhcp { break; case 201: // $@30: %empty -#line 854 "dhcp4_parser.yy" +#line 855 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); @@ -1643,7 +1643,7 @@ namespace isc { namespace dhcp { break; case 202: // dhcp_socket_type: "dhcp-socket-type" $@30 ":" socket_type -#line 857 "dhcp4_parser.yy" +#line 858 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1652,19 +1652,19 @@ namespace isc { namespace dhcp { break; case 203: // socket_type: "raw" -#line 862 "dhcp4_parser.yy" +#line 863 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1658 "dhcp4_parser.cc" break; case 204: // socket_type: "udp" -#line 863 "dhcp4_parser.yy" +#line 864 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1664 "dhcp4_parser.cc" break; case 205: // $@31: %empty -#line 866 "dhcp4_parser.yy" +#line 867 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); @@ -1673,7 +1673,7 @@ namespace isc { namespace dhcp { break; case 206: // outbound_interface: "outbound-interface" $@31 ":" outbound_interface_value -#line 869 "dhcp4_parser.yy" +#line 870 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1682,7 +1682,7 @@ namespace isc { namespace dhcp { break; case 207: // outbound_interface_value: "same-as-inbound" -#line 874 "dhcp4_parser.yy" +#line 875 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } @@ -1690,7 +1690,7 @@ namespace isc { namespace dhcp { break; case 208: // outbound_interface_value: "use-routing" -#line 876 "dhcp4_parser.yy" +#line 877 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } @@ -1698,7 +1698,7 @@ namespace isc { namespace dhcp { break; case 209: // re_detect: "re-detect" ":" "boolean" -#line 880 "dhcp4_parser.yy" +#line 881 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1708,7 +1708,7 @@ namespace isc { namespace dhcp { break; case 210: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 886 "dhcp4_parser.yy" +#line 887 "dhcp4_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1718,7 +1718,7 @@ namespace isc { namespace dhcp { break; case 211: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 892 "dhcp4_parser.yy" +#line 893 "dhcp4_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1728,7 +1728,7 @@ namespace isc { namespace dhcp { break; case 212: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 898 "dhcp4_parser.yy" +#line 899 "dhcp4_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1738,7 +1738,7 @@ namespace isc { namespace dhcp { break; case 213: // $@32: %empty -#line 904 "dhcp4_parser.yy" +#line 905 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1750,7 +1750,7 @@ namespace isc { namespace dhcp { break; case 214: // lease_database: "lease-database" $@32 ":" "{" database_map_params "}" -#line 910 "dhcp4_parser.yy" +#line 911 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1761,7 +1761,7 @@ namespace isc { namespace dhcp { break; case 215: // $@33: %empty -#line 917 "dhcp4_parser.yy" +#line 918 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1773,7 +1773,7 @@ namespace isc { namespace dhcp { break; case 216: // sanity_checks: "sanity-checks" $@33 ":" "{" sanity_checks_params "}" -#line 923 "dhcp4_parser.yy" +#line 924 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1782,7 +1782,7 @@ namespace isc { namespace dhcp { break; case 219: // sanity_checks_params: sanity_checks_params "," -#line 930 "dhcp4_parser.yy" +#line 931 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1790,7 +1790,7 @@ namespace isc { namespace dhcp { break; case 222: // $@34: %empty -#line 939 "dhcp4_parser.yy" +#line 940 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1799,7 +1799,7 @@ namespace isc { namespace dhcp { break; case 223: // lease_checks: "lease-checks" $@34 ":" "constant string" -#line 942 "dhcp4_parser.yy" +#line 943 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1819,7 +1819,7 @@ namespace isc { namespace dhcp { break; case 224: // $@35: %empty -#line 958 "dhcp4_parser.yy" +#line 959 "dhcp4_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1828,7 +1828,7 @@ namespace isc { namespace dhcp { break; case 225: // extended_info_checks: "extended-info-checks" $@35 ":" "constant string" -#line 961 "dhcp4_parser.yy" +#line 962 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1847,7 +1847,7 @@ namespace isc { namespace dhcp { break; case 226: // $@36: %empty -#line 976 "dhcp4_parser.yy" +#line 977 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1859,7 +1859,7 @@ namespace isc { namespace dhcp { break; case 227: // hosts_database: "hosts-database" $@36 ":" "{" database_map_params "}" -#line 982 "dhcp4_parser.yy" +#line 983 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1870,7 +1870,7 @@ namespace isc { namespace dhcp { break; case 228: // $@37: %empty -#line 989 "dhcp4_parser.yy" +#line 990 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1882,7 +1882,7 @@ namespace isc { namespace dhcp { break; case 229: // hosts_databases: "hosts-databases" $@37 ":" "[" database_list "]" -#line 995 "dhcp4_parser.yy" +#line 996 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1891,7 +1891,7 @@ namespace isc { namespace dhcp { break; case 234: // not_empty_database_list: not_empty_database_list "," -#line 1006 "dhcp4_parser.yy" +#line 1007 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1899,7 +1899,7 @@ namespace isc { namespace dhcp { break; case 235: // $@38: %empty -#line 1011 "dhcp4_parser.yy" +#line 1012 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1909,7 +1909,7 @@ namespace isc { namespace dhcp { break; case 236: // database: "{" $@38 database_map_params "}" -#line 1015 "dhcp4_parser.yy" +#line 1016 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -1919,7 +1919,7 @@ namespace isc { namespace dhcp { break; case 239: // database_map_params: database_map_params "," -#line 1023 "dhcp4_parser.yy" +#line 1024 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1927,7 +1927,7 @@ namespace isc { namespace dhcp { break; case 262: // $@39: %empty -#line 1052 "dhcp4_parser.yy" +#line 1053 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); @@ -1936,7 +1936,7 @@ namespace isc { namespace dhcp { break; case 263: // database_type: "type" $@39 ":" db_type -#line 1055 "dhcp4_parser.yy" +#line 1056 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1945,25 +1945,25 @@ namespace isc { namespace dhcp { break; case 264: // db_type: "memfile" -#line 1060 "dhcp4_parser.yy" +#line 1061 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1951 "dhcp4_parser.cc" break; case 265: // db_type: "mysql" -#line 1061 "dhcp4_parser.yy" +#line 1062 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1957 "dhcp4_parser.cc" break; case 266: // db_type: "postgresql" -#line 1062 "dhcp4_parser.yy" +#line 1063 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1963 "dhcp4_parser.cc" break; case 267: // $@40: %empty -#line 1065 "dhcp4_parser.yy" +#line 1066 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1972,7 +1972,7 @@ namespace isc { namespace dhcp { break; case 268: // user: "user" $@40 ":" "constant string" -#line 1068 "dhcp4_parser.yy" +#line 1069 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1982,7 +1982,7 @@ namespace isc { namespace dhcp { break; case 269: // $@41: %empty -#line 1074 "dhcp4_parser.yy" +#line 1075 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1991,7 +1991,7 @@ namespace isc { namespace dhcp { break; case 270: // password: "password" $@41 ":" "constant string" -#line 1077 "dhcp4_parser.yy" +#line 1078 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -2001,7 +2001,7 @@ namespace isc { namespace dhcp { break; case 271: // $@42: %empty -#line 1083 "dhcp4_parser.yy" +#line 1084 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2010,7 +2010,7 @@ namespace isc { namespace dhcp { break; case 272: // host: "host" $@42 ":" "constant string" -#line 1086 "dhcp4_parser.yy" +#line 1087 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -2020,7 +2020,7 @@ namespace isc { namespace dhcp { break; case 273: // port: "port" ":" "integer" -#line 1092 "dhcp4_parser.yy" +#line 1093 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2030,7 +2030,7 @@ namespace isc { namespace dhcp { break; case 274: // $@43: %empty -#line 1098 "dhcp4_parser.yy" +#line 1099 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2039,7 +2039,7 @@ namespace isc { namespace dhcp { break; case 275: // name: "name" $@43 ":" "constant string" -#line 1101 "dhcp4_parser.yy" +#line 1102 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -2049,7 +2049,7 @@ namespace isc { namespace dhcp { break; case 276: // persist: "persist" ":" "boolean" -#line 1107 "dhcp4_parser.yy" +#line 1108 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2059,7 +2059,7 @@ namespace isc { namespace dhcp { break; case 277: // lfc_interval: "lfc-interval" ":" "integer" -#line 1113 "dhcp4_parser.yy" +#line 1114 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2069,7 +2069,7 @@ namespace isc { namespace dhcp { break; case 278: // readonly: "readonly" ":" "boolean" -#line 1119 "dhcp4_parser.yy" +#line 1120 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2079,7 +2079,7 @@ namespace isc { namespace dhcp { break; case 279: // connect_timeout: "connect-timeout" ":" "integer" -#line 1125 "dhcp4_parser.yy" +#line 1126 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2089,7 +2089,7 @@ namespace isc { namespace dhcp { break; case 280: // read_timeout: "read-timeout" ":" "integer" -#line 1131 "dhcp4_parser.yy" +#line 1132 "dhcp4_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2099,7 +2099,7 @@ namespace isc { namespace dhcp { break; case 281: // write_timeout: "write-timeout" ":" "integer" -#line 1137 "dhcp4_parser.yy" +#line 1138 "dhcp4_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2109,7 +2109,7 @@ namespace isc { namespace dhcp { break; case 282: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1143 "dhcp4_parser.yy" +#line 1144 "dhcp4_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2119,7 +2119,7 @@ namespace isc { namespace dhcp { break; case 283: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1149 "dhcp4_parser.yy" +#line 1150 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2129,7 +2129,7 @@ namespace isc { namespace dhcp { break; case 284: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1155 "dhcp4_parser.yy" +#line 1156 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2139,7 +2139,7 @@ namespace isc { namespace dhcp { break; case 285: // $@44: %empty -#line 1161 "dhcp4_parser.yy" +#line 1162 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); @@ -2148,7 +2148,7 @@ namespace isc { namespace dhcp { break; case 286: // on_fail: "on-fail" $@44 ":" on_fail_mode -#line 1164 "dhcp4_parser.yy" +#line 1165 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2157,25 +2157,25 @@ namespace isc { namespace dhcp { break; case 287: // on_fail_mode: "stop-retry-exit" -#line 1169 "dhcp4_parser.yy" +#line 1170 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2163 "dhcp4_parser.cc" break; case 288: // on_fail_mode: "serve-retry-exit" -#line 1170 "dhcp4_parser.yy" +#line 1171 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2169 "dhcp4_parser.cc" break; case 289: // on_fail_mode: "serve-retry-continue" -#line 1171 "dhcp4_parser.yy" +#line 1172 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } #line 2175 "dhcp4_parser.cc" break; case 290: // max_row_errors: "max-row-errors" ":" "integer" -#line 1174 "dhcp4_parser.yy" +#line 1175 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2185,7 +2185,7 @@ namespace isc { namespace dhcp { break; case 291: // $@45: %empty -#line 1180 "dhcp4_parser.yy" +#line 1181 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2194,7 +2194,7 @@ namespace isc { namespace dhcp { break; case 292: // trust_anchor: "trust-anchor" $@45 ":" "constant string" -#line 1183 "dhcp4_parser.yy" +#line 1184 "dhcp4_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); @@ -2204,7 +2204,7 @@ namespace isc { namespace dhcp { break; case 293: // $@46: %empty -#line 1189 "dhcp4_parser.yy" +#line 1190 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2213,7 +2213,7 @@ namespace isc { namespace dhcp { break; case 294: // cert_file: "cert-file" $@46 ":" "constant string" -#line 1192 "dhcp4_parser.yy" +#line 1193 "dhcp4_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); @@ -2223,7 +2223,7 @@ namespace isc { namespace dhcp { break; case 295: // $@47: %empty -#line 1198 "dhcp4_parser.yy" +#line 1199 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2232,7 +2232,7 @@ namespace isc { namespace dhcp { break; case 296: // key_file: "key-file" $@47 ":" "constant string" -#line 1201 "dhcp4_parser.yy" +#line 1202 "dhcp4_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); @@ -2242,7 +2242,7 @@ namespace isc { namespace dhcp { break; case 297: // $@48: %empty -#line 1207 "dhcp4_parser.yy" +#line 1208 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2251,7 +2251,7 @@ namespace isc { namespace dhcp { break; case 298: // cipher_list: "cipher-list" $@48 ":" "constant string" -#line 1210 "dhcp4_parser.yy" +#line 1211 "dhcp4_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); @@ -2261,7 +2261,7 @@ namespace isc { namespace dhcp { break; case 299: // $@49: %empty -#line 1216 "dhcp4_parser.yy" +#line 1217 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2273,7 +2273,7 @@ namespace isc { namespace dhcp { break; case 300: // host_reservation_identifiers: "host-reservation-identifiers" $@49 ":" "[" host_reservation_identifiers_list "]" -#line 1222 "dhcp4_parser.yy" +#line 1223 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2282,7 +2282,7 @@ namespace isc { namespace dhcp { break; case 303: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1229 "dhcp4_parser.yy" +#line 1230 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2290,7 +2290,7 @@ namespace isc { namespace dhcp { break; case 309: // duid_id: "duid" -#line 1241 "dhcp4_parser.yy" +#line 1242 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@ -2299,7 +2299,7 @@ namespace isc { namespace dhcp { break; case 310: // hw_address_id: "hw-address" -#line 1246 "dhcp4_parser.yy" +#line 1247 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); @@ -2308,7 +2308,7 @@ namespace isc { namespace dhcp { break; case 311: // circuit_id: "circuit-id" -#line 1251 "dhcp4_parser.yy" +#line 1252 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); @@ -2317,7 +2317,7 @@ namespace isc { namespace dhcp { break; case 312: // client_id: "client-id" -#line 1256 "dhcp4_parser.yy" +#line 1257 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); @@ -2326,7 +2326,7 @@ namespace isc { namespace dhcp { break; case 313: // flex_id: "flex-id" -#line 1261 "dhcp4_parser.yy" +#line 1262 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); @@ -2335,7 +2335,7 @@ namespace isc { namespace dhcp { break; case 314: // $@50: %empty -#line 1268 "dhcp4_parser.yy" +#line 1269 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2347,7 +2347,7 @@ namespace isc { namespace dhcp { break; case 315: // dhcp_multi_threading: "multi-threading" $@50 ":" "{" multi_threading_params "}" -#line 1274 "dhcp4_parser.yy" +#line 1275 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -2358,7 +2358,7 @@ namespace isc { namespace dhcp { break; case 318: // multi_threading_params: multi_threading_params "," -#line 1283 "dhcp4_parser.yy" +#line 1284 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2366,7 +2366,7 @@ namespace isc { namespace dhcp { break; case 325: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1296 "dhcp4_parser.yy" +#line 1297 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2376,7 +2376,7 @@ namespace isc { namespace dhcp { break; case 326: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1302 "dhcp4_parser.yy" +#line 1303 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2386,7 +2386,7 @@ namespace isc { namespace dhcp { break; case 327: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1308 "dhcp4_parser.yy" +#line 1309 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2396,7 +2396,7 @@ namespace isc { namespace dhcp { break; case 328: // $@51: %empty -#line 1314 "dhcp4_parser.yy" +#line 1315 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2408,7 +2408,7 @@ namespace isc { namespace dhcp { break; case 329: // hooks_libraries: "hooks-libraries" $@51 ":" "[" hooks_libraries_list "]" -#line 1320 "dhcp4_parser.yy" +#line 1321 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2417,7 +2417,7 @@ namespace isc { namespace dhcp { break; case 334: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1331 "dhcp4_parser.yy" +#line 1332 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2425,7 +2425,7 @@ namespace isc { namespace dhcp { break; case 335: // $@52: %empty -#line 1336 "dhcp4_parser.yy" +#line 1337 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2435,7 +2435,7 @@ namespace isc { namespace dhcp { break; case 336: // hooks_library: "{" $@52 hooks_params "}" -#line 1340 "dhcp4_parser.yy" +#line 1341 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2445,7 +2445,7 @@ namespace isc { namespace dhcp { break; case 337: // $@53: %empty -#line 1346 "dhcp4_parser.yy" +#line 1347 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2455,7 +2455,7 @@ namespace isc { namespace dhcp { break; case 338: // sub_hooks_library: "{" $@53 hooks_params "}" -#line 1350 "dhcp4_parser.yy" +#line 1351 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2465,7 +2465,7 @@ namespace isc { namespace dhcp { break; case 341: // hooks_params: hooks_params "," -#line 1358 "dhcp4_parser.yy" +#line 1359 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2473,7 +2473,7 @@ namespace isc { namespace dhcp { break; case 345: // $@54: %empty -#line 1368 "dhcp4_parser.yy" +#line 1369 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2482,7 +2482,7 @@ namespace isc { namespace dhcp { break; case 346: // library: "library" $@54 ":" "constant string" -#line 1371 "dhcp4_parser.yy" +#line 1372 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); @@ -2492,7 +2492,7 @@ namespace isc { namespace dhcp { break; case 347: // $@55: %empty -#line 1377 "dhcp4_parser.yy" +#line 1378 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2501,7 +2501,7 @@ namespace isc { namespace dhcp { break; case 348: // parameters: "parameters" $@55 ":" map_value -#line 1380 "dhcp4_parser.yy" +#line 1381 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2510,7 +2510,7 @@ namespace isc { namespace dhcp { break; case 349: // $@56: %empty -#line 1386 "dhcp4_parser.yy" +#line 1387 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2522,7 +2522,7 @@ namespace isc { namespace dhcp { break; case 350: // expired_leases_processing: "expired-leases-processing" $@56 ":" "{" expired_leases_params "}" -#line 1392 "dhcp4_parser.yy" +#line 1393 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); @@ -2532,7 +2532,7 @@ namespace isc { namespace dhcp { break; case 353: // expired_leases_params: expired_leases_params "," -#line 1400 "dhcp4_parser.yy" +#line 1401 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2540,7 +2540,7 @@ namespace isc { namespace dhcp { break; case 360: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1413 "dhcp4_parser.yy" +#line 1414 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2550,7 +2550,7 @@ namespace isc { namespace dhcp { break; case 361: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1419 "dhcp4_parser.yy" +#line 1420 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2560,7 +2560,7 @@ namespace isc { namespace dhcp { break; case 362: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1425 "dhcp4_parser.yy" +#line 1426 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2570,7 +2570,7 @@ namespace isc { namespace dhcp { break; case 363: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1431 "dhcp4_parser.yy" +#line 1432 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2580,7 +2580,7 @@ namespace isc { namespace dhcp { break; case 364: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1437 "dhcp4_parser.yy" +#line 1438 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2590,7 +2590,7 @@ namespace isc { namespace dhcp { break; case 365: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1443 "dhcp4_parser.yy" +#line 1444 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2600,7 +2600,7 @@ namespace isc { namespace dhcp { break; case 366: // $@57: %empty -#line 1452 "dhcp4_parser.yy" +#line 1453 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2612,7 +2612,7 @@ namespace isc { namespace dhcp { break; case 367: // subnet4_list: "subnet4" $@57 ":" "[" subnet4_list_content "]" -#line 1458 "dhcp4_parser.yy" +#line 1459 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2621,7 +2621,7 @@ namespace isc { namespace dhcp { break; case 372: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1472 "dhcp4_parser.yy" +#line 1473 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2629,7 +2629,7 @@ namespace isc { namespace dhcp { break; case 373: // $@58: %empty -#line 1481 "dhcp4_parser.yy" +#line 1482 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2639,7 +2639,7 @@ namespace isc { namespace dhcp { break; case 374: // subnet4: "{" $@58 subnet4_params "}" -#line 1485 "dhcp4_parser.yy" +#line 1486 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2665,7 +2665,7 @@ namespace isc { namespace dhcp { break; case 375: // $@59: %empty -#line 1507 "dhcp4_parser.yy" +#line 1508 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2675,7 +2675,7 @@ namespace isc { namespace dhcp { break; case 376: // sub_subnet4: "{" $@59 subnet4_params "}" -#line 1511 "dhcp4_parser.yy" +#line 1512 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2685,7 +2685,7 @@ namespace isc { namespace dhcp { break; case 379: // subnet4_params: subnet4_params "," -#line 1520 "dhcp4_parser.yy" +#line 1521 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2693,7 +2693,7 @@ namespace isc { namespace dhcp { break; case 427: // $@60: %empty -#line 1575 "dhcp4_parser.yy" +#line 1576 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2702,7 +2702,7 @@ namespace isc { namespace dhcp { break; case 428: // subnet: "subnet" $@60 ":" "constant string" -#line 1578 "dhcp4_parser.yy" +#line 1579 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); @@ -2712,7 +2712,7 @@ namespace isc { namespace dhcp { break; case 429: // $@61: %empty -#line 1584 "dhcp4_parser.yy" +#line 1585 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2721,7 +2721,7 @@ namespace isc { namespace dhcp { break; case 430: // subnet_4o6_interface: "4o6-interface" $@61 ":" "constant string" -#line 1587 "dhcp4_parser.yy" +#line 1588 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); @@ -2731,7 +2731,7 @@ namespace isc { namespace dhcp { break; case 431: // $@62: %empty -#line 1593 "dhcp4_parser.yy" +#line 1594 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2740,7 +2740,7 @@ namespace isc { namespace dhcp { break; case 432: // subnet_4o6_interface_id: "4o6-interface-id" $@62 ":" "constant string" -#line 1596 "dhcp4_parser.yy" +#line 1597 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); @@ -2750,7 +2750,7 @@ namespace isc { namespace dhcp { break; case 433: // $@63: %empty -#line 1602 "dhcp4_parser.yy" +#line 1603 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2759,7 +2759,7 @@ namespace isc { namespace dhcp { break; case 434: // subnet_4o6_subnet: "4o6-subnet" $@63 ":" "constant string" -#line 1605 "dhcp4_parser.yy" +#line 1606 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); @@ -2769,7 +2769,7 @@ namespace isc { namespace dhcp { break; case 435: // $@64: %empty -#line 1611 "dhcp4_parser.yy" +#line 1612 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2778,7 +2778,7 @@ namespace isc { namespace dhcp { break; case 436: // interface: "interface" $@64 ":" "constant string" -#line 1614 "dhcp4_parser.yy" +#line 1615 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); @@ -2788,7 +2788,7 @@ namespace isc { namespace dhcp { break; case 437: // $@65: %empty -#line 1620 "dhcp4_parser.yy" +#line 1621 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2797,7 +2797,7 @@ namespace isc { namespace dhcp { break; case 438: // client_class: "client-class" $@65 ":" "constant string" -#line 1623 "dhcp4_parser.yy" +#line 1624 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); @@ -2807,7 +2807,7 @@ namespace isc { namespace dhcp { break; case 439: // $@66: %empty -#line 1629 "dhcp4_parser.yy" +#line 1630 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2819,7 +2819,7 @@ namespace isc { namespace dhcp { break; case 440: // require_client_classes: "require-client-classes" $@66 ":" list_strings -#line 1635 "dhcp4_parser.yy" +#line 1636 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2828,7 +2828,7 @@ namespace isc { namespace dhcp { break; case 441: // reservations_global: "reservations-global" ":" "boolean" -#line 1640 "dhcp4_parser.yy" +#line 1641 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2838,7 +2838,7 @@ namespace isc { namespace dhcp { break; case 442: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1646 "dhcp4_parser.yy" +#line 1647 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2848,7 +2848,7 @@ namespace isc { namespace dhcp { break; case 443: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1652 "dhcp4_parser.yy" +#line 1653 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2858,7 +2858,7 @@ namespace isc { namespace dhcp { break; case 444: // $@67: %empty -#line 1658 "dhcp4_parser.yy" +#line 1659 "dhcp4_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); @@ -2867,7 +2867,7 @@ namespace isc { namespace dhcp { break; case 445: // reservation_mode: "reservation-mode" $@67 ":" hr_mode -#line 1661 "dhcp4_parser.yy" +#line 1662 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2876,31 +2876,31 @@ namespace isc { namespace dhcp { break; case 446: // hr_mode: "disabled" -#line 1666 "dhcp4_parser.yy" +#line 1667 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } #line 2882 "dhcp4_parser.cc" break; case 447: // hr_mode: "out-of-pool" -#line 1667 "dhcp4_parser.yy" +#line 1668 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } #line 2888 "dhcp4_parser.cc" break; case 448: // hr_mode: "global" -#line 1668 "dhcp4_parser.yy" +#line 1669 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } #line 2894 "dhcp4_parser.cc" break; case 449: // hr_mode: "all" -#line 1669 "dhcp4_parser.yy" +#line 1670 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } #line 2900 "dhcp4_parser.cc" break; case 450: // id: "id" ":" "integer" -#line 1672 "dhcp4_parser.yy" +#line 1673 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2910,7 +2910,7 @@ namespace isc { namespace dhcp { break; case 451: // $@68: %empty -#line 1680 "dhcp4_parser.yy" +#line 1681 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2922,7 +2922,7 @@ namespace isc { namespace dhcp { break; case 452: // shared_networks: "shared-networks" $@68 ":" "[" shared_networks_content "]" -#line 1686 "dhcp4_parser.yy" +#line 1687 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2931,7 +2931,7 @@ namespace isc { namespace dhcp { break; case 457: // shared_networks_list: shared_networks_list "," -#line 1699 "dhcp4_parser.yy" +#line 1700 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2939,7 +2939,7 @@ namespace isc { namespace dhcp { break; case 458: // $@69: %empty -#line 1704 "dhcp4_parser.yy" +#line 1705 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2949,7 +2949,7 @@ namespace isc { namespace dhcp { break; case 459: // shared_network: "{" $@69 shared_network_params "}" -#line 1708 "dhcp4_parser.yy" +#line 1709 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -2957,7 +2957,7 @@ namespace isc { namespace dhcp { break; case 462: // shared_network_params: shared_network_params "," -#line 1714 "dhcp4_parser.yy" +#line 1715 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2965,7 +2965,7 @@ namespace isc { namespace dhcp { break; case 505: // $@70: %empty -#line 1767 "dhcp4_parser.yy" +#line 1768 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2977,7 +2977,7 @@ namespace isc { namespace dhcp { break; case 506: // option_def_list: "option-def" $@70 ":" "[" option_def_list_content "]" -#line 1773 "dhcp4_parser.yy" +#line 1774 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2986,7 +2986,7 @@ namespace isc { namespace dhcp { break; case 507: // $@71: %empty -#line 1781 "dhcp4_parser.yy" +#line 1782 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -2995,7 +2995,7 @@ namespace isc { namespace dhcp { break; case 508: // sub_option_def_list: "{" $@71 option_def_list "}" -#line 1784 "dhcp4_parser.yy" +#line 1785 "dhcp4_parser.yy" { // parsing completed } @@ -3003,7 +3003,7 @@ namespace isc { namespace dhcp { break; case 513: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1796 "dhcp4_parser.yy" +#line 1797 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3011,7 +3011,7 @@ namespace isc { namespace dhcp { break; case 514: // $@72: %empty -#line 1803 "dhcp4_parser.yy" +#line 1804 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3021,7 +3021,7 @@ namespace isc { namespace dhcp { break; case 515: // option_def_entry: "{" $@72 option_def_params "}" -#line 1807 "dhcp4_parser.yy" +#line 1808 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3033,7 +3033,7 @@ namespace isc { namespace dhcp { break; case 516: // $@73: %empty -#line 1818 "dhcp4_parser.yy" +#line 1819 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3043,7 +3043,7 @@ namespace isc { namespace dhcp { break; case 517: // sub_option_def: "{" $@73 option_def_params "}" -#line 1822 "dhcp4_parser.yy" +#line 1823 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3055,7 +3055,7 @@ namespace isc { namespace dhcp { break; case 522: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1838 "dhcp4_parser.yy" +#line 1839 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3063,7 +3063,7 @@ namespace isc { namespace dhcp { break; case 534: // code: "code" ":" "integer" -#line 1857 "dhcp4_parser.yy" +#line 1858 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3073,7 +3073,7 @@ namespace isc { namespace dhcp { break; case 536: // $@74: %empty -#line 1865 "dhcp4_parser.yy" +#line 1866 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3082,7 +3082,7 @@ namespace isc { namespace dhcp { break; case 537: // option_def_type: "type" $@74 ":" "constant string" -#line 1868 "dhcp4_parser.yy" +#line 1869 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); @@ -3092,7 +3092,7 @@ namespace isc { namespace dhcp { break; case 538: // $@75: %empty -#line 1874 "dhcp4_parser.yy" +#line 1875 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3101,7 +3101,7 @@ namespace isc { namespace dhcp { break; case 539: // option_def_record_types: "record-types" $@75 ":" "constant string" -#line 1877 "dhcp4_parser.yy" +#line 1878 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); @@ -3111,7 +3111,7 @@ namespace isc { namespace dhcp { break; case 540: // $@76: %empty -#line 1883 "dhcp4_parser.yy" +#line 1884 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3120,7 +3120,7 @@ namespace isc { namespace dhcp { break; case 541: // space: "space" $@76 ":" "constant string" -#line 1886 "dhcp4_parser.yy" +#line 1887 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); @@ -3130,7 +3130,7 @@ namespace isc { namespace dhcp { break; case 543: // $@77: %empty -#line 1894 "dhcp4_parser.yy" +#line 1895 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3139,7 +3139,7 @@ namespace isc { namespace dhcp { break; case 544: // option_def_encapsulate: "encapsulate" $@77 ":" "constant string" -#line 1897 "dhcp4_parser.yy" +#line 1898 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); @@ -3149,7 +3149,7 @@ namespace isc { namespace dhcp { break; case 545: // option_def_array: "array" ":" "boolean" -#line 1903 "dhcp4_parser.yy" +#line 1904 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3159,7 +3159,7 @@ namespace isc { namespace dhcp { break; case 546: // $@78: %empty -#line 1913 "dhcp4_parser.yy" +#line 1914 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3171,7 +3171,7 @@ namespace isc { namespace dhcp { break; case 547: // option_data_list: "option-data" $@78 ":" "[" option_data_list_content "]" -#line 1919 "dhcp4_parser.yy" +#line 1920 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3180,7 +3180,7 @@ namespace isc { namespace dhcp { break; case 552: // not_empty_option_data_list: not_empty_option_data_list "," -#line 1934 "dhcp4_parser.yy" +#line 1935 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3188,7 +3188,7 @@ namespace isc { namespace dhcp { break; case 553: // $@79: %empty -#line 1941 "dhcp4_parser.yy" +#line 1942 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3198,7 +3198,7 @@ namespace isc { namespace dhcp { break; case 554: // option_data_entry: "{" $@79 option_data_params "}" -#line 1945 "dhcp4_parser.yy" +#line 1946 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); @@ -3207,7 +3207,7 @@ namespace isc { namespace dhcp { break; case 555: // $@80: %empty -#line 1953 "dhcp4_parser.yy" +#line 1954 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3217,7 +3217,7 @@ namespace isc { namespace dhcp { break; case 556: // sub_option_data: "{" $@80 option_data_params "}" -#line 1957 "dhcp4_parser.yy" +#line 1958 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed @@ -3226,7 +3226,7 @@ namespace isc { namespace dhcp { break; case 561: // not_empty_option_data_params: not_empty_option_data_params "," -#line 1973 "dhcp4_parser.yy" +#line 1974 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3234,7 +3234,7 @@ namespace isc { namespace dhcp { break; case 573: // $@81: %empty -#line 1994 "dhcp4_parser.yy" +#line 1995 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3243,7 +3243,7 @@ namespace isc { namespace dhcp { break; case 574: // option_data_data: "data" $@81 ":" "constant string" -#line 1997 "dhcp4_parser.yy" +#line 1998 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); @@ -3253,7 +3253,7 @@ namespace isc { namespace dhcp { break; case 577: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2007 "dhcp4_parser.yy" +#line 2008 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3263,7 +3263,7 @@ namespace isc { namespace dhcp { break; case 578: // option_data_always_send: "always-send" ":" "boolean" -#line 2013 "dhcp4_parser.yy" +#line 2014 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3273,7 +3273,7 @@ namespace isc { namespace dhcp { break; case 579: // option_data_never_send: "never-send" ":" "boolean" -#line 2019 "dhcp4_parser.yy" +#line 2020 "dhcp4_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3283,7 +3283,7 @@ namespace isc { namespace dhcp { break; case 580: // $@82: %empty -#line 2028 "dhcp4_parser.yy" +#line 2029 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3295,7 +3295,7 @@ namespace isc { namespace dhcp { break; case 581: // pools_list: "pools" $@82 ":" "[" pools_list_content "]" -#line 2034 "dhcp4_parser.yy" +#line 2035 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3304,7 +3304,7 @@ namespace isc { namespace dhcp { break; case 586: // not_empty_pools_list: not_empty_pools_list "," -#line 2047 "dhcp4_parser.yy" +#line 2048 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3312,7 +3312,7 @@ namespace isc { namespace dhcp { break; case 587: // $@83: %empty -#line 2052 "dhcp4_parser.yy" +#line 2053 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3322,7 +3322,7 @@ namespace isc { namespace dhcp { break; case 588: // pool_list_entry: "{" $@83 pool_params "}" -#line 2056 "dhcp4_parser.yy" +#line 2057 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3332,7 +3332,7 @@ namespace isc { namespace dhcp { break; case 589: // $@84: %empty -#line 2062 "dhcp4_parser.yy" +#line 2063 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3342,7 +3342,7 @@ namespace isc { namespace dhcp { break; case 590: // sub_pool4: "{" $@84 pool_params "}" -#line 2066 "dhcp4_parser.yy" +#line 2067 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3352,7 +3352,7 @@ namespace isc { namespace dhcp { break; case 593: // pool_params: pool_params "," -#line 2074 "dhcp4_parser.yy" +#line 2075 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3360,7 +3360,7 @@ namespace isc { namespace dhcp { break; case 601: // $@85: %empty -#line 2088 "dhcp4_parser.yy" +#line 2089 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3369,7 +3369,7 @@ namespace isc { namespace dhcp { break; case 602: // pool_entry: "pool" $@85 ":" "constant string" -#line 2091 "dhcp4_parser.yy" +#line 2092 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); @@ -3379,7 +3379,7 @@ namespace isc { namespace dhcp { break; case 603: // $@86: %empty -#line 2097 "dhcp4_parser.yy" +#line 2098 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -3387,7 +3387,7 @@ namespace isc { namespace dhcp { break; case 604: // user_context: "user-context" $@86 ":" map_value -#line 2099 "dhcp4_parser.yy" +#line 2100 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3414,7 +3414,7 @@ namespace isc { namespace dhcp { break; case 605: // $@87: %empty -#line 2122 "dhcp4_parser.yy" +#line 2123 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -3422,7 +3422,7 @@ namespace isc { namespace dhcp { break; case 606: // comment: "comment" $@87 ":" "constant string" -#line 2124 "dhcp4_parser.yy" +#line 2125 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3451,7 +3451,7 @@ namespace isc { namespace dhcp { break; case 607: // $@88: %empty -#line 2152 "dhcp4_parser.yy" +#line 2153 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3463,7 +3463,7 @@ namespace isc { namespace dhcp { break; case 608: // reservations: "reservations" $@88 ":" "[" reservations_list "]" -#line 2158 "dhcp4_parser.yy" +#line 2159 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3472,7 +3472,7 @@ namespace isc { namespace dhcp { break; case 613: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2169 "dhcp4_parser.yy" +#line 2170 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3480,7 +3480,7 @@ namespace isc { namespace dhcp { break; case 614: // $@89: %empty -#line 2174 "dhcp4_parser.yy" +#line 2175 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3490,7 +3490,7 @@ namespace isc { namespace dhcp { break; case 615: // reservation: "{" $@89 reservation_params "}" -#line 2178 "dhcp4_parser.yy" +#line 2179 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); @@ -3499,7 +3499,7 @@ namespace isc { namespace dhcp { break; case 616: // $@90: %empty -#line 2183 "dhcp4_parser.yy" +#line 2184 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3509,7 +3509,7 @@ namespace isc { namespace dhcp { break; case 617: // sub_reservation: "{" $@90 reservation_params "}" -#line 2187 "dhcp4_parser.yy" +#line 2188 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed @@ -3518,7 +3518,7 @@ namespace isc { namespace dhcp { break; case 622: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2198 "dhcp4_parser.yy" +#line 2199 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3526,7 +3526,7 @@ namespace isc { namespace dhcp { break; case 638: // $@91: %empty -#line 2221 "dhcp4_parser.yy" +#line 2222 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3535,7 +3535,7 @@ namespace isc { namespace dhcp { break; case 639: // next_server: "next-server" $@91 ":" "constant string" -#line 2224 "dhcp4_parser.yy" +#line 2225 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); @@ -3545,7 +3545,7 @@ namespace isc { namespace dhcp { break; case 640: // $@92: %empty -#line 2230 "dhcp4_parser.yy" +#line 2231 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3554,7 +3554,7 @@ namespace isc { namespace dhcp { break; case 641: // server_hostname: "server-hostname" $@92 ":" "constant string" -#line 2233 "dhcp4_parser.yy" +#line 2234 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); @@ -3564,7 +3564,7 @@ namespace isc { namespace dhcp { break; case 642: // $@93: %empty -#line 2239 "dhcp4_parser.yy" +#line 2240 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3573,7 +3573,7 @@ namespace isc { namespace dhcp { break; case 643: // boot_file_name: "boot-file-name" $@93 ":" "constant string" -#line 2242 "dhcp4_parser.yy" +#line 2243 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); @@ -3583,7 +3583,7 @@ namespace isc { namespace dhcp { break; case 644: // $@94: %empty -#line 2248 "dhcp4_parser.yy" +#line 2249 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3592,7 +3592,7 @@ namespace isc { namespace dhcp { break; case 645: // ip_address: "ip-address" $@94 ":" "constant string" -#line 2251 "dhcp4_parser.yy" +#line 2252 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); @@ -3602,7 +3602,7 @@ namespace isc { namespace dhcp { break; case 646: // $@95: %empty -#line 2257 "dhcp4_parser.yy" +#line 2258 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3614,7 +3614,7 @@ namespace isc { namespace dhcp { break; case 647: // ip_addresses: "ip-addresses" $@95 ":" list_strings -#line 2263 "dhcp4_parser.yy" +#line 2264 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3623,7 +3623,7 @@ namespace isc { namespace dhcp { break; case 648: // $@96: %empty -#line 2268 "dhcp4_parser.yy" +#line 2269 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3632,7 +3632,7 @@ namespace isc { namespace dhcp { break; case 649: // duid: "duid" $@96 ":" "constant string" -#line 2271 "dhcp4_parser.yy" +#line 2272 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); @@ -3642,7 +3642,7 @@ namespace isc { namespace dhcp { break; case 650: // $@97: %empty -#line 2277 "dhcp4_parser.yy" +#line 2278 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3651,7 +3651,7 @@ namespace isc { namespace dhcp { break; case 651: // hw_address: "hw-address" $@97 ":" "constant string" -#line 2280 "dhcp4_parser.yy" +#line 2281 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); @@ -3661,7 +3661,7 @@ namespace isc { namespace dhcp { break; case 652: // $@98: %empty -#line 2286 "dhcp4_parser.yy" +#line 2287 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3670,7 +3670,7 @@ namespace isc { namespace dhcp { break; case 653: // client_id_value: "client-id" $@98 ":" "constant string" -#line 2289 "dhcp4_parser.yy" +#line 2290 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); @@ -3680,7 +3680,7 @@ namespace isc { namespace dhcp { break; case 654: // $@99: %empty -#line 2295 "dhcp4_parser.yy" +#line 2296 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3689,7 +3689,7 @@ namespace isc { namespace dhcp { break; case 655: // circuit_id_value: "circuit-id" $@99 ":" "constant string" -#line 2298 "dhcp4_parser.yy" +#line 2299 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); @@ -3699,7 +3699,7 @@ namespace isc { namespace dhcp { break; case 656: // $@100: %empty -#line 2304 "dhcp4_parser.yy" +#line 2305 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3708,7 +3708,7 @@ namespace isc { namespace dhcp { break; case 657: // flex_id_value: "flex-id" $@100 ":" "constant string" -#line 2307 "dhcp4_parser.yy" +#line 2308 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); @@ -3718,7 +3718,7 @@ namespace isc { namespace dhcp { break; case 658: // $@101: %empty -#line 2313 "dhcp4_parser.yy" +#line 2314 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3727,7 +3727,7 @@ namespace isc { namespace dhcp { break; case 659: // hostname: "hostname" $@101 ":" "constant string" -#line 2316 "dhcp4_parser.yy" +#line 2317 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); @@ -3737,7 +3737,7 @@ namespace isc { namespace dhcp { break; case 660: // $@102: %empty -#line 2322 "dhcp4_parser.yy" +#line 2323 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3749,7 +3749,7 @@ namespace isc { namespace dhcp { break; case 661: // reservation_client_classes: "client-classes" $@102 ":" list_strings -#line 2328 "dhcp4_parser.yy" +#line 2329 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3758,7 +3758,7 @@ namespace isc { namespace dhcp { break; case 662: // $@103: %empty -#line 2336 "dhcp4_parser.yy" +#line 2337 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3770,7 +3770,7 @@ namespace isc { namespace dhcp { break; case 663: // relay: "relay" $@103 ":" "{" relay_map "}" -#line 2342 "dhcp4_parser.yy" +#line 2343 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3779,7 +3779,7 @@ namespace isc { namespace dhcp { break; case 666: // $@104: %empty -#line 2354 "dhcp4_parser.yy" +#line 2355 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3791,7 +3791,7 @@ namespace isc { namespace dhcp { break; case 667: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]" -#line 2360 "dhcp4_parser.yy" +#line 2361 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3800,7 +3800,7 @@ namespace isc { namespace dhcp { break; case 670: // client_classes_list: client_classes_list "," -#line 2367 "dhcp4_parser.yy" +#line 2368 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3808,7 +3808,7 @@ namespace isc { namespace dhcp { break; case 671: // $@105: %empty -#line 2372 "dhcp4_parser.yy" +#line 2373 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3818,7 +3818,7 @@ namespace isc { namespace dhcp { break; case 672: // client_class_entry: "{" $@105 client_class_params "}" -#line 2376 "dhcp4_parser.yy" +#line 2377 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3828,7 +3828,7 @@ namespace isc { namespace dhcp { break; case 677: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2388 "dhcp4_parser.yy" +#line 2389 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3836,7 +3836,7 @@ namespace isc { namespace dhcp { break; case 695: // $@106: %empty -#line 2413 "dhcp4_parser.yy" +#line 2414 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3845,7 +3845,7 @@ namespace isc { namespace dhcp { break; case 696: // client_class_test: "test" $@106 ":" "constant string" -#line 2416 "dhcp4_parser.yy" +#line 2417 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); @@ -3855,7 +3855,7 @@ namespace isc { namespace dhcp { break; case 697: // $@107: %empty -#line 2422 "dhcp4_parser.yy" +#line 2423 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3864,7 +3864,7 @@ namespace isc { namespace dhcp { break; case 698: // client_class_template_test: "template-test" $@107 ":" "constant string" -#line 2425 "dhcp4_parser.yy" +#line 2426 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); @@ -3874,7 +3874,7 @@ namespace isc { namespace dhcp { break; case 699: // only_if_required: "only-if-required" ":" "boolean" -#line 2431 "dhcp4_parser.yy" +#line 2432 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3884,7 +3884,7 @@ namespace isc { namespace dhcp { break; case 700: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2439 "dhcp4_parser.yy" +#line 2440 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3894,7 +3894,7 @@ namespace isc { namespace dhcp { break; case 701: // $@108: %empty -#line 2447 "dhcp4_parser.yy" +#line 2448 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3906,7 +3906,7 @@ namespace isc { namespace dhcp { break; case 702: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2453 "dhcp4_parser.yy" +#line 2454 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3915,7 +3915,7 @@ namespace isc { namespace dhcp { break; case 705: // control_socket_params: control_socket_params "," -#line 2460 "dhcp4_parser.yy" +#line 2461 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3923,7 +3923,7 @@ namespace isc { namespace dhcp { break; case 711: // $@109: %empty -#line 2472 "dhcp4_parser.yy" +#line 2473 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3932,7 +3932,7 @@ namespace isc { namespace dhcp { break; case 712: // control_socket_type: "socket-type" $@109 ":" "constant string" -#line 2475 "dhcp4_parser.yy" +#line 2476 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); @@ -3942,7 +3942,7 @@ namespace isc { namespace dhcp { break; case 713: // $@110: %empty -#line 2481 "dhcp4_parser.yy" +#line 2482 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3951,7 +3951,7 @@ namespace isc { namespace dhcp { break; case 714: // control_socket_name: "socket-name" $@110 ":" "constant string" -#line 2484 "dhcp4_parser.yy" +#line 2485 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); @@ -3961,7 +3961,7 @@ namespace isc { namespace dhcp { break; case 715: // $@111: %empty -#line 2493 "dhcp4_parser.yy" +#line 2494 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3973,7 +3973,7 @@ namespace isc { namespace dhcp { break; case 716: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" -#line 2499 "dhcp4_parser.yy" +#line 2500 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -3984,7 +3984,7 @@ namespace isc { namespace dhcp { break; case 719: // queue_control_params: queue_control_params "," -#line 2508 "dhcp4_parser.yy" +#line 2509 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3992,7 +3992,7 @@ namespace isc { namespace dhcp { break; case 726: // enable_queue: "enable-queue" ":" "boolean" -#line 2521 "dhcp4_parser.yy" +#line 2522 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4002,7 +4002,7 @@ namespace isc { namespace dhcp { break; case 727: // $@112: %empty -#line 2527 "dhcp4_parser.yy" +#line 2528 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4011,7 +4011,7 @@ namespace isc { namespace dhcp { break; case 728: // queue_type: "queue-type" $@112 ":" "constant string" -#line 2530 "dhcp4_parser.yy" +#line 2531 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); @@ -4021,7 +4021,7 @@ namespace isc { namespace dhcp { break; case 729: // capacity: "capacity" ":" "integer" -#line 2536 "dhcp4_parser.yy" +#line 2537 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4031,7 +4031,7 @@ namespace isc { namespace dhcp { break; case 730: // $@113: %empty -#line 2542 "dhcp4_parser.yy" +#line 2543 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4040,7 +4040,7 @@ namespace isc { namespace dhcp { break; case 731: // arbitrary_map_entry: "constant string" $@113 ":" value -#line 2545 "dhcp4_parser.yy" +#line 2546 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4049,7 +4049,7 @@ namespace isc { namespace dhcp { break; case 732: // $@114: %empty -#line 2552 "dhcp4_parser.yy" +#line 2553 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4061,7 +4061,7 @@ namespace isc { namespace dhcp { break; case 733: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" -#line 2558 "dhcp4_parser.yy" +#line 2559 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -4072,7 +4072,7 @@ namespace isc { namespace dhcp { break; case 734: // $@115: %empty -#line 2565 "dhcp4_parser.yy" +#line 2566 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4082,7 +4082,7 @@ namespace isc { namespace dhcp { break; case 735: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" -#line 2569 "dhcp4_parser.yy" +#line 2570 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -4092,7 +4092,7 @@ namespace isc { namespace dhcp { break; case 738: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2577 "dhcp4_parser.yy" +#line 2578 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4100,7 +4100,7 @@ namespace isc { namespace dhcp { break; case 757: // enable_updates: "enable-updates" ":" "boolean" -#line 2602 "dhcp4_parser.yy" +#line 2603 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4110,7 +4110,7 @@ namespace isc { namespace dhcp { break; case 758: // $@116: %empty -#line 2608 "dhcp4_parser.yy" +#line 2609 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4119,7 +4119,7 @@ namespace isc { namespace dhcp { break; case 759: // server_ip: "server-ip" $@116 ":" "constant string" -#line 2611 "dhcp4_parser.yy" +#line 2612 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); @@ -4129,7 +4129,7 @@ namespace isc { namespace dhcp { break; case 760: // server_port: "server-port" ":" "integer" -#line 2617 "dhcp4_parser.yy" +#line 2618 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4139,7 +4139,7 @@ namespace isc { namespace dhcp { break; case 761: // $@117: %empty -#line 2623 "dhcp4_parser.yy" +#line 2624 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4148,7 +4148,7 @@ namespace isc { namespace dhcp { break; case 762: // sender_ip: "sender-ip" $@117 ":" "constant string" -#line 2626 "dhcp4_parser.yy" +#line 2627 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); @@ -4158,7 +4158,7 @@ namespace isc { namespace dhcp { break; case 763: // sender_port: "sender-port" ":" "integer" -#line 2632 "dhcp4_parser.yy" +#line 2633 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4168,7 +4168,7 @@ namespace isc { namespace dhcp { break; case 764: // max_queue_size: "max-queue-size" ":" "integer" -#line 2638 "dhcp4_parser.yy" +#line 2639 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4178,7 +4178,7 @@ namespace isc { namespace dhcp { break; case 765: // $@118: %empty -#line 2644 "dhcp4_parser.yy" +#line 2645 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); @@ -4187,7 +4187,7 @@ namespace isc { namespace dhcp { break; case 766: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value -#line 2647 "dhcp4_parser.yy" +#line 2648 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4196,19 +4196,19 @@ namespace isc { namespace dhcp { break; case 767: // ncr_protocol_value: "udp" -#line 2653 "dhcp4_parser.yy" +#line 2654 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 4202 "dhcp4_parser.cc" break; case 768: // ncr_protocol_value: "tcp" -#line 2654 "dhcp4_parser.yy" +#line 2655 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 4208 "dhcp4_parser.cc" break; case 769: // $@119: %empty -#line 2657 "dhcp4_parser.yy" +#line 2658 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); @@ -4217,7 +4217,7 @@ namespace isc { namespace dhcp { break; case 770: // ncr_format: "ncr-format" $@119 ":" "JSON" -#line 2660 "dhcp4_parser.yy" +#line 2661 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); @@ -4227,7 +4227,7 @@ namespace isc { namespace dhcp { break; case 771: // $@120: %empty -#line 2667 "dhcp4_parser.yy" +#line 2668 "dhcp4_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4236,7 +4236,7 @@ namespace isc { namespace dhcp { break; case 772: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string" -#line 2670 "dhcp4_parser.yy" +#line 2671 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); @@ -4246,7 +4246,7 @@ namespace isc { namespace dhcp { break; case 773: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2677 "dhcp4_parser.yy" +#line 2678 "dhcp4_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4256,7 +4256,7 @@ namespace isc { namespace dhcp { break; case 774: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2684 "dhcp4_parser.yy" +#line 2685 "dhcp4_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4266,7 +4266,7 @@ namespace isc { namespace dhcp { break; case 775: // $@121: %empty -#line 2691 "dhcp4_parser.yy" +#line 2692 "dhcp4_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -4275,7 +4275,7 @@ namespace isc { namespace dhcp { break; case 776: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value -#line 2694 "dhcp4_parser.yy" +#line 2695 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4284,7 +4284,7 @@ namespace isc { namespace dhcp { break; case 777: // $@122: %empty -#line 2700 "dhcp4_parser.yy" +#line 2701 "dhcp4_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4293,7 +4293,7 @@ namespace isc { namespace dhcp { break; case 778: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" -#line 2703 "dhcp4_parser.yy" +#line 2704 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); @@ -4303,7 +4303,7 @@ namespace isc { namespace dhcp { break; case 779: // $@123: %empty -#line 2710 "dhcp4_parser.yy" +#line 2711 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4312,7 +4312,7 @@ namespace isc { namespace dhcp { break; case 780: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" -#line 2713 "dhcp4_parser.yy" +#line 2714 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -4322,7 +4322,7 @@ namespace isc { namespace dhcp { break; case 781: // $@124: %empty -#line 2720 "dhcp4_parser.yy" +#line 2721 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4331,7 +4331,7 @@ namespace isc { namespace dhcp { break; case 782: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" -#line 2723 "dhcp4_parser.yy" +#line 2724 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -4341,7 +4341,7 @@ namespace isc { namespace dhcp { break; case 783: // $@125: %empty -#line 2732 "dhcp4_parser.yy" +#line 2733 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4353,7 +4353,7 @@ namespace isc { namespace dhcp { break; case 784: // config_control: "config-control" $@125 ":" "{" config_control_params "}" -#line 2738 "dhcp4_parser.yy" +#line 2739 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); @@ -4363,7 +4363,7 @@ namespace isc { namespace dhcp { break; case 785: // $@126: %empty -#line 2744 "dhcp4_parser.yy" +#line 2745 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4373,7 +4373,7 @@ namespace isc { namespace dhcp { break; case 786: // sub_config_control: "{" $@126 config_control_params "}" -#line 2748 "dhcp4_parser.yy" +#line 2749 "dhcp4_parser.yy" { // No config_control params are required // parsing completed @@ -4382,7 +4382,7 @@ namespace isc { namespace dhcp { break; case 789: // config_control_params: config_control_params "," -#line 2756 "dhcp4_parser.yy" +#line 2757 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4390,7 +4390,7 @@ namespace isc { namespace dhcp { break; case 792: // $@127: %empty -#line 2766 "dhcp4_parser.yy" +#line 2767 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4402,7 +4402,7 @@ namespace isc { namespace dhcp { break; case 793: // config_databases: "config-databases" $@127 ":" "[" database_list "]" -#line 2772 "dhcp4_parser.yy" +#line 2773 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4411,7 +4411,7 @@ namespace isc { namespace dhcp { break; case 794: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2777 "dhcp4_parser.yy" +#line 2778 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4421,7 +4421,7 @@ namespace isc { namespace dhcp { break; case 795: // $@128: %empty -#line 2785 "dhcp4_parser.yy" +#line 2786 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4433,7 +4433,7 @@ namespace isc { namespace dhcp { break; case 796: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" -#line 2791 "dhcp4_parser.yy" +#line 2792 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4442,7 +4442,7 @@ namespace isc { namespace dhcp { break; case 799: // loggers_entries: loggers_entries "," -#line 2800 "dhcp4_parser.yy" +#line 2801 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4450,7 +4450,7 @@ namespace isc { namespace dhcp { break; case 800: // $@129: %empty -#line 2806 "dhcp4_parser.yy" +#line 2807 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); @@ -4460,7 +4460,7 @@ namespace isc { namespace dhcp { break; case 801: // logger_entry: "{" $@129 logger_params "}" -#line 2810 "dhcp4_parser.yy" +#line 2811 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -4468,7 +4468,7 @@ namespace isc { namespace dhcp { break; case 804: // logger_params: logger_params "," -#line 2816 "dhcp4_parser.yy" +#line 2817 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4476,7 +4476,7 @@ namespace isc { namespace dhcp { break; case 812: // debuglevel: "debuglevel" ":" "integer" -#line 2830 "dhcp4_parser.yy" +#line 2831 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4486,7 +4486,7 @@ namespace isc { namespace dhcp { break; case 813: // $@130: %empty -#line 2836 "dhcp4_parser.yy" +#line 2837 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4495,7 +4495,7 @@ namespace isc { namespace dhcp { break; case 814: // severity: "severity" $@130 ":" "constant string" -#line 2839 "dhcp4_parser.yy" +#line 2840 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); @@ -4505,7 +4505,7 @@ namespace isc { namespace dhcp { break; case 815: // $@131: %empty -#line 2845 "dhcp4_parser.yy" +#line 2846 "dhcp4_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4517,7 +4517,7 @@ namespace isc { namespace dhcp { break; case 816: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" -#line 2851 "dhcp4_parser.yy" +#line 2852 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4526,7 +4526,7 @@ namespace isc { namespace dhcp { break; case 819: // output_options_list_content: output_options_list_content "," -#line 2858 "dhcp4_parser.yy" +#line 2859 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4534,7 +4534,7 @@ namespace isc { namespace dhcp { break; case 820: // $@132: %empty -#line 2863 "dhcp4_parser.yy" +#line 2864 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -4544,7 +4544,7 @@ namespace isc { namespace dhcp { break; case 821: // output_entry: "{" $@132 output_params_list "}" -#line 2867 "dhcp4_parser.yy" +#line 2868 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -4552,7 +4552,7 @@ namespace isc { namespace dhcp { break; case 824: // output_params_list: output_params_list "," -#line 2873 "dhcp4_parser.yy" +#line 2874 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4560,7 +4560,7 @@ namespace isc { namespace dhcp { break; case 830: // $@133: %empty -#line 2885 "dhcp4_parser.yy" +#line 2886 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4569,7 +4569,7 @@ namespace isc { namespace dhcp { break; case 831: // output: "output" $@133 ":" "constant string" -#line 2888 "dhcp4_parser.yy" +#line 2889 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); @@ -4579,7 +4579,7 @@ namespace isc { namespace dhcp { break; case 832: // flush: "flush" ":" "boolean" -#line 2894 "dhcp4_parser.yy" +#line 2895 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4589,7 +4589,7 @@ namespace isc { namespace dhcp { break; case 833: // maxsize: "maxsize" ":" "integer" -#line 2900 "dhcp4_parser.yy" +#line 2901 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4599,7 +4599,7 @@ namespace isc { namespace dhcp { break; case 834: // maxver: "maxver" ":" "integer" -#line 2906 "dhcp4_parser.yy" +#line 2907 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4609,7 +4609,7 @@ namespace isc { namespace dhcp { break; case 835: // $@134: %empty -#line 2912 "dhcp4_parser.yy" +#line 2913 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4618,7 +4618,7 @@ namespace isc { namespace dhcp { break; case 836: // pattern: "pattern" $@134 ":" "constant string" -#line 2915 "dhcp4_parser.yy" +#line 2916 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); @@ -4628,7 +4628,7 @@ namespace isc { namespace dhcp { break; case 837: // $@135: %empty -#line 2921 "dhcp4_parser.yy" +#line 2922 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4640,7 +4640,7 @@ namespace isc { namespace dhcp { break; case 838: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}" -#line 2927 "dhcp4_parser.yy" +#line 2928 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4649,15 +4649,15 @@ namespace isc { namespace dhcp { break; case 841: // compatibility_params: compatibility_params "," -#line 2934 "dhcp4_parser.yy" +#line 2935 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 4657 "dhcp4_parser.cc" break; - case 846: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 2945 "dhcp4_parser.yy" + case 847: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 2947 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4666,28 +4666,38 @@ namespace isc { namespace dhcp { #line 4667 "dhcp4_parser.cc" break; - case 847: // ignore-rai-link-selection: "ignore-rai-link-selection" ":" "boolean" -#line 2951 "dhcp4_parser.yy" + case 848: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" +#line 2953 "dhcp4_parser.yy" + { + ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location)); + ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ignore-dhcp-server-identifier", b); +} +#line 4677 "dhcp4_parser.cc" + break; + + case 849: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" +#line 2959 "dhcp4_parser.yy" { ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-rai-link-selection", b); } -#line 4677 "dhcp4_parser.cc" +#line 4687 "dhcp4_parser.cc" break; - case 848: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" -#line 2957 "dhcp4_parser.yy" + case 850: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" +#line 2965 "dhcp4_parser.yy" { ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("exclude-first-last-24", b); } -#line 4687 "dhcp4_parser.cc" +#line 4697 "dhcp4_parser.cc" break; -#line 4691 "dhcp4_parser.cc" +#line 4701 "dhcp4_parser.cc" default: break; @@ -4925,16 +4935,16 @@ namespace isc { namespace dhcp { // Actual number of expected tokens int yycount = 0; - int yyn = yypact_[+yyparser_.yystack_[0].state]; + const int yyn = yypact_[+yyparser_.yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; + const int yyxbegin = yyn < 0 ? -yyn : 0; // Stay within bounds of both yycheck and yytname. - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + const int yychecklim = yylast_ - yyn + 1; + const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror && !yy_table_value_is_error_ (yytable_[yyx + yyn])) @@ -4955,6 +4965,9 @@ namespace isc { namespace dhcp { + + + int Dhcp4Parser::yy_syntax_error_arguments_ (const context& yyctx, symbol_kind_type yyarg[], int yyargn) const @@ -5036,144 +5049,144 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -997; + const short Dhcp4Parser::yypact_ninf_ = -1001; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 427, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, 34, 42, 43, 68, 79, 81, - 85, 87, 101, 119, 122, 156, 175, 176, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, 42, -164, 112, 123, 149, 258, - -25, 288, -19, 173, 201, -108, 626, 88, -997, 134, - 163, 54, 178, 211, -997, 28, -997, -997, -997, -997, - 213, 221, 234, -997, -997, -997, 243, -997, -997, -997, - 244, 246, 247, 257, 264, 274, 281, 298, 299, 315, - 329, -997, 330, 332, 342, 346, 348, -997, -997, -997, - 349, 356, 358, -997, -997, -997, 360, -997, -997, -997, - -997, -997, 370, 376, 379, -997, -997, -997, -997, -997, - 380, -997, -997, -997, -997, -997, -997, 389, 391, 426, - -997, -997, 431, -997, 61, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, 440, 441, 460, 470, -997, 71, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 471, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 104, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, 111, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, 228, 403, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, 252, -997, -997, 477, -997, - -997, -997, 478, -997, -997, 365, 405, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - 480, 482, 485, -997, -997, -997, -997, 384, 435, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, 115, -997, -997, -997, 486, -997, -997, 489, - -997, 492, 494, -997, -997, 495, 498, -997, -997, -997, - -997, -997, -997, -997, 133, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, 500, 159, -997, -997, -997, -997, 42, 42, - -997, -150, 504, -997, -997, 505, 507, 509, -138, 238, - 248, 511, 513, 515, 307, 524, 526, 527, 321, 324, - 325, 326, 328, 335, 322, 338, 339, 343, 344, 556, - 352, 354, 353, 357, 361, 557, 560, 567, 364, 367, - 368, 571, 582, 583, 377, 585, 589, 590, 593, 597, - 387, 424, 425, 614, 615, 616, 637, 638, 432, 639, - 640, 642, 644, 647, 648, 438, 439, 442, 652, 654, - -997, 123, -997, 655, 657, 658, 450, 453, 437, 456, - 149, -997, 659, 660, 662, 666, 667, 668, 461, 669, - 671, 678, 258, -997, 679, -25, -997, 684, 685, 686, - 688, 689, 690, 691, 692, -997, 288, -997, 693, 694, - 487, 695, 697, 702, 493, -997, 173, 703, 522, 523, - 528, -997, 201, 705, 706, -70, -997, 529, 737, 738, - 532, 742, 534, 535, 745, 746, 537, 538, 750, 753, - 755, 757, 626, -997, 758, 550, 88, -997, -997, -997, - 760, 761, 762, 764, 765, -997, -997, -997, 563, 564, - 565, -997, 771, 772, 775, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 569, -997, -997, -997, - -997, -997, -125, 572, 573, -997, -997, -997, 778, 781, - 782, -997, 591, 796, 795, 592, 430, -997, -997, -997, - 800, 801, 804, 805, 806, -997, 807, 808, 809, 810, - 599, 600, -997, -997, -997, 813, 812, -997, 815, 64, - 95, -997, -997, -997, -997, -997, 609, 610, 611, 819, - 613, 617, -997, 815, 618, 824, -997, 620, -997, 815, - 621, 622, 623, 624, 625, 627, 628, -997, 629, 630, - -997, 631, 632, 633, -997, -997, 634, -997, -997, -997, - -997, 635, 795, -997, -997, 636, 641, -997, 643, -997, - -997, 38, 650, -997, -997, -125, 645, 649, 651, -997, - 844, -997, -997, 42, 123, 88, 149, 142, -997, -997, - -997, 561, 561, 843, -997, -997, -997, -997, -997, -997, - -997, -997, -997, 845, 847, 849, -997, 852, -997, -997, - -997, -997, -997, -997, -997, -997, 91, 853, 855, 857, - 256, 67, 75, 154, 626, -997, -997, 858, -101, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - 859, -997, -997, -997, -997, 13, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, 843, -997, 231, 232, 263, -997, - -997, 278, -997, -997, -997, -997, -997, -997, -997, 863, - 864, 865, 866, 867, 868, 869, 870, 871, 872, -997, - 873, -997, -997, -997, -997, -997, 351, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, 388, - -997, 874, 848, -997, -997, 875, 876, -997, -997, 877, - 879, -997, -997, 878, 882, -997, -997, 880, 884, -997, - -997, -997, -997, -997, -997, 39, -997, -997, -997, -997, - -997, -997, -997, 57, -997, -997, 883, 885, -997, -997, - 886, 887, -997, 889, 890, 891, 892, 893, 894, 402, - -997, -997, -997, -997, -997, -997, -997, 895, 896, 897, - -997, 404, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, 406, -997, -997, -997, 898, -997, 899, - -997, -997, -997, 421, -997, -997, -997, -997, -997, 433, - -997, 127, -997, 900, 901, 902, -997, 434, -997, -997, - -997, -997, 696, -997, 903, 888, -997, -997, -997, -997, - 904, 905, -997, -997, -997, 906, 909, 142, -997, 910, - 911, 912, 913, 665, 704, 707, 708, 709, 711, 712, - 713, 714, 715, 914, 716, 917, 926, 927, 928, 561, - -997, -997, 561, -997, 843, 258, -997, 845, 173, -997, - 847, 201, -997, 849, 646, -997, 852, 91, -997, 323, - 853, -997, 288, -997, 855, -108, -997, 857, 720, 721, - 722, 723, 724, 726, 256, -997, 725, 729, 730, 67, - -997, 941, 942, 75, -997, 739, 957, 751, 963, 154, - -997, -997, 337, 858, -997, 767, 768, 773, -101, -997, - -997, 962, 974, -25, -997, 859, 975, -997, -997, 774, - 787, -997, 275, 793, 816, 823, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 369, -997, 827, 838, - 881, 907, -997, 448, -997, 449, -997, 979, -997, 1012, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 451, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, 1020, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, 1023, 1082, -997, -997, -997, -997, -997, - -997, 1078, -997, 459, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 908, 915, -997, -997, - 916, -997, 42, -997, -997, 1085, -997, -997, -997, -997, - -997, 463, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, 918, 469, -997, 815, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, 646, -997, 1090, - 1091, 919, -997, 323, -997, -997, -997, -997, -997, -997, - 1092, 920, 1093, 337, -997, -997, -997, -997, -997, 923, - 924, -997, -997, 1094, -997, 925, -997, -997, -997, 1095, - -997, -997, 141, -997, -13, 1095, -997, -997, 1096, 1097, - 1099, -997, 475, -997, -997, -997, -997, -997, -997, -997, - 1100, 929, 930, 932, 1101, -13, -997, 934, -997, -997, - -997, 935, -997, -997, -997 + 400, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 34, 31, 61, 66, 94, 100, + 111, 118, 122, 130, 142, 144, 165, 172, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 31, -151, 137, 197, 87, 642, + 74, 43, -21, 265, 233, -94, 254, 212, -1001, 175, + 80, 181, 187, 213, -1001, 78, -1001, -1001, -1001, -1001, + 238, 294, 308, -1001, -1001, -1001, 311, -1001, -1001, -1001, + 319, 320, 321, 330, 331, 333, 334, 337, 365, 367, + 368, -1001, 369, 387, 389, 404, 405, -1001, -1001, -1001, + 425, 426, 427, -1001, -1001, -1001, 437, -1001, -1001, -1001, + -1001, -1001, 447, 448, 452, -1001, -1001, -1001, -1001, -1001, + 453, -1001, -1001, -1001, -1001, -1001, -1001, 455, 458, 459, + -1001, -1001, 460, -1001, 114, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 461, 462, 466, 470, -1001, 132, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 471, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 140, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 147, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, 287, 353, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, 432, -1001, -1001, 473, -1001, + -1001, -1001, 476, -1001, -1001, 442, 478, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + 479, 480, 482, -1001, -1001, -1001, -1001, 474, 487, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, 202, -1001, -1001, -1001, 489, -1001, -1001, 494, + -1001, 498, 500, -1001, -1001, 502, 504, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 214, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, 505, 235, -1001, -1001, -1001, -1001, 31, 31, + -1001, -148, 507, -1001, -1001, 509, 510, 512, 301, 303, + 304, 514, 517, 520, 313, 524, 525, 526, 317, 318, + 323, 326, 327, 328, 332, 335, 338, 329, 340, 529, + 343, 346, 336, 339, 347, 530, 542, 552, 354, 355, + 356, 555, 563, 564, 361, 574, 579, 581, 582, 584, + 373, 374, 377, 592, 609, 610, 611, 612, 403, 614, + 615, 616, 617, 618, 619, 408, 409, 410, 623, 624, + -1001, 197, -1001, 625, 626, 627, 416, 417, 420, 421, + 87, -1001, 632, 633, 634, 635, 636, 637, 428, 639, + 640, 641, 642, -1001, 644, 74, -1001, 646, 647, 648, + 649, 650, 651, 652, 653, -1001, 43, -1001, 654, 655, + 449, 656, 658, 660, 450, -1001, 265, 661, 454, 463, + 464, -1001, 233, 664, 665, -92, -1001, 465, 667, 674, + 468, 679, 472, 475, 684, 686, 477, 481, 688, 690, + 691, 692, 254, -1001, 694, 485, 212, -1001, -1001, -1001, + 696, 710, 711, 712, 713, -1001, -1001, -1001, 433, 488, + 521, -1001, 723, 729, 732, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 527, -1001, -1001, -1001, + -1001, -1001, -123, 532, 533, -1001, -1001, -1001, 733, 734, + 743, -1001, 537, 752, 751, 546, 53, -1001, -1001, -1001, + 755, 759, 760, 762, 761, -1001, 765, 766, 767, 768, + 556, 566, -1001, -1001, -1001, 771, 770, -1001, 775, 222, + 237, -1001, -1001, -1001, -1001, -1001, 568, 569, 570, 779, + 572, 573, -1001, 775, 575, 780, -1001, 576, -1001, 775, + 577, 578, 580, 583, 585, 586, 587, -1001, 588, 589, + -1001, 590, 591, 593, -1001, -1001, 594, -1001, -1001, -1001, + -1001, 595, 751, -1001, -1001, 596, 597, -1001, 598, -1001, + -1001, 15, 621, -1001, -1001, -123, 599, 600, 601, -1001, + 787, -1001, -1001, 31, 197, 212, 87, 232, -1001, -1001, + -1001, 351, 351, 788, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, 798, 808, 809, -1001, 810, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 56, 811, 812, 813, + 241, 48, -59, 5, 254, -1001, -1001, 814, -109, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + 815, -1001, -1001, -1001, -1001, 184, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 788, -1001, 283, 285, 289, -1001, + -1001, 291, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 790, + 821, 822, 823, 824, 825, 826, 827, 834, 835, -1001, + 836, -1001, -1001, -1001, -1001, -1001, 302, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 305, + -1001, 837, 838, -1001, -1001, 839, 841, -1001, -1001, 840, + 844, -1001, -1001, 842, 846, -1001, -1001, 845, 847, -1001, + -1001, -1001, -1001, -1001, -1001, 64, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, 88, -1001, -1001, 848, 849, -1001, -1001, + 850, 854, -1001, 855, 856, 857, 858, 859, 860, 306, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, 861, 862, 873, + -1001, 341, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, 342, -1001, -1001, -1001, 874, -1001, 875, + -1001, -1001, -1001, 345, -1001, -1001, -1001, -1001, -1001, 349, + -1001, 200, -1001, 876, 887, 888, 889, -1001, 352, -1001, + -1001, -1001, -1001, -1001, 629, -1001, 852, 891, -1001, -1001, + -1001, -1001, 890, 893, -1001, -1001, -1001, 896, 897, 232, + -1001, 898, 899, 900, 901, 683, 693, 699, 701, 704, + 705, 706, 714, 715, 717, 902, 718, 904, 906, 911, + 920, 351, -1001, -1001, 351, -1001, 788, 642, -1001, 798, + 265, -1001, 808, 233, -1001, 809, 802, -1001, 810, 56, + -1001, 127, 811, -1001, 43, -1001, 812, -94, -1001, 813, + 719, 720, 721, 722, 725, 727, 241, -1001, 709, 728, + 730, 48, -1001, 923, 933, -59, -1001, 731, 941, 741, + 944, 5, -1001, -1001, -57, 814, -1001, 750, 753, 754, + 769, -109, -1001, -1001, 998, 1005, 74, -1001, 815, 1008, + -1001, -1001, 805, 877, -1001, 38, 881, 882, 883, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 192, + -1001, 884, 885, 886, 892, -1001, 362, -1001, 429, -1001, + 1013, -1001, 1014, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 430, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, 1021, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 1018, 1025, -1001, -1001, + -1001, -1001, -1001, -1001, 1030, -1001, 436, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 894, + 895, -1001, -1001, 903, -1001, 31, -1001, -1001, 1044, -1001, + -1001, -1001, -1001, -1001, 439, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 905, 445, -1001, 775, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, 802, -1001, 1045, 1083, 907, -1001, 127, -1001, -1001, + -1001, -1001, -1001, -1001, 1096, 908, 1097, -57, -1001, -1001, + -1001, -1001, -1001, 912, 913, -1001, -1001, 1098, -1001, 914, + -1001, -1001, -1001, 1095, -1001, -1001, 201, -1001, 21, 1095, + -1001, -1001, 1100, 1102, 1105, -1001, 446, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 1106, 915, 910, 916, 1107, 21, + -1001, 919, -1001, -1001, -1001, 921, -1001, -1001, -1001 }; const short @@ -5274,99 +5287,99 @@ namespace isc { namespace dhcp { 324, 0, 316, 319, 320, 321, 322, 323, 711, 713, 710, 708, 709, 0, 703, 706, 707, 0, 727, 0, 730, 723, 724, 0, 717, 720, 721, 722, 725, 0, - 800, 0, 797, 0, 0, 0, 845, 0, 839, 842, - 843, 844, 53, 587, 0, 583, 584, 646, 664, 665, - 0, 0, 62, 784, 183, 0, 0, 219, 216, 0, + 800, 0, 797, 0, 0, 0, 0, 846, 0, 839, + 842, 843, 844, 845, 53, 587, 0, 583, 584, 646, + 664, 665, 0, 0, 62, 784, 183, 0, 0, 219, + 216, 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, 239, - 214, 227, 0, 229, 234, 0, 367, 372, 518, 506, - 513, 557, 547, 552, 0, 452, 457, 303, 300, 673, - 670, 667, 618, 608, 613, 0, 329, 334, 0, 0, - 0, 0, 0, 0, 353, 350, 0, 0, 0, 318, - 315, 0, 0, 705, 702, 0, 0, 0, 0, 719, - 716, 733, 0, 799, 796, 0, 0, 0, 841, 838, - 55, 0, 54, 0, 581, 586, 0, 663, 793, 0, - 0, 218, 0, 0, 0, 0, 273, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 290, 0, 0, - 0, 0, 238, 0, 233, 0, 371, 0, 512, 0, - 551, 504, 481, 482, 483, 466, 467, 486, 487, 488, - 489, 490, 502, 469, 470, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 503, 463, 464, 465, - 479, 480, 476, 477, 478, 475, 0, 460, 468, 484, - 485, 471, 472, 473, 474, 456, 302, 695, 697, 0, - 689, 690, 691, 692, 693, 694, 682, 683, 687, 688, - 684, 685, 686, 0, 674, 675, 678, 679, 680, 681, - 669, 0, 612, 0, 333, 360, 361, 362, 363, 364, - 365, 352, 325, 326, 327, 317, 0, 0, 704, 726, - 0, 729, 0, 718, 815, 0, 813, 811, 805, 809, - 810, 0, 802, 807, 808, 806, 798, 846, 847, 848, - 840, 52, 57, 0, 585, 0, 223, 225, 264, 265, - 266, 263, 268, 270, 272, 287, 288, 289, 286, 292, - 294, 296, 298, 236, 374, 515, 554, 462, 459, 0, - 0, 0, 672, 677, 615, 336, 712, 714, 728, 731, - 0, 0, 0, 804, 801, 56, 588, 647, 461, 0, - 0, 699, 676, 0, 812, 0, 803, 696, 698, 0, - 814, 820, 0, 817, 0, 819, 816, 830, 0, 0, - 0, 835, 0, 822, 825, 826, 827, 828, 829, 818, - 0, 0, 0, 0, 0, 824, 821, 0, 832, 833, - 834, 0, 823, 831, 836 + 0, 239, 214, 227, 0, 229, 234, 0, 367, 372, + 518, 506, 513, 557, 547, 552, 0, 452, 457, 303, + 300, 673, 670, 667, 618, 608, 613, 0, 329, 334, + 0, 0, 0, 0, 0, 0, 353, 350, 0, 0, + 0, 318, 315, 0, 0, 705, 702, 0, 0, 0, + 0, 719, 716, 733, 0, 799, 796, 0, 0, 0, + 0, 841, 838, 55, 0, 54, 0, 581, 586, 0, + 663, 793, 0, 0, 218, 0, 0, 0, 0, 273, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, + 290, 0, 0, 0, 0, 238, 0, 233, 0, 371, + 0, 512, 0, 551, 504, 481, 482, 483, 466, 467, + 486, 487, 488, 489, 490, 502, 469, 470, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 503, + 463, 464, 465, 479, 480, 476, 477, 478, 475, 0, + 460, 468, 484, 485, 471, 472, 473, 474, 456, 302, + 695, 697, 0, 689, 690, 691, 692, 693, 694, 682, + 683, 687, 688, 684, 685, 686, 0, 674, 675, 678, + 679, 680, 681, 669, 0, 612, 0, 333, 360, 361, + 362, 363, 364, 365, 352, 325, 326, 327, 317, 0, + 0, 704, 726, 0, 729, 0, 718, 815, 0, 813, + 811, 805, 809, 810, 0, 802, 807, 808, 806, 798, + 847, 848, 849, 850, 840, 52, 57, 0, 585, 0, + 223, 225, 264, 265, 266, 263, 268, 270, 272, 287, + 288, 289, 286, 292, 294, 296, 298, 236, 374, 515, + 554, 462, 459, 0, 0, 0, 672, 677, 615, 336, + 712, 714, 728, 731, 0, 0, 0, 804, 801, 56, + 588, 647, 461, 0, 0, 699, 676, 0, 812, 0, + 803, 696, 698, 0, 814, 820, 0, 817, 0, 819, + 816, 830, 0, 0, 0, 835, 0, 822, 825, 826, + 827, 828, 829, 818, 0, 0, 0, 0, 0, 824, + 821, 0, 832, 833, 834, 0, 823, 831, 836 }; const short Dhcp4Parser::yypgoto_[] = { - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -53, -997, -587, -997, 215, - -997, -997, -997, -997, -997, -997, -646, -997, -997, -997, - -67, -997, -997, -997, -997, -997, -997, -997, 392, 606, - -8, 11, 29, -54, -34, -12, -10, 3, 37, 40, - -997, -997, -997, -997, 41, -997, -997, 44, 48, 51, - 52, 55, 56, -997, 393, 58, -997, 59, -997, 62, - 63, 66, -997, 69, -997, 70, -997, -997, -997, -997, - -997, 33, -997, -997, 394, 598, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, 132, -997, -997, -997, -997, - -997, -997, -997, -997, 308, -997, 107, -997, -708, 114, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -45, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, 97, -997, -997, -997, - -997, -997, -997, -997, -997, 82, -997, -997, -997, -997, - -997, -997, -997, 89, -997, -997, -997, 90, 562, -997, - -997, -997, -997, -997, -997, -997, 84, -997, -997, -997, - -997, -997, -997, -996, -997, -997, -997, 116, -997, -997, - -997, 117, 602, -997, -997, -997, -997, -997, -997, -997, - -997, -988, -997, -65, -997, 78, -997, 73, 74, 76, - 77, -997, -997, -997, -997, -997, -997, -997, 109, -997, - -997, -111, -62, -997, -997, -997, -997, -997, 121, -997, - -997, -997, 124, -997, 594, -997, -61, -997, -997, -997, - -997, -997, -58, -997, -997, -997, -997, -997, -4, -997, - -997, -997, 125, -997, -997, -997, 118, -997, 596, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, 86, -997, -997, -997, 92, 653, -997, -997, -49, - -997, -30, -997, -57, -997, -997, -997, 126, -997, -997, - -997, 120, -997, 661, 7, -997, 18, -997, 22, -997, - 374, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -984, -997, - -997, -997, -997, -997, 136, -997, -997, -997, -91, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, 110, - -997, -997, -997, -997, -997, -997, -997, 105, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, 407, 586, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, -997, -997, -997, -997, -997, -997, -997, -997, 444, - 581, -997, -997, -997, -997, -997, -997, 113, -997, -997, - -93, -997, -997, -997, -997, -997, -997, -113, -997, -997, - -132, -997, -997, -997, -997, -997, -997, -997, -997, -997, - -997, 106, -997, -997, -997 + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -52, -1001, -593, -1001, 161, + -1001, -1001, -1001, -1001, -1001, -1001, -637, -1001, -1001, -1001, + -67, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 398, 613, + -30, -28, 26, -54, -34, -27, 0, 16, 23, 39, + -1001, -1001, -1001, -1001, 44, -1001, -1001, 47, 51, 52, + 54, 55, 57, -1001, 412, 58, -1001, 59, -1001, 62, + 65, 69, -1001, 70, -1001, 72, -1001, -1001, -1001, -1001, + -1001, 36, -1001, -1001, 397, 605, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, 141, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, 315, -1001, 115, -1001, -708, 128, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -45, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 109, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, 92, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, 106, -1001, -1001, -1001, 110, 602, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, 102, -1001, -1001, -1001, + -1001, -1001, -1001, -1000, -1001, -1001, -1001, 131, -1001, -1001, + -1001, 129, 620, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -993, -1001, -65, -1001, -53, -1001, 73, 75, 76, + 77, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 121, -1001, + -1001, -100, -62, -1001, -1001, -1001, -1001, -1001, 133, -1001, + -1001, -1001, 134, -1001, 603, -1001, -63, -1001, -1001, -1001, + -1001, -1001, -61, -1001, -1001, -1001, -1001, -1001, -26, -1001, + -1001, -1001, 135, -1001, -1001, -1001, 138, -1001, 604, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, 79, -1001, -1001, -1001, 82, 628, -1001, -1001, -49, + -1001, -10, -1001, -51, -1001, -1001, -1001, 120, -1001, -1001, + -1001, 136, -1001, 622, 3, -1001, 13, -1001, 29, -1001, + 379, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -986, -1001, + -1001, -1001, -1001, -1001, 139, -1001, -1001, -1001, -95, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 117, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, 104, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 411, 606, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 444, + 607, -1001, -1001, -1001, -1001, -1001, -1001, 108, -1001, -1001, + -93, -1001, -1001, -1001, -1001, -1001, -1001, -113, -1001, -1001, + -132, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, + -1001, 107, -1001, -1001, -1001, -1001 }; const short Dhcp4Parser::yydefgoto_[] = { - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 36, 37, 38, 65, 739, - 82, 83, 39, 64, 79, 80, 760, 962, 1061, 1062, + 82, 83, 39, 64, 79, 80, 760, 964, 1064, 1065, 835, 41, 66, 85, 432, 86, 43, 67, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 459, 168, 169, 475, 170, 171, 172, 173, @@ -5374,540 +5387,541 @@ namespace isc { namespace dhcp { 180, 181, 493, 182, 494, 183, 184, 185, 186, 187, 188, 189, 190, 436, 229, 230, 45, 68, 231, 503, 232, 504, 763, 233, 505, 766, 234, 235, 236, 237, - 191, 445, 192, 437, 811, 812, 813, 975, 814, 976, - 193, 446, 194, 447, 861, 862, 863, 1002, 836, 837, - 838, 979, 1221, 839, 980, 840, 981, 841, 982, 842, + 191, 445, 192, 437, 811, 812, 813, 977, 814, 978, + 193, 446, 194, 447, 861, 862, 863, 1004, 836, 837, + 838, 981, 1225, 839, 982, 840, 983, 841, 984, 842, 843, 539, 844, 845, 846, 847, 848, 849, 850, 851, - 852, 853, 993, 1228, 854, 855, 995, 856, 996, 857, - 997, 858, 998, 195, 483, 885, 886, 887, 888, 889, + 852, 853, 995, 1232, 854, 855, 997, 856, 998, 857, + 999, 858, 1000, 195, 483, 885, 886, 887, 888, 889, 890, 891, 196, 489, 921, 922, 923, 924, 925, 197, - 486, 900, 901, 902, 1025, 59, 75, 382, 383, 384, + 486, 900, 901, 902, 1027, 59, 75, 382, 383, 384, 553, 385, 554, 198, 487, 909, 910, 911, 912, 913, - 914, 915, 916, 199, 471, 865, 866, 867, 1005, 47, + 914, 915, 916, 199, 471, 865, 866, 867, 1007, 47, 69, 276, 277, 278, 516, 279, 512, 280, 513, 281, 514, 282, 517, 283, 520, 284, 519, 200, 201, 202, - 203, 479, 745, 289, 204, 476, 877, 878, 879, 1014, - 1136, 1137, 205, 472, 53, 72, 869, 870, 871, 1008, + 203, 479, 745, 289, 204, 476, 877, 878, 879, 1016, + 1139, 1140, 205, 472, 53, 72, 869, 870, 871, 1010, 55, 73, 345, 346, 347, 348, 349, 350, 351, 538, 352, 542, 353, 541, 354, 355, 543, 356, 206, 473, - 873, 874, 875, 1011, 57, 74, 367, 368, 369, 370, - 371, 547, 372, 373, 374, 375, 376, 291, 515, 964, - 965, 966, 1063, 49, 70, 304, 305, 306, 524, 207, - 477, 208, 478, 209, 485, 896, 897, 898, 1022, 51, + 873, 874, 875, 1013, 57, 74, 367, 368, 369, 370, + 371, 547, 372, 373, 374, 375, 376, 291, 515, 966, + 967, 968, 1066, 49, 70, 304, 305, 306, 524, 207, + 477, 208, 478, 209, 485, 896, 897, 898, 1024, 51, 71, 321, 322, 323, 210, 441, 211, 442, 212, 443, - 327, 534, 969, 1066, 328, 528, 329, 529, 330, 531, + 327, 534, 971, 1069, 328, 528, 329, 529, 330, 531, 331, 530, 332, 533, 333, 532, 334, 527, 298, 521, - 970, 213, 484, 893, 894, 1019, 1163, 1164, 1165, 1166, - 1167, 1239, 1168, 1240, 1169, 214, 215, 490, 933, 934, - 935, 1041, 936, 1042, 216, 491, 943, 944, 945, 946, - 1046, 947, 948, 1048, 217, 492, 61, 76, 404, 405, + 972, 213, 484, 893, 894, 1021, 1166, 1167, 1168, 1169, + 1170, 1243, 1171, 1244, 1172, 214, 215, 490, 933, 934, + 935, 1043, 936, 1044, 216, 491, 943, 944, 945, 946, + 1048, 947, 948, 1050, 217, 492, 61, 76, 404, 405, 406, 407, 559, 408, 409, 561, 410, 411, 412, 564, 798, 413, 565, 414, 558, 415, 416, 417, 568, 418, 569, 419, 570, 420, 571, 218, 435, 63, 77, 423, - 424, 425, 574, 426, 219, 498, 951, 952, 1052, 1201, - 1202, 1203, 1204, 1252, 1205, 1250, 1272, 1273, 1274, 1282, - 1283, 1284, 1290, 1285, 1286, 1287, 1288, 1294, 220, 499, - 957, 958, 959, 960, 961 + 424, 425, 574, 426, 219, 498, 951, 952, 1054, 1204, + 1205, 1206, 1207, 1256, 1208, 1254, 1276, 1277, 1278, 1286, + 1287, 1288, 1294, 1289, 1290, 1291, 1292, 1298, 220, 499, + 958, 959, 960, 961, 962, 963 }; const short Dhcp4Parser::yytable_[] = { 153, 228, 250, 300, 317, 301, 343, 363, 381, 401, - 335, 78, 294, 365, 859, 254, 366, 773, 1128, 238, - 292, 307, 319, 777, 357, 377, 1129, 402, 344, 364, - 1144, 433, 379, 380, 28, 255, 434, 738, 239, 293, - 308, 320, 1017, 358, 378, 1018, 403, 29, 81, 30, - 40, 31, 725, 726, 727, 728, 796, 256, 429, 257, - 1020, 251, 580, 1021, 501, 290, 303, 318, 125, 502, - 379, 380, 258, 124, 510, 42, 295, 585, 324, 511, - 252, 761, 762, 299, 129, 130, 44, 296, 46, 325, - 729, 297, 48, 326, 50, 953, 954, 955, 253, 247, - 421, 422, 275, 248, 152, 738, 259, 522, 52, 260, - 261, 152, 523, 262, 525, 764, 765, 263, 555, 526, - 264, 265, 84, 556, 266, 267, 54, 268, 269, 56, - 1053, 270, 271, 1054, 87, 272, 572, 88, 273, 274, - 427, 573, 285, 286, 1275, 287, 288, 1276, 302, 89, - 316, 967, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 576, 58, 221, 222, 428, 577, 223, 809, - 810, 224, 225, 226, 227, 1277, 129, 130, 1278, 1279, - 1280, 1281, 60, 62, 129, 130, 430, 152, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 336, 797, 431, 124, 125, 438, 917, 918, - 919, 880, 881, 882, 883, 439, 884, 126, 127, 128, - 928, 929, 129, 130, 501, 576, 535, 131, 440, 972, - 973, 1128, 132, 133, 134, 135, 136, 444, 448, 1129, - 449, 450, 137, 1144, 32, 33, 34, 35, 129, 130, - 537, 451, 138, 129, 130, 139, 510, 337, 452, 338, - 339, 974, 140, 141, 340, 341, 342, 142, 453, 152, - 143, 977, 129, 130, 144, 454, 978, 152, 91, 92, - 93, 94, 95, 96, 1093, 337, 359, 338, 339, 360, - 361, 362, 455, 456, 145, 146, 147, 148, 149, 150, - 129, 130, 937, 938, 939, 1218, 1219, 1220, 151, 457, - 93, 94, 95, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 458, 460, 152, 461, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 462, 240, 241, 242, - 463, 125, 464, 468, 999, 93, 94, 95, 96, 1000, - 469, 152, 470, 127, 474, 243, 940, 129, 130, 244, - 245, 246, 131, 545, 480, 578, 579, 132, 133, 134, - 481, 125, 247, 482, 488, 152, 248, 137, 100, 101, - 102, 999, 551, 495, 249, 496, 1001, 129, 130, 903, - 904, 905, 906, 907, 908, 1034, 536, 1039, 546, 1043, - 1035, 309, 1040, 152, 1044, 124, 125, 337, 310, 311, - 312, 313, 314, 315, 1049, 316, 1225, 1226, 1227, 1050, - 497, 337, 129, 130, 153, 500, 572, 1058, 552, 145, - 146, 1051, 1059, 228, 506, 507, 129, 130, 1147, 1148, - 1149, 999, 522, 586, 1237, 250, 1233, 1234, 300, 1238, - 301, 238, 555, 587, 508, 294, 1253, 1245, 254, 317, - 152, 1254, 525, 292, 509, 518, 307, 1256, 1295, 343, - 239, 540, 544, 1296, 548, 363, 549, 319, 255, 550, - 557, 365, 293, 560, 366, 308, 562, 357, 563, 566, - 152, 344, 567, 377, 575, 401, 320, 364, 581, 582, - 256, 583, 257, 584, 251, 588, 358, 589, 290, 590, - 591, 303, 378, 402, 1194, 258, 1195, 1196, 592, 295, - 593, 594, 318, 252, 595, 152, 601, 596, 597, 598, - 296, 599, 403, 324, 297, 741, 742, 743, 744, 152, - 600, 253, 602, 603, 325, 275, 604, 605, 326, 259, - 606, 612, 260, 261, 613, 607, 262, 608, 609, 1257, - 263, 614, 610, 264, 265, 618, 611, 266, 267, 615, - 268, 269, 616, 617, 270, 271, 619, 620, 272, 622, - 621, 273, 274, 623, 624, 285, 286, 625, 287, 288, - 815, 626, 627, 302, 816, 817, 818, 819, 820, 821, - 822, 823, 824, 825, 826, 827, 828, 829, 630, 631, - 632, 830, 831, 832, 833, 834, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 628, - 629, 633, 634, 636, 637, 635, 638, 153, 639, 228, - 653, 640, 641, 642, 643, 337, 645, 644, 646, 648, - 805, 649, 650, 656, 657, 651, 658, 238, 652, 654, - 659, 660, 661, 663, 662, 664, 91, 92, 93, 94, - 95, 96, 665, 667, 920, 930, 239, 401, 669, 670, - 671, 956, 672, 673, 674, 675, 676, 678, 679, 681, - 680, 682, 926, 931, 941, 402, 683, 686, 684, 691, - 692, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 927, 932, 942, 403, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 129, 130, 687, 688, 125, - 337, 695, 696, 689, 694, 697, 698, 699, 700, 701, - 702, 127, 703, 704, 705, 129, 130, 706, 245, 707, - 131, 708, 710, 711, 713, 132, 133, 134, 714, 715, - 247, 716, 717, 152, 248, 718, 719, 720, 721, 722, - 723, 724, 249, 733, 731, 732, 734, 735, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 737, 30, 736, 740, 746, 747, 399, 400, 748, - 749, 755, 756, 750, 751, 752, 753, 754, 757, 758, - 759, 767, 768, 769, 770, 771, 799, 145, 146, 772, - 774, 775, 776, 778, 779, 780, 781, 782, 152, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 793, 804, - 860, 1004, 864, 794, 868, 795, 872, 801, 152, 876, - 892, 802, 895, 803, 899, 950, 963, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 994, 1076, 1007, - 1003, 1006, 1010, 1009, 1012, 1013, 1015, 1016, 1024, 1023, - 1027, 1065, 1026, 1028, 1029, 1030, 1031, 1032, 1033, 1036, - 1037, 1038, 1045, 1047, 1055, 1056, 1057, 792, 1060, 1064, - 1069, 1068, 1067, 1070, 1072, 1073, 1074, 1075, 1086, 1077, - 1078, 1088, 1080, 1079, 1081, 1082, 1083, 1084, 1085, 1087, - 1089, 1090, 1091, 1175, 1176, 1177, 1178, 1179, 250, 1180, - 1182, 343, 1183, 1184, 363, 1186, 1187, 1101, 294, 1130, - 365, 254, 1150, 366, 1189, 317, 292, 1156, 381, 357, - 1105, 1190, 377, 344, 1191, 1139, 364, 1192, 1211, 1127, - 1158, 255, 920, 319, 1155, 293, 930, 1212, 358, 1215, - 1106, 378, 1207, 1208, 1140, 1197, 1216, 1235, 1209, 1159, - 926, 956, 320, 256, 931, 257, 300, 251, 301, 1217, - 941, 290, 1107, 1199, 1108, 1222, 1102, 1198, 258, 927, - 1138, 1151, 295, 932, 307, 1157, 252, 1109, 318, 942, - 1236, 1141, 1200, 296, 1241, 1103, 1160, 297, 1223, 324, - 1152, 1242, 1142, 308, 253, 1224, 1143, 1161, 275, 1229, - 325, 1162, 259, 1104, 326, 260, 261, 1126, 1153, 262, - 1230, 1110, 1154, 263, 1111, 1112, 264, 265, 1113, 303, - 266, 267, 1114, 268, 269, 1115, 1116, 270, 271, 1117, - 1118, 272, 1119, 1120, 273, 274, 1121, 1122, 285, 286, - 1123, 287, 288, 1124, 1125, 1243, 1244, 1132, 1133, 1251, - 1134, 1135, 1131, 1231, 1259, 1260, 1263, 1265, 800, 1269, - 1291, 1292, 1271, 1293, 1297, 1301, 806, 647, 655, 1071, - 808, 1094, 971, 1092, 1146, 1173, 1174, 693, 1181, 1232, - 1246, 1185, 1095, 1096, 666, 1145, 1258, 1247, 1248, 1099, - 1255, 1098, 1097, 1264, 1261, 1267, 1268, 1270, 1100, 1249, - 685, 302, 1171, 1299, 1298, 1300, 1303, 1304, 690, 968, - 1172, 1214, 1262, 1188, 1193, 1213, 1170, 712, 709, 807, - 1266, 949, 1289, 1302, 1210, 0, 1206, 0, 0, 0, - 1101, 0, 1130, 0, 0, 0, 1150, 0, 668, 0, - 0, 1156, 0, 1105, 0, 0, 1197, 0, 1139, 0, - 0, 0, 1127, 0, 1158, 0, 0, 677, 1155, 0, - 0, 0, 0, 1106, 1199, 0, 0, 1140, 1198, 0, - 0, 0, 0, 1159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1200, 0, 1107, 0, 1108, 0, 1102, - 0, 0, 0, 1138, 0, 1151, 0, 0, 0, 1157, - 1109, 0, 0, 0, 1141, 0, 0, 0, 1103, 0, - 1160, 0, 0, 0, 1152, 1142, 0, 0, 0, 1143, - 0, 1161, 0, 0, 0, 1162, 1104, 0, 0, 0, - 1126, 0, 1153, 0, 1110, 0, 1154, 1111, 1112, 0, - 0, 1113, 0, 0, 0, 1114, 0, 0, 1115, 1116, - 0, 0, 1117, 1118, 0, 1119, 1120, 0, 0, 1121, - 1122, 0, 0, 1123, 0, 0, 1124, 1125, 0, 0, - 1132, 1133, 0, 1134, 1135, 1131 + 335, 365, 78, 366, 859, 254, 1131, 302, 294, 238, + 292, 307, 319, 1132, 357, 377, 773, 402, 344, 364, + 1147, 738, 777, 796, 28, 255, 29, 337, 30, 251, + 31, 252, 256, 290, 303, 318, 379, 380, 379, 380, + 129, 130, 129, 130, 725, 726, 727, 728, 239, 293, + 308, 320, 81, 358, 378, 580, 403, 1019, 40, 257, + 1020, 124, 295, 42, 324, 93, 94, 95, 1222, 1223, + 1224, 433, 296, 428, 325, 258, 434, 953, 954, 955, + 956, 1022, 259, 729, 1023, 253, 928, 929, 297, 738, + 326, 44, 221, 222, 152, 275, 223, 46, 260, 224, + 225, 226, 227, 261, 129, 130, 262, 501, 48, 152, + 263, 264, 502, 265, 266, 50, 267, 268, 269, 52, + 1197, 270, 1198, 1199, 271, 510, 125, 54, 272, 273, + 511, 274, 285, 522, 286, 287, 288, 84, 523, 56, + 525, 58, 129, 130, 152, 526, 152, 129, 130, 93, + 94, 95, 96, 937, 938, 939, 309, 125, 741, 742, + 743, 744, 60, 310, 311, 312, 313, 314, 315, 62, + 316, 427, 299, 129, 130, 429, 880, 881, 882, 883, + 797, 884, 100, 101, 102, 430, 129, 130, 247, 917, + 918, 919, 248, 1055, 1279, 555, 1056, 1280, 87, 1281, + 556, 88, 1282, 1283, 1284, 1285, 431, 572, 940, 124, + 125, 337, 573, 89, 421, 422, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 129, 130, 576, 761, + 762, 1131, 438, 577, 32, 33, 34, 35, 1132, 1229, + 1230, 1231, 1150, 1151, 1152, 1147, 152, 764, 765, 809, + 810, 152, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 501, 152, 576, 124, + 125, 974, 510, 975, 979, 535, 1096, 976, 439, 980, + 152, 126, 127, 128, 336, 1001, 129, 130, 1001, 1036, + 1002, 131, 440, 1003, 1037, 444, 132, 133, 134, 135, + 136, 316, 969, 448, 449, 450, 137, 337, 359, 338, + 339, 360, 361, 362, 451, 452, 138, 453, 454, 139, + 152, 455, 129, 130, 1041, 1045, 140, 141, 1051, 1042, + 1046, 142, 572, 1052, 143, 1061, 536, 1053, 144, 337, + 1062, 338, 339, 129, 130, 1001, 340, 341, 342, 456, + 1237, 457, 458, 460, 129, 130, 578, 579, 145, 146, + 147, 148, 149, 150, 903, 904, 905, 906, 907, 908, + 815, 461, 151, 462, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 463, 464, + 152, 830, 831, 832, 833, 834, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 468, + 469, 470, 522, 1241, 153, 399, 400, 1238, 1242, 555, + 537, 474, 1257, 228, 1249, 337, 152, 1258, 525, 1299, + 545, 480, 481, 1260, 1300, 250, 482, 488, 300, 495, + 301, 238, 496, 497, 500, 506, 507, 152, 254, 317, + 508, 294, 302, 292, 509, 518, 307, 540, 152, 343, + 544, 546, 551, 548, 549, 363, 550, 319, 255, 365, + 552, 366, 251, 557, 252, 256, 290, 357, 560, 303, + 239, 344, 562, 377, 563, 401, 566, 364, 567, 575, + 318, 581, 293, 582, 583, 308, 584, 585, 588, 586, + 587, 589, 257, 402, 590, 295, 320, 591, 592, 593, + 594, 595, 596, 606, 612, 296, 358, 597, 258, 324, + 598, 599, 378, 604, 600, 259, 613, 601, 253, 325, + 602, 297, 609, 603, 605, 610, 614, 607, 275, 618, + 608, 260, 403, 611, 152, 326, 261, 619, 620, 262, + 615, 616, 617, 263, 264, 621, 265, 266, 622, 267, + 268, 269, 1261, 623, 270, 624, 625, 271, 626, 627, + 628, 272, 273, 629, 274, 285, 630, 286, 287, 288, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 648, + 649, 650, 651, 652, 653, 654, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 718, 153, 667, 228, + 669, 670, 671, 672, 673, 674, 675, 676, 678, 679, + 681, 805, 682, 680, 683, 686, 684, 238, 691, 692, + 687, 695, 91, 92, 93, 94, 95, 96, 696, 688, + 689, 694, 697, 698, 920, 930, 699, 401, 701, 700, + 702, 957, 705, 703, 706, 707, 708, 704, 710, 711, + 713, 719, 926, 931, 941, 402, 239, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 714, 715, 716, + 717, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 721, 240, 241, 242, 720, 125, 722, 723, 733, 734, + 724, 927, 932, 942, 403, 731, 732, 127, 735, 243, + 736, 129, 130, 244, 245, 246, 131, 737, 30, 740, + 746, 132, 133, 134, 747, 748, 247, 749, 750, 755, + 248, 137, 751, 752, 753, 754, 757, 758, 249, 756, + 759, 767, 768, 769, 770, 771, 772, 775, 774, 776, + 778, 779, 804, 780, 985, 860, 781, 799, 782, 783, + 784, 785, 786, 787, 788, 864, 789, 790, 791, 793, + 794, 795, 801, 802, 803, 868, 872, 876, 892, 895, + 899, 950, 965, 145, 146, 986, 987, 988, 989, 990, + 991, 992, 91, 92, 93, 94, 95, 96, 993, 994, + 996, 1006, 1063, 1005, 1009, 1008, 1011, 1012, 1014, 1015, + 1018, 1017, 1026, 792, 1025, 152, 1028, 1029, 1067, 1030, + 1031, 1032, 1033, 1034, 1035, 1038, 1039, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 1040, 1047, 1049, + 1057, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 1058, 1059, 1060, 1068, 125, 337, 1079, 1070, 1071, + 1072, 1073, 1075, 1076, 1077, 1078, 1089, 127, 1091, 1080, + 1092, 129, 130, 1081, 245, 1093, 131, 1082, 1083, 1084, + 1085, 132, 133, 134, 1094, 1185, 247, 1189, 1086, 1087, + 248, 1088, 1090, 1178, 1179, 1180, 1181, 1190, 249, 1182, + 250, 1183, 1186, 343, 1187, 1193, 363, 1192, 1195, 1104, + 365, 1133, 366, 254, 1153, 1194, 294, 317, 292, 1159, + 381, 357, 1108, 1134, 377, 344, 1210, 1142, 364, 1211, + 1212, 1130, 1161, 255, 920, 319, 1158, 251, 930, 252, + 256, 290, 1109, 145, 146, 1213, 1105, 1200, 1106, 1110, + 1141, 1154, 926, 1155, 957, 1160, 931, 293, 318, 300, + 358, 301, 941, 378, 1215, 1202, 1143, 257, 1216, 1201, + 295, 1162, 1219, 302, 320, 152, 1111, 307, 1220, 1144, + 296, 1239, 1240, 258, 1163, 1245, 1246, 324, 1247, 1145, + 259, 927, 1112, 253, 1164, 932, 297, 325, 1248, 1113, + 303, 942, 1107, 275, 1203, 1146, 260, 1156, 1255, 1263, + 1165, 261, 1129, 326, 262, 1114, 308, 1157, 263, 264, + 1115, 265, 266, 1116, 267, 268, 269, 1117, 1118, 270, + 1119, 1120, 271, 1121, 1122, 1123, 272, 273, 1124, 274, + 285, 1125, 286, 287, 288, 1126, 1127, 1264, 1128, 1135, + 1221, 1136, 1137, 1138, 1226, 1227, 1228, 1233, 1234, 1235, + 1267, 1269, 1275, 1273, 1295, 1236, 1296, 1250, 1251, 1297, + 1301, 1305, 806, 808, 647, 655, 1252, 800, 1259, 973, + 1074, 1097, 1268, 1265, 1303, 1271, 1272, 1274, 1149, 1095, + 1304, 1302, 1307, 1188, 1308, 1177, 1098, 1176, 1184, 1148, + 1099, 1262, 666, 1253, 1100, 1101, 1175, 1218, 1217, 685, + 1103, 1102, 1266, 668, 970, 1196, 690, 693, 677, 807, + 1174, 1173, 1191, 1209, 1270, 949, 1293, 1306, 1214, 0, + 0, 0, 0, 0, 1104, 0, 1133, 0, 709, 0, + 1153, 0, 0, 712, 0, 1159, 0, 1108, 1134, 0, + 1200, 0, 1142, 0, 0, 0, 1130, 0, 1161, 0, + 0, 0, 1158, 0, 0, 0, 0, 1109, 1202, 0, + 0, 1105, 1201, 1106, 1110, 1141, 0, 1154, 0, 1155, + 0, 1160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1143, 0, 0, 0, 0, 0, 1162, 0, 0, + 0, 1111, 0, 0, 1144, 0, 0, 1203, 0, 0, + 1163, 0, 0, 0, 1145, 0, 0, 1112, 0, 0, + 1164, 0, 0, 0, 1113, 0, 0, 1107, 0, 0, + 1146, 0, 0, 1156, 0, 0, 1165, 1129, 0, 0, + 1114, 0, 0, 1157, 0, 1115, 0, 0, 1116, 0, + 0, 0, 1117, 1118, 0, 1119, 1120, 0, 1121, 1122, + 1123, 0, 0, 1124, 0, 0, 1125, 0, 0, 0, + 1126, 1127, 0, 1128, 1135, 0, 1136, 1137, 1138 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 70, 73, 74, 75, 76, - 72, 64, 69, 74, 722, 69, 74, 663, 1014, 68, - 69, 70, 71, 669, 73, 74, 1014, 76, 73, 74, - 1014, 3, 140, 141, 0, 69, 8, 624, 68, 69, - 70, 71, 3, 73, 74, 6, 76, 5, 212, 7, - 7, 9, 177, 178, 179, 180, 18, 69, 4, 69, - 3, 69, 212, 6, 3, 69, 70, 71, 93, 8, - 140, 141, 69, 92, 3, 7, 69, 215, 71, 8, - 69, 17, 18, 108, 109, 110, 7, 69, 7, 71, - 215, 69, 7, 71, 7, 196, 197, 198, 69, 124, - 12, 13, 69, 128, 212, 692, 69, 3, 7, 69, - 69, 212, 8, 69, 3, 20, 21, 69, 3, 8, - 69, 69, 10, 8, 69, 69, 7, 69, 69, 7, - 3, 69, 69, 6, 11, 69, 3, 14, 69, 69, - 6, 8, 69, 69, 3, 69, 69, 6, 70, 26, - 137, 138, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 3, 7, 15, 16, 3, 8, 19, 27, - 28, 22, 23, 24, 25, 188, 109, 110, 191, 192, - 193, 194, 7, 7, 109, 110, 8, 212, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 39, 175, 3, 92, 93, 4, 151, 152, - 153, 130, 131, 132, 133, 4, 135, 104, 105, 106, - 155, 156, 109, 110, 3, 3, 8, 114, 4, 8, - 8, 1237, 119, 120, 121, 122, 123, 4, 4, 1237, - 4, 4, 129, 1237, 212, 213, 214, 215, 109, 110, - 8, 4, 139, 109, 110, 142, 3, 94, 4, 96, - 97, 8, 149, 150, 101, 102, 103, 154, 4, 212, - 157, 3, 109, 110, 161, 4, 8, 212, 30, 31, - 32, 33, 34, 35, 1002, 94, 95, 96, 97, 98, - 99, 100, 4, 4, 181, 182, 183, 184, 185, 186, - 109, 110, 158, 159, 160, 40, 41, 42, 195, 4, - 32, 33, 34, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 4, 4, 212, 4, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 4, 89, 90, 91, - 4, 93, 4, 4, 3, 32, 33, 34, 35, 8, - 4, 212, 4, 105, 4, 107, 212, 109, 110, 111, - 112, 113, 114, 8, 4, 428, 429, 119, 120, 121, - 4, 93, 124, 4, 4, 212, 128, 129, 65, 66, - 67, 3, 8, 4, 136, 4, 8, 109, 110, 143, - 144, 145, 146, 147, 148, 3, 3, 3, 3, 3, - 8, 123, 8, 212, 8, 92, 93, 94, 130, 131, - 132, 133, 134, 135, 3, 137, 57, 58, 59, 8, - 4, 94, 109, 110, 501, 4, 3, 3, 3, 181, - 182, 8, 8, 510, 4, 4, 109, 110, 125, 126, - 127, 3, 3, 215, 3, 522, 8, 8, 525, 8, - 525, 510, 3, 215, 4, 522, 3, 8, 522, 536, - 212, 8, 3, 522, 4, 4, 525, 8, 3, 546, - 510, 4, 4, 8, 4, 552, 4, 536, 522, 4, - 4, 552, 522, 4, 552, 525, 4, 546, 4, 4, - 212, 546, 4, 552, 4, 572, 536, 552, 4, 4, - 522, 4, 522, 4, 522, 4, 546, 4, 522, 4, - 213, 525, 552, 572, 187, 522, 189, 190, 4, 522, - 4, 4, 536, 522, 213, 212, 214, 213, 213, 213, - 522, 213, 572, 536, 522, 115, 116, 117, 118, 212, - 215, 522, 214, 214, 536, 522, 213, 213, 536, 522, - 4, 4, 522, 522, 4, 213, 522, 213, 215, 1215, - 522, 4, 215, 522, 522, 4, 215, 522, 522, 215, - 522, 522, 215, 215, 522, 522, 4, 4, 522, 4, - 213, 522, 522, 4, 4, 522, 522, 4, 522, 522, - 39, 4, 215, 525, 43, 44, 45, 46, 47, 48, + 72, 74, 64, 74, 722, 69, 1016, 70, 69, 68, + 69, 70, 71, 1016, 73, 74, 663, 76, 73, 74, + 1016, 624, 669, 18, 0, 69, 5, 94, 7, 69, + 9, 69, 69, 69, 70, 71, 140, 141, 140, 141, + 109, 110, 109, 110, 177, 178, 179, 180, 68, 69, + 70, 71, 213, 73, 74, 213, 76, 3, 7, 69, + 6, 92, 69, 7, 71, 32, 33, 34, 40, 41, + 42, 3, 69, 3, 71, 69, 8, 196, 197, 198, + 199, 3, 69, 216, 6, 69, 155, 156, 69, 692, + 71, 7, 15, 16, 213, 69, 19, 7, 69, 22, + 23, 24, 25, 69, 109, 110, 69, 3, 7, 213, + 69, 69, 8, 69, 69, 7, 69, 69, 69, 7, + 187, 69, 189, 190, 69, 3, 93, 7, 69, 69, + 8, 69, 69, 3, 69, 69, 69, 10, 8, 7, + 3, 7, 109, 110, 213, 8, 213, 109, 110, 32, + 33, 34, 35, 158, 159, 160, 123, 93, 115, 116, + 117, 118, 7, 130, 131, 132, 133, 134, 135, 7, + 137, 6, 108, 109, 110, 4, 130, 131, 132, 133, + 175, 135, 65, 66, 67, 8, 109, 110, 124, 151, + 152, 153, 128, 3, 3, 3, 6, 6, 11, 188, + 8, 14, 191, 192, 193, 194, 3, 3, 213, 92, + 93, 94, 8, 26, 12, 13, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 109, 110, 3, 17, + 18, 1241, 4, 8, 213, 214, 215, 216, 1241, 57, + 58, 59, 125, 126, 127, 1241, 213, 20, 21, 27, + 28, 213, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 3, 213, 3, 92, + 93, 8, 3, 8, 3, 8, 1004, 8, 4, 8, + 213, 104, 105, 106, 39, 3, 109, 110, 3, 3, + 8, 114, 4, 8, 8, 4, 119, 120, 121, 122, + 123, 137, 138, 4, 4, 4, 129, 94, 95, 96, + 97, 98, 99, 100, 4, 4, 139, 4, 4, 142, + 213, 4, 109, 110, 3, 3, 149, 150, 3, 8, + 8, 154, 3, 8, 157, 3, 3, 8, 161, 94, + 8, 96, 97, 109, 110, 3, 101, 102, 103, 4, + 8, 4, 4, 4, 109, 110, 428, 429, 181, 182, + 183, 184, 185, 186, 143, 144, 145, 146, 147, 148, + 39, 4, 195, 4, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 4, 4, - 4, 60, 61, 62, 63, 64, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 215, - 215, 4, 4, 4, 4, 213, 4, 714, 4, 716, - 213, 4, 4, 215, 215, 94, 4, 215, 4, 4, - 713, 4, 4, 4, 4, 215, 4, 716, 215, 213, - 4, 4, 4, 4, 213, 4, 30, 31, 32, 33, - 34, 35, 4, 4, 751, 752, 716, 754, 4, 4, - 4, 758, 4, 4, 4, 4, 4, 4, 4, 4, - 213, 4, 751, 752, 753, 754, 4, 4, 215, 4, - 4, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 751, 752, 753, 754, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 109, 110, 215, 215, 93, - 94, 4, 4, 215, 215, 213, 4, 213, 213, 4, - 4, 105, 215, 215, 4, 109, 110, 4, 112, 4, - 114, 4, 4, 213, 4, 119, 120, 121, 7, 7, - 124, 7, 7, 212, 128, 212, 212, 212, 7, 7, - 5, 212, 136, 5, 212, 212, 5, 5, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 5, 7, 212, 212, 5, 5, 181, 182, 5, - 5, 212, 212, 7, 7, 7, 7, 7, 5, 7, - 5, 212, 212, 212, 5, 212, 176, 181, 182, 212, - 212, 7, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 5, - 7, 3, 7, 212, 7, 212, 7, 212, 212, 7, - 7, 212, 7, 212, 7, 7, 7, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 213, 3, - 6, 6, 3, 6, 6, 3, 6, 3, 3, 6, - 3, 3, 6, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 692, 212, 6, - 4, 6, 8, 4, 4, 4, 4, 4, 4, 215, - 213, 4, 213, 215, 213, 213, 213, 213, 213, 213, - 4, 4, 4, 213, 213, 213, 213, 213, 1005, 213, - 215, 1008, 213, 213, 1011, 4, 4, 1014, 1005, 1014, - 1011, 1005, 1019, 1011, 215, 1022, 1005, 1019, 1025, 1008, - 1014, 4, 1011, 1008, 213, 1014, 1011, 4, 6, 1014, - 1019, 1005, 1039, 1022, 1019, 1005, 1043, 3, 1008, 4, - 1014, 1011, 215, 215, 1014, 1052, 212, 8, 215, 1019, - 1039, 1058, 1022, 1005, 1043, 1005, 1063, 1005, 1063, 212, - 1049, 1005, 1014, 1052, 1014, 212, 1014, 1052, 1005, 1039, - 1014, 1019, 1005, 1043, 1063, 1019, 1005, 1014, 1022, 1049, - 8, 1014, 1052, 1005, 4, 1014, 1019, 1005, 212, 1022, - 1019, 8, 1014, 1063, 1005, 212, 1014, 1019, 1005, 212, - 1022, 1019, 1005, 1014, 1022, 1005, 1005, 1014, 1019, 1005, - 212, 1014, 1019, 1005, 1014, 1014, 1005, 1005, 1014, 1063, - 1005, 1005, 1014, 1005, 1005, 1014, 1014, 1005, 1005, 1014, - 1014, 1005, 1014, 1014, 1005, 1005, 1014, 1014, 1005, 1005, - 1014, 1005, 1005, 1014, 1014, 3, 8, 1014, 1014, 4, - 1014, 1014, 1014, 212, 4, 4, 4, 4, 705, 5, - 4, 4, 7, 4, 4, 4, 714, 501, 510, 977, - 716, 1004, 804, 999, 1017, 1025, 1027, 555, 1034, 212, - 212, 1039, 1005, 1007, 522, 1016, 1237, 212, 212, 1011, - 212, 1010, 1008, 213, 215, 212, 212, 212, 1013, 1192, - 546, 1063, 1022, 213, 215, 213, 212, 212, 552, 775, - 1024, 1065, 1243, 1043, 1049, 1063, 1020, 576, 572, 715, - 1253, 754, 1275, 1295, 1058, -1, 1053, -1, -1, -1, - 1237, -1, 1237, -1, -1, -1, 1243, -1, 525, -1, - -1, 1243, -1, 1237, -1, -1, 1253, -1, 1237, -1, - -1, -1, 1237, -1, 1243, -1, -1, 536, 1243, -1, - -1, -1, -1, 1237, 1253, -1, -1, 1237, 1253, -1, - -1, -1, -1, 1243, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1253, -1, 1237, -1, 1237, -1, 1237, - -1, -1, -1, 1237, -1, 1243, -1, -1, -1, 1243, - 1237, -1, -1, -1, 1237, -1, -1, -1, 1237, -1, - 1243, -1, -1, -1, 1243, 1237, -1, -1, -1, 1237, - -1, 1243, -1, -1, -1, 1243, 1237, -1, -1, -1, - 1237, -1, 1243, -1, 1237, -1, 1243, 1237, 1237, -1, - -1, 1237, -1, -1, -1, 1237, -1, -1, 1237, 1237, - -1, -1, 1237, 1237, -1, 1237, 1237, -1, -1, 1237, - 1237, -1, -1, 1237, -1, -1, 1237, 1237, -1, -1, - 1237, 1237, -1, 1237, 1237, 1237 + 213, 60, 61, 62, 63, 64, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 4, + 4, 4, 3, 3, 501, 181, 182, 8, 8, 3, + 8, 4, 3, 510, 8, 94, 213, 8, 3, 3, + 8, 4, 4, 8, 8, 522, 4, 4, 525, 4, + 525, 510, 4, 4, 4, 4, 4, 213, 522, 536, + 4, 522, 525, 522, 4, 4, 525, 4, 213, 546, + 4, 3, 8, 4, 4, 552, 4, 536, 522, 552, + 3, 552, 522, 4, 522, 522, 522, 546, 4, 525, + 510, 546, 4, 552, 4, 572, 4, 552, 4, 4, + 536, 4, 522, 4, 4, 525, 4, 216, 4, 216, + 216, 4, 522, 572, 4, 522, 536, 214, 4, 4, + 4, 214, 214, 4, 4, 522, 546, 214, 522, 536, + 214, 214, 552, 214, 216, 522, 4, 215, 522, 536, + 215, 522, 216, 215, 214, 216, 4, 214, 522, 4, + 214, 522, 572, 216, 213, 536, 522, 4, 4, 522, + 216, 216, 216, 522, 522, 214, 522, 522, 4, 522, + 522, 522, 1219, 4, 522, 4, 4, 522, 4, 216, + 216, 522, 522, 216, 522, 522, 4, 522, 522, 522, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 4, 4, 4, 4, 214, 4, 4, + 4, 4, 4, 4, 216, 216, 216, 4, 4, 4, + 4, 4, 216, 216, 214, 214, 4, 4, 4, 4, + 4, 4, 214, 4, 4, 4, 213, 714, 4, 716, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 713, 4, 214, 4, 4, 216, 716, 4, 4, + 216, 4, 30, 31, 32, 33, 34, 35, 4, 216, + 216, 216, 214, 4, 751, 752, 214, 754, 4, 214, + 4, 758, 4, 216, 4, 4, 4, 216, 4, 214, + 4, 213, 751, 752, 753, 754, 716, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 7, 7, 7, + 7, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 7, 89, 90, 91, 213, 93, 7, 5, 5, 5, + 213, 751, 752, 753, 754, 213, 213, 105, 5, 107, + 213, 109, 110, 111, 112, 113, 114, 5, 7, 213, + 5, 119, 120, 121, 5, 5, 124, 5, 7, 213, + 128, 129, 7, 7, 7, 7, 5, 7, 136, 213, + 5, 213, 213, 213, 5, 213, 213, 7, 213, 213, + 213, 213, 5, 213, 4, 7, 213, 176, 213, 213, + 213, 213, 213, 213, 213, 7, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 7, 7, 7, 7, 7, + 7, 7, 7, 181, 182, 4, 4, 4, 4, 4, + 4, 4, 30, 31, 32, 33, 34, 35, 4, 4, + 4, 3, 213, 6, 3, 6, 6, 3, 6, 3, + 3, 6, 3, 692, 6, 213, 6, 3, 6, 4, + 4, 4, 4, 4, 4, 4, 4, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 4, 4, 4, + 4, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 4, 4, 4, 3, 93, 94, 214, 8, 6, + 4, 4, 4, 4, 4, 4, 4, 105, 4, 216, + 4, 109, 110, 214, 112, 4, 114, 216, 214, 214, + 214, 119, 120, 121, 4, 216, 124, 4, 214, 214, + 128, 214, 214, 214, 214, 214, 214, 4, 136, 214, + 1007, 214, 214, 1010, 214, 4, 1013, 216, 4, 1016, + 1013, 1016, 1013, 1007, 1021, 214, 1007, 1024, 1007, 1021, + 1027, 1010, 1016, 1016, 1013, 1010, 216, 1016, 1013, 216, + 216, 1016, 1021, 1007, 1041, 1024, 1021, 1007, 1045, 1007, + 1007, 1007, 1016, 181, 182, 216, 1016, 1054, 1016, 1016, + 1016, 1021, 1041, 1021, 1061, 1021, 1045, 1007, 1024, 1066, + 1010, 1066, 1051, 1013, 6, 1054, 1016, 1007, 3, 1054, + 1007, 1021, 4, 1066, 1024, 213, 1016, 1066, 213, 1016, + 1007, 8, 8, 1007, 1021, 4, 8, 1024, 3, 1016, + 1007, 1041, 1016, 1007, 1021, 1045, 1007, 1024, 8, 1016, + 1066, 1051, 1016, 1007, 1054, 1016, 1007, 1021, 4, 4, + 1021, 1007, 1016, 1024, 1007, 1016, 1066, 1021, 1007, 1007, + 1016, 1007, 1007, 1016, 1007, 1007, 1007, 1016, 1016, 1007, + 1016, 1016, 1007, 1016, 1016, 1016, 1007, 1007, 1016, 1007, + 1007, 1016, 1007, 1007, 1007, 1016, 1016, 4, 1016, 1016, + 213, 1016, 1016, 1016, 213, 213, 213, 213, 213, 213, + 4, 4, 7, 5, 4, 213, 4, 213, 213, 4, + 4, 4, 714, 716, 501, 510, 213, 705, 213, 804, + 979, 1006, 214, 216, 214, 213, 213, 213, 1019, 1001, + 214, 216, 213, 1041, 213, 1029, 1007, 1027, 1036, 1018, + 1009, 1241, 522, 1195, 1010, 1012, 1026, 1068, 1066, 546, + 1015, 1013, 1247, 525, 775, 1051, 552, 555, 536, 715, + 1024, 1022, 1045, 1055, 1257, 754, 1279, 1299, 1061, -1, + -1, -1, -1, -1, 1241, -1, 1241, -1, 572, -1, + 1247, -1, -1, 576, -1, 1247, -1, 1241, 1241, -1, + 1257, -1, 1241, -1, -1, -1, 1241, -1, 1247, -1, + -1, -1, 1247, -1, -1, -1, -1, 1241, 1257, -1, + -1, 1241, 1257, 1241, 1241, 1241, -1, 1247, -1, 1247, + -1, 1247, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1241, -1, -1, -1, -1, -1, 1247, -1, -1, + -1, 1241, -1, -1, 1241, -1, -1, 1257, -1, -1, + 1247, -1, -1, -1, 1241, -1, -1, 1241, -1, -1, + 1247, -1, -1, -1, 1241, -1, -1, 1241, -1, -1, + 1241, -1, -1, 1247, -1, -1, 1247, 1241, -1, -1, + 1241, -1, -1, 1247, -1, 1241, -1, -1, 1241, -1, + -1, -1, 1241, 1241, -1, 1241, 1241, -1, 1241, 1241, + 1241, -1, -1, 1241, -1, -1, 1241, -1, -1, -1, + 1241, 1241, -1, 1241, 1241, -1, 1241, 1241, 1241 }; const short Dhcp4Parser::yystos_[] = { - 0, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 0, 5, - 7, 9, 212, 213, 214, 215, 231, 232, 233, 238, - 7, 247, 7, 252, 7, 302, 7, 415, 7, 499, - 7, 515, 7, 450, 7, 456, 7, 480, 7, 391, - 7, 582, 7, 613, 239, 234, 248, 253, 303, 416, - 500, 516, 451, 457, 481, 392, 583, 614, 231, 240, - 241, 212, 236, 237, 10, 249, 251, 11, 14, 26, + 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 0, 5, + 7, 9, 213, 214, 215, 216, 232, 233, 234, 239, + 7, 248, 7, 253, 7, 303, 7, 416, 7, 500, + 7, 516, 7, 451, 7, 457, 7, 481, 7, 392, + 7, 583, 7, 614, 240, 235, 249, 254, 304, 417, + 501, 517, 452, 458, 482, 393, 584, 615, 232, 241, + 242, 213, 237, 238, 10, 250, 252, 11, 14, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 92, 93, 104, 105, 106, 109, 110, 114, 119, 120, 121, 122, 123, 129, 139, 142, 149, 150, 154, 157, 161, 181, 182, 183, 184, 185, - 186, 195, 212, 246, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 269, 270, - 272, 273, 274, 275, 276, 277, 278, 281, 283, 285, - 286, 287, 289, 291, 292, 293, 294, 295, 296, 297, - 298, 316, 318, 326, 328, 369, 378, 385, 399, 409, - 433, 434, 435, 436, 440, 448, 474, 505, 507, 509, - 520, 522, 524, 547, 561, 562, 570, 580, 611, 620, - 644, 15, 16, 19, 22, 23, 24, 25, 246, 300, - 301, 304, 306, 309, 312, 313, 314, 315, 505, 507, + 186, 195, 213, 247, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 270, 271, + 273, 274, 275, 276, 277, 278, 279, 282, 284, 286, + 287, 288, 290, 292, 293, 294, 295, 296, 297, 298, + 299, 317, 319, 327, 329, 370, 379, 386, 400, 410, + 434, 435, 436, 437, 441, 449, 475, 506, 508, 510, + 521, 523, 525, 548, 562, 563, 571, 581, 612, 621, + 645, 15, 16, 19, 22, 23, 24, 25, 247, 301, + 302, 305, 307, 310, 313, 314, 315, 316, 506, 508, 89, 90, 91, 107, 111, 112, 113, 124, 128, 136, - 246, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 270, 273, 274, 275, 276, 277, 278, 281, 283, - 285, 286, 287, 289, 291, 297, 417, 418, 419, 421, - 423, 425, 427, 429, 431, 433, 434, 435, 436, 439, - 474, 493, 505, 507, 509, 520, 522, 524, 544, 108, - 246, 429, 431, 474, 501, 502, 503, 505, 507, 123, - 130, 131, 132, 133, 134, 135, 137, 246, 474, 505, - 507, 517, 518, 519, 520, 522, 524, 526, 530, 532, - 534, 536, 538, 540, 542, 448, 39, 94, 96, 97, - 101, 102, 103, 246, 346, 458, 459, 460, 461, 462, - 463, 464, 466, 468, 470, 471, 473, 505, 507, 95, - 98, 99, 100, 246, 346, 462, 468, 482, 483, 484, - 485, 486, 488, 489, 490, 491, 492, 505, 507, 140, - 141, 246, 393, 394, 395, 397, 162, 163, 164, 165, + 247, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 271, 274, 275, 276, 277, 278, 279, 282, 284, + 286, 287, 288, 290, 292, 298, 418, 419, 420, 422, + 424, 426, 428, 430, 432, 434, 435, 436, 437, 440, + 475, 494, 506, 508, 510, 521, 523, 525, 545, 108, + 247, 430, 432, 475, 502, 503, 504, 506, 508, 123, + 130, 131, 132, 133, 134, 135, 137, 247, 475, 506, + 508, 518, 519, 520, 521, 523, 525, 527, 531, 533, + 535, 537, 539, 541, 543, 449, 39, 94, 96, 97, + 101, 102, 103, 247, 347, 459, 460, 461, 462, 463, + 464, 465, 467, 469, 471, 472, 474, 506, 508, 95, + 98, 99, 100, 247, 347, 463, 469, 483, 484, 485, + 486, 487, 489, 490, 491, 492, 493, 506, 508, 140, + 141, 247, 394, 395, 396, 398, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 181, - 182, 246, 505, 507, 584, 585, 586, 587, 589, 590, - 592, 593, 594, 597, 599, 601, 602, 603, 605, 607, - 609, 12, 13, 615, 616, 617, 619, 6, 3, 4, - 8, 3, 250, 3, 8, 612, 299, 319, 4, 4, - 4, 521, 523, 525, 4, 317, 327, 329, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 268, - 4, 4, 4, 4, 4, 279, 282, 284, 4, 4, - 4, 410, 449, 475, 4, 271, 441, 506, 508, 437, - 4, 4, 4, 370, 548, 510, 386, 400, 4, 379, - 563, 571, 581, 288, 290, 4, 4, 4, 621, 645, - 4, 3, 8, 305, 307, 310, 4, 4, 4, 4, - 3, 8, 422, 424, 426, 494, 420, 428, 4, 432, - 430, 545, 3, 8, 504, 3, 8, 543, 531, 533, - 537, 535, 541, 539, 527, 8, 3, 8, 465, 347, - 4, 469, 467, 472, 4, 8, 3, 487, 4, 4, - 4, 8, 3, 396, 398, 3, 8, 4, 600, 588, - 4, 591, 4, 4, 595, 598, 4, 4, 604, 606, - 608, 610, 3, 8, 618, 4, 3, 8, 231, 231, - 212, 4, 4, 4, 4, 215, 215, 215, 4, 4, - 4, 213, 4, 4, 4, 213, 213, 213, 213, 213, - 215, 214, 214, 214, 213, 213, 4, 213, 213, 215, - 215, 215, 4, 4, 4, 215, 215, 215, 4, 4, - 4, 213, 4, 4, 4, 4, 4, 215, 215, 215, - 4, 4, 4, 4, 4, 213, 4, 4, 4, 4, - 4, 4, 215, 215, 215, 4, 4, 255, 4, 4, - 4, 215, 215, 213, 213, 301, 4, 4, 4, 4, - 4, 4, 213, 4, 4, 4, 418, 4, 502, 4, - 4, 4, 4, 4, 4, 4, 4, 519, 4, 4, - 213, 4, 4, 4, 215, 460, 4, 215, 215, 215, - 484, 4, 4, 394, 215, 4, 4, 213, 4, 213, - 213, 4, 4, 215, 215, 4, 4, 4, 4, 585, - 4, 213, 616, 4, 7, 7, 7, 7, 212, 212, - 212, 7, 7, 5, 212, 177, 178, 179, 180, 215, - 280, 212, 212, 5, 5, 5, 212, 5, 233, 235, - 212, 115, 116, 117, 118, 438, 5, 5, 5, 5, - 7, 7, 7, 7, 7, 212, 212, 5, 7, 5, - 242, 17, 18, 308, 20, 21, 311, 212, 212, 212, - 5, 212, 212, 242, 212, 7, 212, 242, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 235, 212, 212, 212, 18, 175, 596, 176, - 280, 212, 212, 212, 5, 231, 254, 615, 300, 27, - 28, 320, 321, 322, 324, 39, 43, 44, 45, 46, + 182, 247, 506, 508, 585, 586, 587, 588, 590, 591, + 593, 594, 595, 598, 600, 602, 603, 604, 606, 608, + 610, 12, 13, 616, 617, 618, 620, 6, 3, 4, + 8, 3, 251, 3, 8, 613, 300, 320, 4, 4, + 4, 522, 524, 526, 4, 318, 328, 330, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 269, + 4, 4, 4, 4, 4, 280, 283, 285, 4, 4, + 4, 411, 450, 476, 4, 272, 442, 507, 509, 438, + 4, 4, 4, 371, 549, 511, 387, 401, 4, 380, + 564, 572, 582, 289, 291, 4, 4, 4, 622, 646, + 4, 3, 8, 306, 308, 311, 4, 4, 4, 4, + 3, 8, 423, 425, 427, 495, 421, 429, 4, 433, + 431, 546, 3, 8, 505, 3, 8, 544, 532, 534, + 538, 536, 542, 540, 528, 8, 3, 8, 466, 348, + 4, 470, 468, 473, 4, 8, 3, 488, 4, 4, + 4, 8, 3, 397, 399, 3, 8, 4, 601, 589, + 4, 592, 4, 4, 596, 599, 4, 4, 605, 607, + 609, 611, 3, 8, 619, 4, 3, 8, 232, 232, + 213, 4, 4, 4, 4, 216, 216, 216, 4, 4, + 4, 214, 4, 4, 4, 214, 214, 214, 214, 214, + 216, 215, 215, 215, 214, 214, 4, 214, 214, 216, + 216, 216, 4, 4, 4, 216, 216, 216, 4, 4, + 4, 214, 4, 4, 4, 4, 4, 216, 216, 216, + 4, 4, 4, 4, 4, 214, 4, 4, 4, 4, + 4, 4, 216, 216, 216, 4, 4, 256, 4, 4, + 4, 216, 216, 214, 214, 302, 4, 4, 4, 4, + 4, 4, 214, 4, 4, 4, 419, 4, 503, 4, + 4, 4, 4, 4, 4, 4, 4, 520, 4, 4, + 214, 4, 4, 4, 216, 461, 4, 216, 216, 216, + 485, 4, 4, 395, 216, 4, 4, 214, 4, 214, + 214, 4, 4, 216, 216, 4, 4, 4, 4, 586, + 4, 214, 617, 4, 7, 7, 7, 7, 213, 213, + 213, 7, 7, 5, 213, 177, 178, 179, 180, 216, + 281, 213, 213, 5, 5, 5, 213, 5, 234, 236, + 213, 115, 116, 117, 118, 439, 5, 5, 5, 5, + 7, 7, 7, 7, 7, 213, 213, 5, 7, 5, + 243, 17, 18, 309, 20, 21, 312, 213, 213, 213, + 5, 213, 213, 243, 213, 7, 213, 243, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 236, 213, 213, 213, 18, 175, 597, 176, + 281, 213, 213, 213, 5, 232, 255, 616, 301, 27, + 28, 321, 322, 323, 325, 39, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 60, 61, 62, 63, 64, 246, 334, 335, 336, 339, - 341, 343, 345, 346, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 360, 361, 363, 365, 367, 334, - 7, 330, 331, 332, 7, 411, 412, 413, 7, 452, - 453, 454, 7, 476, 477, 478, 7, 442, 443, 444, - 130, 131, 132, 133, 135, 371, 372, 373, 374, 375, - 376, 377, 7, 549, 550, 7, 511, 512, 513, 7, - 387, 388, 389, 143, 144, 145, 146, 147, 148, 401, - 402, 403, 404, 405, 406, 407, 408, 151, 152, 153, - 246, 380, 381, 382, 383, 384, 505, 507, 155, 156, - 246, 505, 507, 564, 565, 566, 568, 158, 159, 160, - 212, 505, 507, 572, 573, 574, 575, 577, 578, 584, - 7, 622, 623, 196, 197, 198, 246, 646, 647, 648, - 649, 650, 243, 7, 495, 496, 497, 138, 526, 528, - 546, 330, 8, 8, 8, 323, 325, 3, 8, 337, - 340, 342, 344, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 358, 4, 362, 364, 366, 368, 3, - 8, 8, 333, 6, 3, 414, 6, 3, 455, 6, - 3, 479, 6, 3, 445, 6, 3, 3, 6, 551, - 3, 6, 514, 6, 3, 390, 6, 3, 4, 4, - 4, 4, 4, 4, 3, 8, 4, 4, 4, 3, - 8, 567, 569, 3, 8, 4, 576, 4, 579, 3, - 8, 8, 624, 3, 6, 4, 4, 4, 3, 8, - 212, 244, 245, 498, 6, 3, 529, 8, 6, 4, - 4, 321, 4, 4, 4, 4, 213, 215, 213, 215, - 213, 213, 213, 213, 213, 213, 4, 213, 4, 4, - 4, 4, 335, 334, 332, 417, 413, 458, 454, 482, - 478, 246, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 270, 273, 274, 275, 276, 277, 278, 281, - 283, 285, 286, 287, 289, 291, 297, 346, 409, 427, - 429, 431, 433, 434, 435, 436, 446, 447, 474, 505, - 507, 520, 522, 524, 544, 444, 372, 125, 126, 127, - 246, 256, 257, 258, 297, 346, 448, 474, 505, 507, - 520, 522, 524, 552, 553, 554, 555, 556, 558, 560, - 550, 517, 513, 393, 389, 213, 213, 213, 213, 213, - 213, 402, 215, 213, 213, 381, 4, 4, 565, 215, - 4, 213, 4, 573, 187, 189, 190, 246, 346, 505, - 507, 625, 626, 627, 628, 630, 623, 215, 215, 215, - 647, 6, 3, 501, 497, 4, 212, 212, 40, 41, - 42, 338, 212, 212, 212, 57, 58, 59, 359, 212, - 212, 212, 212, 8, 8, 8, 8, 3, 8, 557, - 559, 4, 8, 3, 8, 8, 212, 212, 212, 231, - 631, 4, 629, 3, 8, 212, 8, 242, 447, 4, - 4, 215, 554, 4, 213, 4, 626, 212, 212, 5, - 212, 7, 632, 633, 634, 3, 6, 188, 191, 192, - 193, 194, 635, 636, 637, 639, 640, 641, 642, 633, - 638, 4, 4, 4, 643, 3, 8, 4, 215, 213, - 213, 4, 636, 212, 212 + 60, 61, 62, 63, 64, 247, 335, 336, 337, 340, + 342, 344, 346, 347, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 361, 362, 364, 366, 368, 335, + 7, 331, 332, 333, 7, 412, 413, 414, 7, 453, + 454, 455, 7, 477, 478, 479, 7, 443, 444, 445, + 130, 131, 132, 133, 135, 372, 373, 374, 375, 376, + 377, 378, 7, 550, 551, 7, 512, 513, 514, 7, + 388, 389, 390, 143, 144, 145, 146, 147, 148, 402, + 403, 404, 405, 406, 407, 408, 409, 151, 152, 153, + 247, 381, 382, 383, 384, 385, 506, 508, 155, 156, + 247, 506, 508, 565, 566, 567, 569, 158, 159, 160, + 213, 506, 508, 573, 574, 575, 576, 578, 579, 585, + 7, 623, 624, 196, 197, 198, 199, 247, 647, 648, + 649, 650, 651, 652, 244, 7, 496, 497, 498, 138, + 527, 529, 547, 331, 8, 8, 8, 324, 326, 3, + 8, 338, 341, 343, 345, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 359, 4, 363, 365, 367, + 369, 3, 8, 8, 334, 6, 3, 415, 6, 3, + 456, 6, 3, 480, 6, 3, 446, 6, 3, 3, + 6, 552, 3, 6, 515, 6, 3, 391, 6, 3, + 4, 4, 4, 4, 4, 4, 3, 8, 4, 4, + 4, 3, 8, 568, 570, 3, 8, 4, 577, 4, + 580, 3, 8, 8, 625, 3, 6, 4, 4, 4, + 4, 3, 8, 213, 245, 246, 499, 6, 3, 530, + 8, 6, 4, 4, 322, 4, 4, 4, 4, 214, + 216, 214, 216, 214, 214, 214, 214, 214, 214, 4, + 214, 4, 4, 4, 4, 336, 335, 333, 418, 414, + 459, 455, 483, 479, 247, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 271, 274, 275, 276, 277, + 278, 279, 282, 284, 286, 287, 288, 290, 292, 298, + 347, 410, 428, 430, 432, 434, 435, 436, 437, 447, + 448, 475, 506, 508, 521, 523, 525, 545, 445, 373, + 125, 126, 127, 247, 257, 258, 259, 298, 347, 449, + 475, 506, 508, 521, 523, 525, 553, 554, 555, 556, + 557, 559, 561, 551, 518, 514, 394, 390, 214, 214, + 214, 214, 214, 214, 403, 216, 214, 214, 382, 4, + 4, 566, 216, 4, 214, 4, 574, 187, 189, 190, + 247, 347, 506, 508, 626, 627, 628, 629, 631, 624, + 216, 216, 216, 216, 648, 6, 3, 502, 498, 4, + 213, 213, 40, 41, 42, 339, 213, 213, 213, 57, + 58, 59, 360, 213, 213, 213, 213, 8, 8, 8, + 8, 3, 8, 558, 560, 4, 8, 3, 8, 8, + 213, 213, 213, 232, 632, 4, 630, 3, 8, 213, + 8, 243, 448, 4, 4, 216, 555, 4, 214, 4, + 627, 213, 213, 5, 213, 7, 633, 634, 635, 3, + 6, 188, 191, 192, 193, 194, 636, 637, 638, 640, + 641, 642, 643, 634, 639, 4, 4, 4, 644, 3, + 8, 4, 216, 214, 214, 4, 637, 213, 213 }; const short Dhcp4Parser::yyr1_[] = { - 0, 216, 218, 217, 219, 217, 220, 217, 221, 217, - 222, 217, 223, 217, 224, 217, 225, 217, 226, 217, - 227, 217, 228, 217, 229, 217, 230, 217, 231, 231, - 231, 231, 231, 231, 231, 232, 234, 233, 235, 236, - 236, 237, 237, 237, 239, 238, 240, 240, 241, 241, - 241, 243, 242, 244, 244, 245, 245, 245, 246, 248, - 247, 250, 249, 249, 251, 253, 252, 254, 254, 254, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 268, 267, 269, - 271, 270, 272, 273, 274, 275, 276, 277, 279, 278, - 280, 280, 280, 280, 280, 282, 281, 284, 283, 285, - 286, 288, 287, 290, 289, 291, 292, 293, 294, 295, - 296, 297, 299, 298, 300, 300, 300, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 303, 302, 305, - 304, 307, 306, 308, 308, 310, 309, 311, 311, 312, - 313, 314, 315, 317, 316, 319, 318, 320, 320, 320, - 321, 321, 323, 322, 325, 324, 327, 326, 329, 328, - 330, 330, 331, 331, 331, 333, 332, 334, 334, 334, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 337, 336, 338, 338, 338, 340, 339, 342, - 341, 344, 343, 345, 347, 346, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 358, 357, 359, 359, 359, - 360, 362, 361, 364, 363, 366, 365, 368, 367, 370, - 369, 371, 371, 371, 372, 372, 372, 372, 372, 373, - 374, 375, 376, 377, 379, 378, 380, 380, 380, 381, - 381, 381, 381, 381, 381, 382, 383, 384, 386, 385, - 387, 387, 388, 388, 388, 390, 389, 392, 391, 393, - 393, 393, 393, 394, 394, 396, 395, 398, 397, 400, - 399, 401, 401, 401, 402, 402, 402, 402, 402, 402, - 403, 404, 405, 406, 407, 408, 410, 409, 411, 411, - 412, 412, 412, 414, 413, 416, 415, 417, 417, 417, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 420, 419, 422, - 421, 424, 423, 426, 425, 428, 427, 430, 429, 432, - 431, 433, 434, 435, 437, 436, 438, 438, 438, 438, - 439, 441, 440, 442, 442, 443, 443, 443, 445, 444, - 446, 446, 446, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 449, 448, 451, 450, 452, - 452, 453, 453, 453, 455, 454, 457, 456, 458, 458, - 459, 459, 459, 460, 460, 460, 460, 460, 460, 460, - 460, 460, 460, 461, 462, 463, 465, 464, 467, 466, - 469, 468, 470, 472, 471, 473, 475, 474, 476, 476, - 477, 477, 477, 479, 478, 481, 480, 482, 482, 483, - 483, 483, 484, 484, 484, 484, 484, 484, 484, 484, - 484, 484, 485, 487, 486, 488, 489, 490, 491, 492, - 494, 493, 495, 495, 496, 496, 496, 498, 497, 500, - 499, 501, 501, 501, 502, 502, 502, 502, 502, 502, - 502, 504, 503, 506, 505, 508, 507, 510, 509, 511, - 511, 512, 512, 512, 514, 513, 516, 515, 517, 517, - 518, 518, 518, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 519, 519, 519, 519, 519, 519, 521, 520, - 523, 522, 525, 524, 527, 526, 529, 528, 531, 530, - 533, 532, 535, 534, 537, 536, 539, 538, 541, 540, - 543, 542, 545, 544, 546, 546, 548, 547, 549, 549, - 549, 551, 550, 552, 552, 553, 553, 553, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 555, 557, 556, 559, 558, 560, - 561, 563, 562, 564, 564, 564, 565, 565, 565, 565, - 565, 567, 566, 569, 568, 571, 570, 572, 572, 572, - 573, 573, 573, 573, 573, 573, 574, 576, 575, 577, - 579, 578, 581, 580, 583, 582, 584, 584, 584, 585, - 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, - 585, 585, 585, 585, 585, 585, 585, 586, 588, 587, - 589, 591, 590, 592, 593, 595, 594, 596, 596, 598, - 597, 600, 599, 601, 602, 604, 603, 606, 605, 608, - 607, 610, 609, 612, 611, 614, 613, 615, 615, 615, - 616, 616, 618, 617, 619, 621, 620, 622, 622, 622, - 624, 623, 625, 625, 625, 626, 626, 626, 626, 626, - 626, 626, 627, 629, 628, 631, 630, 632, 632, 632, - 634, 633, 635, 635, 635, 636, 636, 636, 636, 636, - 638, 637, 639, 640, 641, 643, 642, 645, 644, 646, - 646, 646, 647, 647, 647, 647, 648, 649, 650 + 0, 217, 219, 218, 220, 218, 221, 218, 222, 218, + 223, 218, 224, 218, 225, 218, 226, 218, 227, 218, + 228, 218, 229, 218, 230, 218, 231, 218, 232, 232, + 232, 232, 232, 232, 232, 233, 235, 234, 236, 237, + 237, 238, 238, 238, 240, 239, 241, 241, 242, 242, + 242, 244, 243, 245, 245, 246, 246, 246, 247, 249, + 248, 251, 250, 250, 252, 254, 253, 255, 255, 255, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 269, 268, 270, + 272, 271, 273, 274, 275, 276, 277, 278, 280, 279, + 281, 281, 281, 281, 281, 283, 282, 285, 284, 286, + 287, 289, 288, 291, 290, 292, 293, 294, 295, 296, + 297, 298, 300, 299, 301, 301, 301, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 304, 303, 306, + 305, 308, 307, 309, 309, 311, 310, 312, 312, 313, + 314, 315, 316, 318, 317, 320, 319, 321, 321, 321, + 322, 322, 324, 323, 326, 325, 328, 327, 330, 329, + 331, 331, 332, 332, 332, 334, 333, 335, 335, 335, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 336, 336, 338, 337, 339, 339, 339, 341, 340, 343, + 342, 345, 344, 346, 348, 347, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 359, 358, 360, 360, 360, + 361, 363, 362, 365, 364, 367, 366, 369, 368, 371, + 370, 372, 372, 372, 373, 373, 373, 373, 373, 374, + 375, 376, 377, 378, 380, 379, 381, 381, 381, 382, + 382, 382, 382, 382, 382, 383, 384, 385, 387, 386, + 388, 388, 389, 389, 389, 391, 390, 393, 392, 394, + 394, 394, 394, 395, 395, 397, 396, 399, 398, 401, + 400, 402, 402, 402, 403, 403, 403, 403, 403, 403, + 404, 405, 406, 407, 408, 409, 411, 410, 412, 412, + 413, 413, 413, 415, 414, 417, 416, 418, 418, 418, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 421, 420, 423, + 422, 425, 424, 427, 426, 429, 428, 431, 430, 433, + 432, 434, 435, 436, 438, 437, 439, 439, 439, 439, + 440, 442, 441, 443, 443, 444, 444, 444, 446, 445, + 447, 447, 447, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 450, 449, 452, 451, 453, + 453, 454, 454, 454, 456, 455, 458, 457, 459, 459, + 460, 460, 460, 461, 461, 461, 461, 461, 461, 461, + 461, 461, 461, 462, 463, 464, 466, 465, 468, 467, + 470, 469, 471, 473, 472, 474, 476, 475, 477, 477, + 478, 478, 478, 480, 479, 482, 481, 483, 483, 484, + 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 486, 488, 487, 489, 490, 491, 492, 493, + 495, 494, 496, 496, 497, 497, 497, 499, 498, 501, + 500, 502, 502, 502, 503, 503, 503, 503, 503, 503, + 503, 505, 504, 507, 506, 509, 508, 511, 510, 512, + 512, 513, 513, 513, 515, 514, 517, 516, 518, 518, + 519, 519, 519, 520, 520, 520, 520, 520, 520, 520, + 520, 520, 520, 520, 520, 520, 520, 520, 522, 521, + 524, 523, 526, 525, 528, 527, 530, 529, 532, 531, + 534, 533, 536, 535, 538, 537, 540, 539, 542, 541, + 544, 543, 546, 545, 547, 547, 549, 548, 550, 550, + 550, 552, 551, 553, 553, 554, 554, 554, 555, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 555, 556, 558, 557, 560, 559, 561, + 562, 564, 563, 565, 565, 565, 566, 566, 566, 566, + 566, 568, 567, 570, 569, 572, 571, 573, 573, 573, + 574, 574, 574, 574, 574, 574, 575, 577, 576, 578, + 580, 579, 582, 581, 584, 583, 585, 585, 585, 586, + 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 586, 586, 586, 586, 586, 586, 587, 589, 588, + 590, 592, 591, 593, 594, 596, 595, 597, 597, 599, + 598, 601, 600, 602, 603, 605, 604, 607, 606, 609, + 608, 611, 610, 613, 612, 615, 614, 616, 616, 616, + 617, 617, 619, 618, 620, 622, 621, 623, 623, 623, + 625, 624, 626, 626, 626, 627, 627, 627, 627, 627, + 627, 627, 628, 630, 629, 632, 631, 633, 633, 633, + 635, 634, 636, 636, 636, 637, 637, 637, 637, 637, + 639, 638, 640, 641, 642, 644, 643, 646, 645, 647, + 647, 647, 648, 648, 648, 648, 648, 649, 650, 651, + 652 }; const signed char @@ -5997,7 +6011,8 @@ namespace isc { namespace dhcp { 1, 1, 3, 0, 4, 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, 0, 4, 0, 6, 1, - 3, 2, 1, 1, 1, 1, 3, 3, 3 + 3, 2, 1, 1, 1, 1, 1, 3, 3, 3, + 3 }; @@ -6071,16 +6086,16 @@ namespace isc { namespace dhcp { "\"reservations-lookup-first\"", "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "\"compatibility\"", - "\"lenient-option-parsing\"", "\"ignore-rai-link-selection\"", - "\"exclude-first-last-24\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP4", - "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4", "SUB_POOL4", - "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF", - "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", - "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"", - "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", - "$@13", "value", "sub_json", "map2", "$@14", "map_value", "map_content", - "not_empty_map", "list_generic", "$@15", "list_content", + "\"lenient-option-parsing\"", "\"ignore-dhcp-server-identifier\"", + "\"ignore-rai-link-selection\"", "\"exclude-first-last-24\"", + "TOPLEVEL_JSON", "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4", + "SUB_SUBNET4", "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEFS", + "SUB_OPTION_DEF", "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", + "SUB_DHCP_DDNS", "SUB_CONFIG_CONTROL", "\"constant string\"", + "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", + "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", + "$@11", "$@12", "$@13", "value", "sub_json", "map2", "$@14", "map_value", + "map_content", "not_empty_map", "list_generic", "$@15", "list_content", "not_empty_list", "list_strings", "$@16", "list_strings_content", "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@17", "global_object", "$@18", "global_object_comma", "sub_dhcp4", "$@19", @@ -6186,7 +6201,8 @@ namespace isc { namespace dhcp { "output_params_list", "output_params", "output", "$@133", "flush", "maxsize", "maxver", "pattern", "$@134", "compatibility", "$@135", "compatibility_params", "compatibility_param", "lenient_option_parsing", - "ignore-rai-link-selection", "exclude_first_last_24", YY_NULLPTR + "ignore_dhcp_server_identifier", "ignore_rai_link_selection", + "exclude_first_last_24", YY_NULLPTR }; #endif @@ -6195,91 +6211,92 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 305, 305, 305, 306, 306, 307, 307, 308, 308, - 309, 309, 310, 310, 311, 311, 312, 312, 313, 313, - 314, 314, 315, 315, 316, 316, 317, 317, 325, 326, - 327, 328, 329, 330, 331, 334, 339, 339, 350, 353, - 354, 357, 362, 368, 373, 373, 380, 381, 384, 388, - 392, 398, 398, 405, 406, 409, 413, 417, 427, 436, - 436, 451, 451, 465, 468, 474, 474, 483, 484, 485, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 560, 566, 572, 578, - 584, 590, 596, 602, 608, 614, 620, 626, 626, 635, - 641, 641, 650, 656, 662, 668, 674, 680, 686, 686, - 695, 698, 701, 704, 707, 713, 713, 722, 722, 731, - 737, 743, 743, 752, 752, 761, 767, 773, 779, 785, - 791, 797, 803, 803, 815, 816, 817, 822, 823, 824, - 825, 826, 827, 828, 829, 830, 831, 834, 834, 843, - 843, 854, 854, 862, 863, 866, 866, 874, 876, 880, - 886, 892, 898, 904, 904, 917, 917, 928, 929, 930, - 935, 936, 939, 939, 958, 958, 976, 976, 989, 989, - 1000, 1001, 1004, 1005, 1006, 1011, 1011, 1021, 1022, 1023, - 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, - 1048, 1049, 1052, 1052, 1060, 1061, 1062, 1065, 1065, 1074, - 1074, 1083, 1083, 1092, 1098, 1098, 1107, 1113, 1119, 1125, - 1131, 1137, 1143, 1149, 1155, 1161, 1161, 1169, 1170, 1171, - 1174, 1180, 1180, 1189, 1189, 1198, 1198, 1207, 1207, 1216, - 1216, 1227, 1228, 1229, 1234, 1235, 1236, 1237, 1238, 1241, - 1246, 1251, 1256, 1261, 1268, 1268, 1281, 1282, 1283, 1288, - 1289, 1290, 1291, 1292, 1293, 1296, 1302, 1308, 1314, 1314, - 1325, 1326, 1329, 1330, 1331, 1336, 1336, 1346, 1346, 1356, - 1357, 1358, 1361, 1364, 1365, 1368, 1368, 1377, 1377, 1386, - 1386, 1398, 1399, 1400, 1405, 1406, 1407, 1408, 1409, 1410, - 1413, 1419, 1425, 1431, 1437, 1443, 1452, 1452, 1466, 1467, - 1470, 1471, 1472, 1481, 1481, 1507, 1507, 1518, 1519, 1520, - 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, - 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, - 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, - 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, - 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1575, 1575, 1584, - 1584, 1593, 1593, 1602, 1602, 1611, 1611, 1620, 1620, 1629, - 1629, 1640, 1646, 1652, 1658, 1658, 1666, 1667, 1668, 1669, - 1672, 1680, 1680, 1692, 1693, 1697, 1698, 1699, 1704, 1704, - 1712, 1713, 1714, 1719, 1720, 1721, 1722, 1723, 1724, 1725, - 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, - 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, - 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, - 1756, 1757, 1758, 1759, 1760, 1767, 1767, 1781, 1781, 1790, - 1791, 1794, 1795, 1796, 1803, 1803, 1818, 1818, 1832, 1833, - 1836, 1837, 1838, 1843, 1844, 1845, 1846, 1847, 1848, 1849, - 1850, 1851, 1852, 1855, 1857, 1863, 1865, 1865, 1874, 1874, - 1883, 1883, 1892, 1894, 1894, 1903, 1913, 1913, 1926, 1927, - 1932, 1933, 1934, 1941, 1941, 1953, 1953, 1965, 1966, 1971, - 1972, 1973, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, - 1988, 1989, 1992, 1994, 1994, 2003, 2005, 2007, 2013, 2019, - 2028, 2028, 2041, 2042, 2045, 2046, 2047, 2052, 2052, 2062, - 2062, 2072, 2073, 2074, 2079, 2080, 2081, 2082, 2083, 2084, - 2085, 2088, 2088, 2097, 2097, 2122, 2122, 2152, 2152, 2163, - 2164, 2167, 2168, 2169, 2174, 2174, 2183, 2183, 2192, 2193, - 2196, 2197, 2198, 2204, 2205, 2206, 2207, 2208, 2209, 2210, - 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2221, 2221, - 2230, 2230, 2239, 2239, 2248, 2248, 2257, 2257, 2268, 2268, - 2277, 2277, 2286, 2286, 2295, 2295, 2304, 2304, 2313, 2313, - 2322, 2322, 2336, 2336, 2347, 2348, 2354, 2354, 2365, 2366, - 2367, 2372, 2372, 2382, 2383, 2386, 2387, 2388, 2393, 2394, - 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, - 2405, 2406, 2407, 2408, 2411, 2413, 2413, 2422, 2422, 2431, - 2439, 2447, 2447, 2458, 2459, 2460, 2465, 2466, 2467, 2468, - 2469, 2472, 2472, 2481, 2481, 2493, 2493, 2506, 2507, 2508, - 2513, 2514, 2515, 2516, 2517, 2518, 2521, 2527, 2527, 2536, - 2542, 2542, 2552, 2552, 2565, 2565, 2575, 2576, 2577, 2582, - 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, - 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2602, 2608, 2608, - 2617, 2623, 2623, 2632, 2638, 2644, 2644, 2653, 2654, 2657, - 2657, 2667, 2667, 2677, 2684, 2691, 2691, 2700, 2700, 2710, - 2710, 2720, 2720, 2732, 2732, 2744, 2744, 2754, 2755, 2756, - 2762, 2763, 2766, 2766, 2777, 2785, 2785, 2798, 2799, 2800, - 2806, 2806, 2814, 2815, 2816, 2821, 2822, 2823, 2824, 2825, - 2826, 2827, 2830, 2836, 2836, 2845, 2845, 2856, 2857, 2858, - 2863, 2863, 2871, 2872, 2873, 2878, 2879, 2880, 2881, 2882, - 2885, 2885, 2894, 2900, 2906, 2912, 2912, 2921, 2921, 2932, - 2933, 2934, 2939, 2940, 2941, 2942, 2945, 2951, 2957 + 0, 306, 306, 306, 307, 307, 308, 308, 309, 309, + 310, 310, 311, 311, 312, 312, 313, 313, 314, 314, + 315, 315, 316, 316, 317, 317, 318, 318, 326, 327, + 328, 329, 330, 331, 332, 335, 340, 340, 351, 354, + 355, 358, 363, 369, 374, 374, 381, 382, 385, 389, + 393, 399, 399, 406, 407, 410, 414, 418, 428, 437, + 437, 452, 452, 466, 469, 475, 475, 484, 485, 486, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 561, 567, 573, 579, + 585, 591, 597, 603, 609, 615, 621, 627, 627, 636, + 642, 642, 651, 657, 663, 669, 675, 681, 687, 687, + 696, 699, 702, 705, 708, 714, 714, 723, 723, 732, + 738, 744, 744, 753, 753, 762, 768, 774, 780, 786, + 792, 798, 804, 804, 816, 817, 818, 823, 824, 825, + 826, 827, 828, 829, 830, 831, 832, 835, 835, 844, + 844, 855, 855, 863, 864, 867, 867, 875, 877, 881, + 887, 893, 899, 905, 905, 918, 918, 929, 930, 931, + 936, 937, 940, 940, 959, 959, 977, 977, 990, 990, + 1001, 1002, 1005, 1006, 1007, 1012, 1012, 1022, 1023, 1024, + 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1053, 1053, 1061, 1062, 1063, 1066, 1066, 1075, + 1075, 1084, 1084, 1093, 1099, 1099, 1108, 1114, 1120, 1126, + 1132, 1138, 1144, 1150, 1156, 1162, 1162, 1170, 1171, 1172, + 1175, 1181, 1181, 1190, 1190, 1199, 1199, 1208, 1208, 1217, + 1217, 1228, 1229, 1230, 1235, 1236, 1237, 1238, 1239, 1242, + 1247, 1252, 1257, 1262, 1269, 1269, 1282, 1283, 1284, 1289, + 1290, 1291, 1292, 1293, 1294, 1297, 1303, 1309, 1315, 1315, + 1326, 1327, 1330, 1331, 1332, 1337, 1337, 1347, 1347, 1357, + 1358, 1359, 1362, 1365, 1366, 1369, 1369, 1378, 1378, 1387, + 1387, 1399, 1400, 1401, 1406, 1407, 1408, 1409, 1410, 1411, + 1414, 1420, 1426, 1432, 1438, 1444, 1453, 1453, 1467, 1468, + 1471, 1472, 1473, 1482, 1482, 1508, 1508, 1519, 1520, 1521, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, + 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, + 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, + 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1576, 1576, 1585, + 1585, 1594, 1594, 1603, 1603, 1612, 1612, 1621, 1621, 1630, + 1630, 1641, 1647, 1653, 1659, 1659, 1667, 1668, 1669, 1670, + 1673, 1681, 1681, 1693, 1694, 1698, 1699, 1700, 1705, 1705, + 1713, 1714, 1715, 1720, 1721, 1722, 1723, 1724, 1725, 1726, + 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, + 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, + 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, + 1757, 1758, 1759, 1760, 1761, 1768, 1768, 1782, 1782, 1791, + 1792, 1795, 1796, 1797, 1804, 1804, 1819, 1819, 1833, 1834, + 1837, 1838, 1839, 1844, 1845, 1846, 1847, 1848, 1849, 1850, + 1851, 1852, 1853, 1856, 1858, 1864, 1866, 1866, 1875, 1875, + 1884, 1884, 1893, 1895, 1895, 1904, 1914, 1914, 1927, 1928, + 1933, 1934, 1935, 1942, 1942, 1954, 1954, 1966, 1967, 1972, + 1973, 1974, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, + 1989, 1990, 1993, 1995, 1995, 2004, 2006, 2008, 2014, 2020, + 2029, 2029, 2042, 2043, 2046, 2047, 2048, 2053, 2053, 2063, + 2063, 2073, 2074, 2075, 2080, 2081, 2082, 2083, 2084, 2085, + 2086, 2089, 2089, 2098, 2098, 2123, 2123, 2153, 2153, 2164, + 2165, 2168, 2169, 2170, 2175, 2175, 2184, 2184, 2193, 2194, + 2197, 2198, 2199, 2205, 2206, 2207, 2208, 2209, 2210, 2211, + 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2222, + 2231, 2231, 2240, 2240, 2249, 2249, 2258, 2258, 2269, 2269, + 2278, 2278, 2287, 2287, 2296, 2296, 2305, 2305, 2314, 2314, + 2323, 2323, 2337, 2337, 2348, 2349, 2355, 2355, 2366, 2367, + 2368, 2373, 2373, 2383, 2384, 2387, 2388, 2389, 2394, 2395, + 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, + 2406, 2407, 2408, 2409, 2412, 2414, 2414, 2423, 2423, 2432, + 2440, 2448, 2448, 2459, 2460, 2461, 2466, 2467, 2468, 2469, + 2470, 2473, 2473, 2482, 2482, 2494, 2494, 2507, 2508, 2509, + 2514, 2515, 2516, 2517, 2518, 2519, 2522, 2528, 2528, 2537, + 2543, 2543, 2553, 2553, 2566, 2566, 2576, 2577, 2578, 2583, + 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, + 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2603, 2609, 2609, + 2618, 2624, 2624, 2633, 2639, 2645, 2645, 2654, 2655, 2658, + 2658, 2668, 2668, 2678, 2685, 2692, 2692, 2701, 2701, 2711, + 2711, 2721, 2721, 2733, 2733, 2745, 2745, 2755, 2756, 2757, + 2763, 2764, 2767, 2767, 2778, 2786, 2786, 2799, 2800, 2801, + 2807, 2807, 2815, 2816, 2817, 2822, 2823, 2824, 2825, 2826, + 2827, 2828, 2831, 2837, 2837, 2846, 2846, 2857, 2858, 2859, + 2864, 2864, 2872, 2873, 2874, 2879, 2880, 2881, 2882, 2883, + 2886, 2886, 2895, 2901, 2907, 2913, 2913, 2922, 2922, 2933, + 2934, 2935, 2940, 2941, 2942, 2943, 2944, 2947, 2953, 2959, + 2965 }; void @@ -6312,9 +6329,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6316 "dhcp4_parser.cc" +#line 6333 "dhcp4_parser.cc" -#line 2963 "dhcp4_parser.yy" +#line 2971 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 7fff948457..a91acc41c8 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.2. +// A Bison parser, made by GNU Bison 3.8.2. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see . +// along with this program. If not, see . // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -104,9 +104,9 @@ using namespace std; #endif # include "location.hh" #include -#ifndef YY_ASSERT +#ifndef PARSER4__ASSERT # include -# define YY_ASSERT assert +# define PARSER4__ASSERT assert #endif @@ -128,17 +128,23 @@ using namespace std; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else @@ -200,7 +206,7 @@ using namespace std; #line 14 "dhcp4_parser.yy" namespace isc { namespace dhcp { -#line 204 "dhcp4_parser.h" +#line 210 "dhcp4_parser.h" @@ -209,44 +215,49 @@ namespace isc { namespace dhcp { class Dhcp4Parser { public: -#ifndef PARSER4_STYPE +#ifdef PARSER4_STYPE +# ifdef __GNUC__ +# pragma GCC message "bison: do not #define PARSER4_STYPE in C++, use %define api.value.type" +# endif + typedef PARSER4_STYPE value_type; +#else /// A buffer to store and retrieve objects. /// /// Sort of a variant, but does not keep track of the nature /// of the stored data, since that knowledge is available /// via the current parser state. - class semantic_type + class value_type { public: /// Type of *this. - typedef semantic_type self_type; + typedef value_type self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () + value_type () YY_NOEXCEPT + : yyraw_ () , yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template - semantic_type (YY_RVREF (T) t) + value_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - YY_ASSERT (sizeof (T) <= size); + PARSER4__ASSERT (sizeof (T) <= size); new (yyas_ ()) T (YY_MOVE (t)); } #if 201103L <= YY_CPLUSPLUS /// Non copyable. - semantic_type (const self_type&) = delete; + value_type (const self_type&) = delete; /// Non copyable. self_type& operator= (const self_type&) = delete; #endif /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~value_type () YY_NOEXCEPT { - YY_ASSERT (!yytypeid_); + PARSER4__ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -255,8 +266,8 @@ namespace isc { namespace dhcp { T& emplace (U&&... u) { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + PARSER4__ASSERT (!yytypeid_); + PARSER4__ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::forward (u)...); } @@ -266,8 +277,8 @@ namespace isc { namespace dhcp { T& emplace () { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + PARSER4__ASSERT (!yytypeid_); + PARSER4__ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (); } @@ -277,8 +288,8 @@ namespace isc { namespace dhcp { T& emplace (const T& t) { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + PARSER4__ASSERT (!yytypeid_); + PARSER4__ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (t); } @@ -307,9 +318,9 @@ namespace isc { namespace dhcp { T& as () YY_NOEXCEPT { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + PARSER4__ASSERT (yytypeid_); + PARSER4__ASSERT (*yytypeid_ == typeid (T)); + PARSER4__ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -318,9 +329,9 @@ namespace isc { namespace dhcp { const T& as () const YY_NOEXCEPT { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + PARSER4__ASSERT (yytypeid_); + PARSER4__ASSERT (*yytypeid_ == typeid (T)); + PARSER4__ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -336,8 +347,8 @@ namespace isc { namespace dhcp { void swap (self_type& that) YY_NOEXCEPT { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); + PARSER4__ASSERT (yytypeid_); + PARSER4__ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as (), that.as ()); } @@ -388,7 +399,7 @@ namespace isc { namespace dhcp { private: #if YY_CPLUSPLUS < 201103L /// Non copyable. - semantic_type (const self_type&); + value_type (const self_type&); /// Non copyable. self_type& operator= (const self_type&); #endif @@ -398,7 +409,7 @@ namespace isc { namespace dhcp { T* yyas_ () YY_NOEXCEPT { - void *yyp = yybuffer_.yyraw; + void *yyp = yyraw_; return static_cast (yyp); } @@ -407,7 +418,7 @@ namespace isc { namespace dhcp { const T* yyas_ () const YY_NOEXCEPT { - const void *yyp = yybuffer_.yyraw; + const void *yyp = yyraw_; return static_cast (yyp); } @@ -445,18 +456,19 @@ namespace isc { namespace dhcp { union { /// Strongest alignment constraints. - long double yyalign_me; + long double yyalign_me_; /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; + char yyraw_[size]; + }; /// Whether the content is built: if defined, the name of the stored type. const std::type_info *yytypeid_; }; -#else - typedef PARSER4_STYPE semantic_type; #endif + /// Backward compatibility (Bison 3.8). + typedef value_type semantic_type; + /// Symbol locations. typedef location location_type; @@ -681,32 +693,33 @@ namespace isc { namespace dhcp { TOKEN_PATTERN = 449, // "pattern" TOKEN_COMPATIBILITY = 450, // "compatibility" TOKEN_LENIENT_OPTION_PARSING = 451, // "lenient-option-parsing" - TOKEN_IGNORE_RAI_LINK_SEL = 452, // "ignore-rai-link-selection" - TOKEN_EXCLUDE_FIRST_LAST_24 = 453, // "exclude-first-last-24" - TOKEN_TOPLEVEL_JSON = 454, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 455, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 456, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 457, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 458, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 459, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 460, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 461, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 462, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 463, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 464, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 465, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 466, // SUB_CONFIG_CONTROL - TOKEN_STRING = 467, // "constant string" - TOKEN_INTEGER = 468, // "integer" - TOKEN_FLOAT = 469, // "floating point" - TOKEN_BOOLEAN = 470 // "boolean" + TOKEN_IGNORE_DHCP_SERVER_ID = 452, // "ignore-dhcp-server-identifier" + TOKEN_IGNORE_RAI_LINK_SEL = 453, // "ignore-rai-link-selection" + TOKEN_EXCLUDE_FIRST_LAST_24 = 454, // "exclude-first-last-24" + TOKEN_TOPLEVEL_JSON = 455, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP4 = 456, // TOPLEVEL_DHCP4 + TOKEN_SUB_DHCP4 = 457, // SUB_DHCP4 + TOKEN_SUB_INTERFACES4 = 458, // SUB_INTERFACES4 + TOKEN_SUB_SUBNET4 = 459, // SUB_SUBNET4 + TOKEN_SUB_POOL4 = 460, // SUB_POOL4 + TOKEN_SUB_RESERVATION = 461, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 462, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 463, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 464, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 465, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 466, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 467, // SUB_CONFIG_CONTROL + TOKEN_STRING = 468, // "constant string" + TOKEN_INTEGER = 469, // "integer" + TOKEN_FLOAT = 470, // "floating point" + TOKEN_BOOLEAN = 471 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; }; /// Token kind, as returned by yylex. - typedef token::yytokentype token_kind_type; + typedef token::token_kind_type token_kind_type; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type token_type; @@ -716,7 +729,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 216, ///< Number of tokens. + YYNTOKENS = 217, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -915,460 +928,462 @@ namespace isc { namespace dhcp { S_PATTERN = 194, // "pattern" S_COMPATIBILITY = 195, // "compatibility" S_LENIENT_OPTION_PARSING = 196, // "lenient-option-parsing" - S_IGNORE_RAI_LINK_SEL = 197, // "ignore-rai-link-selection" - S_EXCLUDE_FIRST_LAST_24 = 198, // "exclude-first-last-24" - S_TOPLEVEL_JSON = 199, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 200, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 201, // SUB_DHCP4 - S_SUB_INTERFACES4 = 202, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 203, // SUB_SUBNET4 - S_SUB_POOL4 = 204, // SUB_POOL4 - S_SUB_RESERVATION = 205, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 206, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 207, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 208, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 209, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 210, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 211, // SUB_CONFIG_CONTROL - S_STRING = 212, // "constant string" - S_INTEGER = 213, // "integer" - S_FLOAT = 214, // "floating point" - S_BOOLEAN = 215, // "boolean" - S_YYACCEPT = 216, // $accept - S_start = 217, // start - S_218_1 = 218, // $@1 - S_219_2 = 219, // $@2 - S_220_3 = 220, // $@3 - S_221_4 = 221, // $@4 - S_222_5 = 222, // $@5 - S_223_6 = 223, // $@6 - S_224_7 = 224, // $@7 - S_225_8 = 225, // $@8 - S_226_9 = 226, // $@9 - S_227_10 = 227, // $@10 - S_228_11 = 228, // $@11 - S_229_12 = 229, // $@12 - S_230_13 = 230, // $@13 - S_value = 231, // value - S_sub_json = 232, // sub_json - S_map2 = 233, // map2 - S_234_14 = 234, // $@14 - S_map_value = 235, // map_value - S_map_content = 236, // map_content - S_not_empty_map = 237, // not_empty_map - S_list_generic = 238, // list_generic - S_239_15 = 239, // $@15 - S_list_content = 240, // list_content - S_not_empty_list = 241, // not_empty_list - S_list_strings = 242, // list_strings - S_243_16 = 243, // $@16 - S_list_strings_content = 244, // list_strings_content - S_not_empty_list_strings = 245, // not_empty_list_strings - S_unknown_map_entry = 246, // unknown_map_entry - S_syntax_map = 247, // syntax_map - S_248_17 = 248, // $@17 - S_global_object = 249, // global_object - S_250_18 = 250, // $@18 - S_global_object_comma = 251, // global_object_comma - S_sub_dhcp4 = 252, // sub_dhcp4 - S_253_19 = 253, // $@19 - S_global_params = 254, // global_params - S_global_param = 255, // global_param - S_valid_lifetime = 256, // valid_lifetime - S_min_valid_lifetime = 257, // min_valid_lifetime - S_max_valid_lifetime = 258, // max_valid_lifetime - S_renew_timer = 259, // renew_timer - S_rebind_timer = 260, // rebind_timer - S_calculate_tee_times = 261, // calculate_tee_times - S_t1_percent = 262, // t1_percent - S_t2_percent = 263, // t2_percent - S_cache_threshold = 264, // cache_threshold - S_cache_max_age = 265, // cache_max_age - S_decline_probation_period = 266, // decline_probation_period - S_server_tag = 267, // server_tag - S_268_20 = 268, // $@20 - S_parked_packet_limit = 269, // parked_packet_limit - S_allocator = 270, // allocator - S_271_21 = 271, // $@21 - S_echo_client_id = 272, // echo_client_id - S_match_client_id = 273, // match_client_id - S_authoritative = 274, // authoritative - S_ddns_send_updates = 275, // ddns_send_updates - S_ddns_override_no_update = 276, // ddns_override_no_update - S_ddns_override_client_update = 277, // ddns_override_client_update - S_ddns_replace_client_name = 278, // ddns_replace_client_name - S_279_22 = 279, // $@22 - S_ddns_replace_client_name_value = 280, // ddns_replace_client_name_value - S_ddns_generated_prefix = 281, // ddns_generated_prefix - S_282_23 = 282, // $@23 - S_ddns_qualifying_suffix = 283, // ddns_qualifying_suffix - S_284_24 = 284, // $@24 - S_ddns_update_on_renew = 285, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 286, // ddns_use_conflict_resolution - S_hostname_char_set = 287, // hostname_char_set - S_288_25 = 288, // $@25 - S_hostname_char_replacement = 289, // hostname_char_replacement - S_290_26 = 290, // $@26 - S_store_extended_info = 291, // store_extended_info - S_statistic_default_sample_count = 292, // statistic_default_sample_count - S_statistic_default_sample_age = 293, // statistic_default_sample_age - S_early_global_reservations_lookup = 294, // early_global_reservations_lookup - S_ip_reservations_unique = 295, // ip_reservations_unique - S_reservations_lookup_first = 296, // reservations_lookup_first - S_offer_lifetime = 297, // offer_lifetime - S_interfaces_config = 298, // interfaces_config - S_299_27 = 299, // $@27 - S_interfaces_config_params = 300, // interfaces_config_params - S_interfaces_config_param = 301, // interfaces_config_param - S_sub_interfaces4 = 302, // sub_interfaces4 - S_303_28 = 303, // $@28 - S_interfaces_list = 304, // interfaces_list - S_305_29 = 305, // $@29 - S_dhcp_socket_type = 306, // dhcp_socket_type - S_307_30 = 307, // $@30 - S_socket_type = 308, // socket_type - S_outbound_interface = 309, // outbound_interface - S_310_31 = 310, // $@31 - S_outbound_interface_value = 311, // outbound_interface_value - S_re_detect = 312, // re_detect - S_service_sockets_require_all = 313, // service_sockets_require_all - S_service_sockets_retry_wait_time = 314, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 315, // service_sockets_max_retries - S_lease_database = 316, // lease_database - S_317_32 = 317, // $@32 - S_sanity_checks = 318, // sanity_checks - S_319_33 = 319, // $@33 - S_sanity_checks_params = 320, // sanity_checks_params - S_sanity_checks_param = 321, // sanity_checks_param - S_lease_checks = 322, // lease_checks - S_323_34 = 323, // $@34 - S_extended_info_checks = 324, // extended_info_checks - S_325_35 = 325, // $@35 - S_hosts_database = 326, // hosts_database - S_327_36 = 327, // $@36 - S_hosts_databases = 328, // hosts_databases - S_329_37 = 329, // $@37 - S_database_list = 330, // database_list - S_not_empty_database_list = 331, // not_empty_database_list - S_database = 332, // database - S_333_38 = 333, // $@38 - S_database_map_params = 334, // database_map_params - S_database_map_param = 335, // database_map_param - S_database_type = 336, // database_type - S_337_39 = 337, // $@39 - S_db_type = 338, // db_type - S_user = 339, // user - S_340_40 = 340, // $@40 - S_password = 341, // password - S_342_41 = 342, // $@41 - S_host = 343, // host - S_344_42 = 344, // $@42 - S_port = 345, // port - S_name = 346, // name - S_347_43 = 347, // $@43 - S_persist = 348, // persist - S_lfc_interval = 349, // lfc_interval - S_readonly = 350, // readonly - S_connect_timeout = 351, // connect_timeout - S_read_timeout = 352, // read_timeout - S_write_timeout = 353, // write_timeout - S_tcp_user_timeout = 354, // tcp_user_timeout - S_max_reconnect_tries = 355, // max_reconnect_tries - S_reconnect_wait_time = 356, // reconnect_wait_time - S_on_fail = 357, // on_fail - S_358_44 = 358, // $@44 - S_on_fail_mode = 359, // on_fail_mode - S_max_row_errors = 360, // max_row_errors - S_trust_anchor = 361, // trust_anchor - S_362_45 = 362, // $@45 - S_cert_file = 363, // cert_file - S_364_46 = 364, // $@46 - S_key_file = 365, // key_file - S_366_47 = 366, // $@47 - S_cipher_list = 367, // cipher_list - S_368_48 = 368, // $@48 - S_host_reservation_identifiers = 369, // host_reservation_identifiers - S_370_49 = 370, // $@49 - S_host_reservation_identifiers_list = 371, // host_reservation_identifiers_list - S_host_reservation_identifier = 372, // host_reservation_identifier - S_duid_id = 373, // duid_id - S_hw_address_id = 374, // hw_address_id - S_circuit_id = 375, // circuit_id - S_client_id = 376, // client_id - S_flex_id = 377, // flex_id - S_dhcp_multi_threading = 378, // dhcp_multi_threading - S_379_50 = 379, // $@50 - S_multi_threading_params = 380, // multi_threading_params - S_multi_threading_param = 381, // multi_threading_param - S_enable_multi_threading = 382, // enable_multi_threading - S_thread_pool_size = 383, // thread_pool_size - S_packet_queue_size = 384, // packet_queue_size - S_hooks_libraries = 385, // hooks_libraries - S_386_51 = 386, // $@51 - S_hooks_libraries_list = 387, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 388, // not_empty_hooks_libraries_list - S_hooks_library = 389, // hooks_library - S_390_52 = 390, // $@52 - S_sub_hooks_library = 391, // sub_hooks_library - S_392_53 = 392, // $@53 - S_hooks_params = 393, // hooks_params - S_hooks_param = 394, // hooks_param - S_library = 395, // library - S_396_54 = 396, // $@54 - S_parameters = 397, // parameters - S_398_55 = 398, // $@55 - S_expired_leases_processing = 399, // expired_leases_processing - S_400_56 = 400, // $@56 - S_expired_leases_params = 401, // expired_leases_params - S_expired_leases_param = 402, // expired_leases_param - S_reclaim_timer_wait_time = 403, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 404, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 405, // hold_reclaimed_time - S_max_reclaim_leases = 406, // max_reclaim_leases - S_max_reclaim_time = 407, // max_reclaim_time - S_unwarned_reclaim_cycles = 408, // unwarned_reclaim_cycles - S_subnet4_list = 409, // subnet4_list - S_410_57 = 410, // $@57 - S_subnet4_list_content = 411, // subnet4_list_content - S_not_empty_subnet4_list = 412, // not_empty_subnet4_list - S_subnet4 = 413, // subnet4 - S_414_58 = 414, // $@58 - S_sub_subnet4 = 415, // sub_subnet4 - S_416_59 = 416, // $@59 - S_subnet4_params = 417, // subnet4_params - S_subnet4_param = 418, // subnet4_param - S_subnet = 419, // subnet - S_420_60 = 420, // $@60 - S_subnet_4o6_interface = 421, // subnet_4o6_interface - S_422_61 = 422, // $@61 - S_subnet_4o6_interface_id = 423, // subnet_4o6_interface_id - S_424_62 = 424, // $@62 - S_subnet_4o6_subnet = 425, // subnet_4o6_subnet - S_426_63 = 426, // $@63 - S_interface = 427, // interface - S_428_64 = 428, // $@64 - S_client_class = 429, // client_class - S_430_65 = 430, // $@65 - S_require_client_classes = 431, // require_client_classes - S_432_66 = 432, // $@66 - S_reservations_global = 433, // reservations_global - S_reservations_in_subnet = 434, // reservations_in_subnet - S_reservations_out_of_pool = 435, // reservations_out_of_pool - S_reservation_mode = 436, // reservation_mode - S_437_67 = 437, // $@67 - S_hr_mode = 438, // hr_mode - S_id = 439, // id - S_shared_networks = 440, // shared_networks - S_441_68 = 441, // $@68 - S_shared_networks_content = 442, // shared_networks_content - S_shared_networks_list = 443, // shared_networks_list - S_shared_network = 444, // shared_network - S_445_69 = 445, // $@69 - S_shared_network_params = 446, // shared_network_params - S_shared_network_param = 447, // shared_network_param - S_option_def_list = 448, // option_def_list - S_449_70 = 449, // $@70 - S_sub_option_def_list = 450, // sub_option_def_list - S_451_71 = 451, // $@71 - S_option_def_list_content = 452, // option_def_list_content - S_not_empty_option_def_list = 453, // not_empty_option_def_list - S_option_def_entry = 454, // option_def_entry - S_455_72 = 455, // $@72 - S_sub_option_def = 456, // sub_option_def - S_457_73 = 457, // $@73 - S_option_def_params = 458, // option_def_params - S_not_empty_option_def_params = 459, // not_empty_option_def_params - S_option_def_param = 460, // option_def_param - S_option_def_name = 461, // option_def_name - S_code = 462, // code - S_option_def_code = 463, // option_def_code - S_option_def_type = 464, // option_def_type - S_465_74 = 465, // $@74 - S_option_def_record_types = 466, // option_def_record_types - S_467_75 = 467, // $@75 - S_space = 468, // space - S_469_76 = 469, // $@76 - S_option_def_space = 470, // option_def_space - S_option_def_encapsulate = 471, // option_def_encapsulate - S_472_77 = 472, // $@77 - S_option_def_array = 473, // option_def_array - S_option_data_list = 474, // option_data_list - S_475_78 = 475, // $@78 - S_option_data_list_content = 476, // option_data_list_content - S_not_empty_option_data_list = 477, // not_empty_option_data_list - S_option_data_entry = 478, // option_data_entry - S_479_79 = 479, // $@79 - S_sub_option_data = 480, // sub_option_data - S_481_80 = 481, // $@80 - S_option_data_params = 482, // option_data_params - S_not_empty_option_data_params = 483, // not_empty_option_data_params - S_option_data_param = 484, // option_data_param - S_option_data_name = 485, // option_data_name - S_option_data_data = 486, // option_data_data - S_487_81 = 487, // $@81 - S_option_data_code = 488, // option_data_code - S_option_data_space = 489, // option_data_space - S_option_data_csv_format = 490, // option_data_csv_format - S_option_data_always_send = 491, // option_data_always_send - S_option_data_never_send = 492, // option_data_never_send - S_pools_list = 493, // pools_list - S_494_82 = 494, // $@82 - S_pools_list_content = 495, // pools_list_content - S_not_empty_pools_list = 496, // not_empty_pools_list - S_pool_list_entry = 497, // pool_list_entry - S_498_83 = 498, // $@83 - S_sub_pool4 = 499, // sub_pool4 - S_500_84 = 500, // $@84 - S_pool_params = 501, // pool_params - S_pool_param = 502, // pool_param - S_pool_entry = 503, // pool_entry - S_504_85 = 504, // $@85 - S_user_context = 505, // user_context - S_506_86 = 506, // $@86 - S_comment = 507, // comment - S_508_87 = 508, // $@87 - S_reservations = 509, // reservations - S_510_88 = 510, // $@88 - S_reservations_list = 511, // reservations_list - S_not_empty_reservations_list = 512, // not_empty_reservations_list - S_reservation = 513, // reservation - S_514_89 = 514, // $@89 - S_sub_reservation = 515, // sub_reservation - S_516_90 = 516, // $@90 - S_reservation_params = 517, // reservation_params - S_not_empty_reservation_params = 518, // not_empty_reservation_params - S_reservation_param = 519, // reservation_param - S_next_server = 520, // next_server - S_521_91 = 521, // $@91 - S_server_hostname = 522, // server_hostname - S_523_92 = 523, // $@92 - S_boot_file_name = 524, // boot_file_name - S_525_93 = 525, // $@93 - S_ip_address = 526, // ip_address - S_527_94 = 527, // $@94 - S_ip_addresses = 528, // ip_addresses - S_529_95 = 529, // $@95 - S_duid = 530, // duid - S_531_96 = 531, // $@96 - S_hw_address = 532, // hw_address - S_533_97 = 533, // $@97 - S_client_id_value = 534, // client_id_value - S_535_98 = 535, // $@98 - S_circuit_id_value = 536, // circuit_id_value - S_537_99 = 537, // $@99 - S_flex_id_value = 538, // flex_id_value - S_539_100 = 539, // $@100 - S_hostname = 540, // hostname - S_541_101 = 541, // $@101 - S_reservation_client_classes = 542, // reservation_client_classes - S_543_102 = 543, // $@102 - S_relay = 544, // relay - S_545_103 = 545, // $@103 - S_relay_map = 546, // relay_map - S_client_classes = 547, // client_classes - S_548_104 = 548, // $@104 - S_client_classes_list = 549, // client_classes_list - S_client_class_entry = 550, // client_class_entry - S_551_105 = 551, // $@105 - S_client_class_params = 552, // client_class_params - S_not_empty_client_class_params = 553, // not_empty_client_class_params - S_client_class_param = 554, // client_class_param - S_client_class_name = 555, // client_class_name - S_client_class_test = 556, // client_class_test - S_557_106 = 557, // $@106 - S_client_class_template_test = 558, // client_class_template_test - S_559_107 = 559, // $@107 - S_only_if_required = 560, // only_if_required - S_dhcp4o6_port = 561, // dhcp4o6_port - S_control_socket = 562, // control_socket - S_563_108 = 563, // $@108 - S_control_socket_params = 564, // control_socket_params - S_control_socket_param = 565, // control_socket_param - S_control_socket_type = 566, // control_socket_type - S_567_109 = 567, // $@109 - S_control_socket_name = 568, // control_socket_name - S_569_110 = 569, // $@110 - S_dhcp_queue_control = 570, // dhcp_queue_control - S_571_111 = 571, // $@111 - S_queue_control_params = 572, // queue_control_params - S_queue_control_param = 573, // queue_control_param - S_enable_queue = 574, // enable_queue - S_queue_type = 575, // queue_type - S_576_112 = 576, // $@112 - S_capacity = 577, // capacity - S_arbitrary_map_entry = 578, // arbitrary_map_entry - S_579_113 = 579, // $@113 - S_dhcp_ddns = 580, // dhcp_ddns - S_581_114 = 581, // $@114 - S_sub_dhcp_ddns = 582, // sub_dhcp_ddns - S_583_115 = 583, // $@115 - S_dhcp_ddns_params = 584, // dhcp_ddns_params - S_dhcp_ddns_param = 585, // dhcp_ddns_param - S_enable_updates = 586, // enable_updates - S_server_ip = 587, // server_ip - S_588_116 = 588, // $@116 - S_server_port = 589, // server_port - S_sender_ip = 590, // sender_ip - S_591_117 = 591, // $@117 - S_sender_port = 592, // sender_port - S_max_queue_size = 593, // max_queue_size - S_ncr_protocol = 594, // ncr_protocol - S_595_118 = 595, // $@118 - S_ncr_protocol_value = 596, // ncr_protocol_value - S_ncr_format = 597, // ncr_format - S_598_119 = 598, // $@119 - S_dep_qualifying_suffix = 599, // dep_qualifying_suffix - S_600_120 = 600, // $@120 - S_dep_override_no_update = 601, // dep_override_no_update - S_dep_override_client_update = 602, // dep_override_client_update - S_dep_replace_client_name = 603, // dep_replace_client_name - S_604_121 = 604, // $@121 - S_dep_generated_prefix = 605, // dep_generated_prefix - S_606_122 = 606, // $@122 - S_dep_hostname_char_set = 607, // dep_hostname_char_set - S_608_123 = 608, // $@123 - S_dep_hostname_char_replacement = 609, // dep_hostname_char_replacement - S_610_124 = 610, // $@124 - S_config_control = 611, // config_control - S_612_125 = 612, // $@125 - S_sub_config_control = 613, // sub_config_control - S_614_126 = 614, // $@126 - S_config_control_params = 615, // config_control_params - S_config_control_param = 616, // config_control_param - S_config_databases = 617, // config_databases - S_618_127 = 618, // $@127 - S_config_fetch_wait_time = 619, // config_fetch_wait_time - S_loggers = 620, // loggers - S_621_128 = 621, // $@128 - S_loggers_entries = 622, // loggers_entries - S_logger_entry = 623, // logger_entry - S_624_129 = 624, // $@129 - S_logger_params = 625, // logger_params - S_logger_param = 626, // logger_param - S_debuglevel = 627, // debuglevel - S_severity = 628, // severity - S_629_130 = 629, // $@130 - S_output_options_list = 630, // output_options_list - S_631_131 = 631, // $@131 - S_output_options_list_content = 632, // output_options_list_content - S_output_entry = 633, // output_entry - S_634_132 = 634, // $@132 - S_output_params_list = 635, // output_params_list - S_output_params = 636, // output_params - S_output = 637, // output - S_638_133 = 638, // $@133 - S_flush = 639, // flush - S_maxsize = 640, // maxsize - S_maxver = 641, // maxver - S_pattern = 642, // pattern - S_643_134 = 643, // $@134 - S_compatibility = 644, // compatibility - S_645_135 = 645, // $@135 - S_compatibility_params = 646, // compatibility_params - S_compatibility_param = 647, // compatibility_param - S_lenient_option_parsing = 648, // lenient_option_parsing - S_649_ignore_rai_link_selection = 649, // ignore-rai-link-selection - S_exclude_first_last_24 = 650 // exclude_first_last_24 + S_IGNORE_DHCP_SERVER_ID = 197, // "ignore-dhcp-server-identifier" + S_IGNORE_RAI_LINK_SEL = 198, // "ignore-rai-link-selection" + S_EXCLUDE_FIRST_LAST_24 = 199, // "exclude-first-last-24" + S_TOPLEVEL_JSON = 200, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP4 = 201, // TOPLEVEL_DHCP4 + S_SUB_DHCP4 = 202, // SUB_DHCP4 + S_SUB_INTERFACES4 = 203, // SUB_INTERFACES4 + S_SUB_SUBNET4 = 204, // SUB_SUBNET4 + S_SUB_POOL4 = 205, // SUB_POOL4 + S_SUB_RESERVATION = 206, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 207, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 208, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 209, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 210, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 211, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 212, // SUB_CONFIG_CONTROL + S_STRING = 213, // "constant string" + S_INTEGER = 214, // "integer" + S_FLOAT = 215, // "floating point" + S_BOOLEAN = 216, // "boolean" + S_YYACCEPT = 217, // $accept + S_start = 218, // start + S_219_1 = 219, // $@1 + S_220_2 = 220, // $@2 + S_221_3 = 221, // $@3 + S_222_4 = 222, // $@4 + S_223_5 = 223, // $@5 + S_224_6 = 224, // $@6 + S_225_7 = 225, // $@7 + S_226_8 = 226, // $@8 + S_227_9 = 227, // $@9 + S_228_10 = 228, // $@10 + S_229_11 = 229, // $@11 + S_230_12 = 230, // $@12 + S_231_13 = 231, // $@13 + S_value = 232, // value + S_sub_json = 233, // sub_json + S_map2 = 234, // map2 + S_235_14 = 235, // $@14 + S_map_value = 236, // map_value + S_map_content = 237, // map_content + S_not_empty_map = 238, // not_empty_map + S_list_generic = 239, // list_generic + S_240_15 = 240, // $@15 + S_list_content = 241, // list_content + S_not_empty_list = 242, // not_empty_list + S_list_strings = 243, // list_strings + S_244_16 = 244, // $@16 + S_list_strings_content = 245, // list_strings_content + S_not_empty_list_strings = 246, // not_empty_list_strings + S_unknown_map_entry = 247, // unknown_map_entry + S_syntax_map = 248, // syntax_map + S_249_17 = 249, // $@17 + S_global_object = 250, // global_object + S_251_18 = 251, // $@18 + S_global_object_comma = 252, // global_object_comma + S_sub_dhcp4 = 253, // sub_dhcp4 + S_254_19 = 254, // $@19 + S_global_params = 255, // global_params + S_global_param = 256, // global_param + S_valid_lifetime = 257, // valid_lifetime + S_min_valid_lifetime = 258, // min_valid_lifetime + S_max_valid_lifetime = 259, // max_valid_lifetime + S_renew_timer = 260, // renew_timer + S_rebind_timer = 261, // rebind_timer + S_calculate_tee_times = 262, // calculate_tee_times + S_t1_percent = 263, // t1_percent + S_t2_percent = 264, // t2_percent + S_cache_threshold = 265, // cache_threshold + S_cache_max_age = 266, // cache_max_age + S_decline_probation_period = 267, // decline_probation_period + S_server_tag = 268, // server_tag + S_269_20 = 269, // $@20 + S_parked_packet_limit = 270, // parked_packet_limit + S_allocator = 271, // allocator + S_272_21 = 272, // $@21 + S_echo_client_id = 273, // echo_client_id + S_match_client_id = 274, // match_client_id + S_authoritative = 275, // authoritative + S_ddns_send_updates = 276, // ddns_send_updates + S_ddns_override_no_update = 277, // ddns_override_no_update + S_ddns_override_client_update = 278, // ddns_override_client_update + S_ddns_replace_client_name = 279, // ddns_replace_client_name + S_280_22 = 280, // $@22 + S_ddns_replace_client_name_value = 281, // ddns_replace_client_name_value + S_ddns_generated_prefix = 282, // ddns_generated_prefix + S_283_23 = 283, // $@23 + S_ddns_qualifying_suffix = 284, // ddns_qualifying_suffix + S_285_24 = 285, // $@24 + S_ddns_update_on_renew = 286, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 287, // ddns_use_conflict_resolution + S_hostname_char_set = 288, // hostname_char_set + S_289_25 = 289, // $@25 + S_hostname_char_replacement = 290, // hostname_char_replacement + S_291_26 = 291, // $@26 + S_store_extended_info = 292, // store_extended_info + S_statistic_default_sample_count = 293, // statistic_default_sample_count + S_statistic_default_sample_age = 294, // statistic_default_sample_age + S_early_global_reservations_lookup = 295, // early_global_reservations_lookup + S_ip_reservations_unique = 296, // ip_reservations_unique + S_reservations_lookup_first = 297, // reservations_lookup_first + S_offer_lifetime = 298, // offer_lifetime + S_interfaces_config = 299, // interfaces_config + S_300_27 = 300, // $@27 + S_interfaces_config_params = 301, // interfaces_config_params + S_interfaces_config_param = 302, // interfaces_config_param + S_sub_interfaces4 = 303, // sub_interfaces4 + S_304_28 = 304, // $@28 + S_interfaces_list = 305, // interfaces_list + S_306_29 = 306, // $@29 + S_dhcp_socket_type = 307, // dhcp_socket_type + S_308_30 = 308, // $@30 + S_socket_type = 309, // socket_type + S_outbound_interface = 310, // outbound_interface + S_311_31 = 311, // $@31 + S_outbound_interface_value = 312, // outbound_interface_value + S_re_detect = 313, // re_detect + S_service_sockets_require_all = 314, // service_sockets_require_all + S_service_sockets_retry_wait_time = 315, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 316, // service_sockets_max_retries + S_lease_database = 317, // lease_database + S_318_32 = 318, // $@32 + S_sanity_checks = 319, // sanity_checks + S_320_33 = 320, // $@33 + S_sanity_checks_params = 321, // sanity_checks_params + S_sanity_checks_param = 322, // sanity_checks_param + S_lease_checks = 323, // lease_checks + S_324_34 = 324, // $@34 + S_extended_info_checks = 325, // extended_info_checks + S_326_35 = 326, // $@35 + S_hosts_database = 327, // hosts_database + S_328_36 = 328, // $@36 + S_hosts_databases = 329, // hosts_databases + S_330_37 = 330, // $@37 + S_database_list = 331, // database_list + S_not_empty_database_list = 332, // not_empty_database_list + S_database = 333, // database + S_334_38 = 334, // $@38 + S_database_map_params = 335, // database_map_params + S_database_map_param = 336, // database_map_param + S_database_type = 337, // database_type + S_338_39 = 338, // $@39 + S_db_type = 339, // db_type + S_user = 340, // user + S_341_40 = 341, // $@40 + S_password = 342, // password + S_343_41 = 343, // $@41 + S_host = 344, // host + S_345_42 = 345, // $@42 + S_port = 346, // port + S_name = 347, // name + S_348_43 = 348, // $@43 + S_persist = 349, // persist + S_lfc_interval = 350, // lfc_interval + S_readonly = 351, // readonly + S_connect_timeout = 352, // connect_timeout + S_read_timeout = 353, // read_timeout + S_write_timeout = 354, // write_timeout + S_tcp_user_timeout = 355, // tcp_user_timeout + S_max_reconnect_tries = 356, // max_reconnect_tries + S_reconnect_wait_time = 357, // reconnect_wait_time + S_on_fail = 358, // on_fail + S_359_44 = 359, // $@44 + S_on_fail_mode = 360, // on_fail_mode + S_max_row_errors = 361, // max_row_errors + S_trust_anchor = 362, // trust_anchor + S_363_45 = 363, // $@45 + S_cert_file = 364, // cert_file + S_365_46 = 365, // $@46 + S_key_file = 366, // key_file + S_367_47 = 367, // $@47 + S_cipher_list = 368, // cipher_list + S_369_48 = 369, // $@48 + S_host_reservation_identifiers = 370, // host_reservation_identifiers + S_371_49 = 371, // $@49 + S_host_reservation_identifiers_list = 372, // host_reservation_identifiers_list + S_host_reservation_identifier = 373, // host_reservation_identifier + S_duid_id = 374, // duid_id + S_hw_address_id = 375, // hw_address_id + S_circuit_id = 376, // circuit_id + S_client_id = 377, // client_id + S_flex_id = 378, // flex_id + S_dhcp_multi_threading = 379, // dhcp_multi_threading + S_380_50 = 380, // $@50 + S_multi_threading_params = 381, // multi_threading_params + S_multi_threading_param = 382, // multi_threading_param + S_enable_multi_threading = 383, // enable_multi_threading + S_thread_pool_size = 384, // thread_pool_size + S_packet_queue_size = 385, // packet_queue_size + S_hooks_libraries = 386, // hooks_libraries + S_387_51 = 387, // $@51 + S_hooks_libraries_list = 388, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 389, // not_empty_hooks_libraries_list + S_hooks_library = 390, // hooks_library + S_391_52 = 391, // $@52 + S_sub_hooks_library = 392, // sub_hooks_library + S_393_53 = 393, // $@53 + S_hooks_params = 394, // hooks_params + S_hooks_param = 395, // hooks_param + S_library = 396, // library + S_397_54 = 397, // $@54 + S_parameters = 398, // parameters + S_399_55 = 399, // $@55 + S_expired_leases_processing = 400, // expired_leases_processing + S_401_56 = 401, // $@56 + S_expired_leases_params = 402, // expired_leases_params + S_expired_leases_param = 403, // expired_leases_param + S_reclaim_timer_wait_time = 404, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 405, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 406, // hold_reclaimed_time + S_max_reclaim_leases = 407, // max_reclaim_leases + S_max_reclaim_time = 408, // max_reclaim_time + S_unwarned_reclaim_cycles = 409, // unwarned_reclaim_cycles + S_subnet4_list = 410, // subnet4_list + S_411_57 = 411, // $@57 + S_subnet4_list_content = 412, // subnet4_list_content + S_not_empty_subnet4_list = 413, // not_empty_subnet4_list + S_subnet4 = 414, // subnet4 + S_415_58 = 415, // $@58 + S_sub_subnet4 = 416, // sub_subnet4 + S_417_59 = 417, // $@59 + S_subnet4_params = 418, // subnet4_params + S_subnet4_param = 419, // subnet4_param + S_subnet = 420, // subnet + S_421_60 = 421, // $@60 + S_subnet_4o6_interface = 422, // subnet_4o6_interface + S_423_61 = 423, // $@61 + S_subnet_4o6_interface_id = 424, // subnet_4o6_interface_id + S_425_62 = 425, // $@62 + S_subnet_4o6_subnet = 426, // subnet_4o6_subnet + S_427_63 = 427, // $@63 + S_interface = 428, // interface + S_429_64 = 429, // $@64 + S_client_class = 430, // client_class + S_431_65 = 431, // $@65 + S_require_client_classes = 432, // require_client_classes + S_433_66 = 433, // $@66 + S_reservations_global = 434, // reservations_global + S_reservations_in_subnet = 435, // reservations_in_subnet + S_reservations_out_of_pool = 436, // reservations_out_of_pool + S_reservation_mode = 437, // reservation_mode + S_438_67 = 438, // $@67 + S_hr_mode = 439, // hr_mode + S_id = 440, // id + S_shared_networks = 441, // shared_networks + S_442_68 = 442, // $@68 + S_shared_networks_content = 443, // shared_networks_content + S_shared_networks_list = 444, // shared_networks_list + S_shared_network = 445, // shared_network + S_446_69 = 446, // $@69 + S_shared_network_params = 447, // shared_network_params + S_shared_network_param = 448, // shared_network_param + S_option_def_list = 449, // option_def_list + S_450_70 = 450, // $@70 + S_sub_option_def_list = 451, // sub_option_def_list + S_452_71 = 452, // $@71 + S_option_def_list_content = 453, // option_def_list_content + S_not_empty_option_def_list = 454, // not_empty_option_def_list + S_option_def_entry = 455, // option_def_entry + S_456_72 = 456, // $@72 + S_sub_option_def = 457, // sub_option_def + S_458_73 = 458, // $@73 + S_option_def_params = 459, // option_def_params + S_not_empty_option_def_params = 460, // not_empty_option_def_params + S_option_def_param = 461, // option_def_param + S_option_def_name = 462, // option_def_name + S_code = 463, // code + S_option_def_code = 464, // option_def_code + S_option_def_type = 465, // option_def_type + S_466_74 = 466, // $@74 + S_option_def_record_types = 467, // option_def_record_types + S_468_75 = 468, // $@75 + S_space = 469, // space + S_470_76 = 470, // $@76 + S_option_def_space = 471, // option_def_space + S_option_def_encapsulate = 472, // option_def_encapsulate + S_473_77 = 473, // $@77 + S_option_def_array = 474, // option_def_array + S_option_data_list = 475, // option_data_list + S_476_78 = 476, // $@78 + S_option_data_list_content = 477, // option_data_list_content + S_not_empty_option_data_list = 478, // not_empty_option_data_list + S_option_data_entry = 479, // option_data_entry + S_480_79 = 480, // $@79 + S_sub_option_data = 481, // sub_option_data + S_482_80 = 482, // $@80 + S_option_data_params = 483, // option_data_params + S_not_empty_option_data_params = 484, // not_empty_option_data_params + S_option_data_param = 485, // option_data_param + S_option_data_name = 486, // option_data_name + S_option_data_data = 487, // option_data_data + S_488_81 = 488, // $@81 + S_option_data_code = 489, // option_data_code + S_option_data_space = 490, // option_data_space + S_option_data_csv_format = 491, // option_data_csv_format + S_option_data_always_send = 492, // option_data_always_send + S_option_data_never_send = 493, // option_data_never_send + S_pools_list = 494, // pools_list + S_495_82 = 495, // $@82 + S_pools_list_content = 496, // pools_list_content + S_not_empty_pools_list = 497, // not_empty_pools_list + S_pool_list_entry = 498, // pool_list_entry + S_499_83 = 499, // $@83 + S_sub_pool4 = 500, // sub_pool4 + S_501_84 = 501, // $@84 + S_pool_params = 502, // pool_params + S_pool_param = 503, // pool_param + S_pool_entry = 504, // pool_entry + S_505_85 = 505, // $@85 + S_user_context = 506, // user_context + S_507_86 = 507, // $@86 + S_comment = 508, // comment + S_509_87 = 509, // $@87 + S_reservations = 510, // reservations + S_511_88 = 511, // $@88 + S_reservations_list = 512, // reservations_list + S_not_empty_reservations_list = 513, // not_empty_reservations_list + S_reservation = 514, // reservation + S_515_89 = 515, // $@89 + S_sub_reservation = 516, // sub_reservation + S_517_90 = 517, // $@90 + S_reservation_params = 518, // reservation_params + S_not_empty_reservation_params = 519, // not_empty_reservation_params + S_reservation_param = 520, // reservation_param + S_next_server = 521, // next_server + S_522_91 = 522, // $@91 + S_server_hostname = 523, // server_hostname + S_524_92 = 524, // $@92 + S_boot_file_name = 525, // boot_file_name + S_526_93 = 526, // $@93 + S_ip_address = 527, // ip_address + S_528_94 = 528, // $@94 + S_ip_addresses = 529, // ip_addresses + S_530_95 = 530, // $@95 + S_duid = 531, // duid + S_532_96 = 532, // $@96 + S_hw_address = 533, // hw_address + S_534_97 = 534, // $@97 + S_client_id_value = 535, // client_id_value + S_536_98 = 536, // $@98 + S_circuit_id_value = 537, // circuit_id_value + S_538_99 = 538, // $@99 + S_flex_id_value = 539, // flex_id_value + S_540_100 = 540, // $@100 + S_hostname = 541, // hostname + S_542_101 = 542, // $@101 + S_reservation_client_classes = 543, // reservation_client_classes + S_544_102 = 544, // $@102 + S_relay = 545, // relay + S_546_103 = 546, // $@103 + S_relay_map = 547, // relay_map + S_client_classes = 548, // client_classes + S_549_104 = 549, // $@104 + S_client_classes_list = 550, // client_classes_list + S_client_class_entry = 551, // client_class_entry + S_552_105 = 552, // $@105 + S_client_class_params = 553, // client_class_params + S_not_empty_client_class_params = 554, // not_empty_client_class_params + S_client_class_param = 555, // client_class_param + S_client_class_name = 556, // client_class_name + S_client_class_test = 557, // client_class_test + S_558_106 = 558, // $@106 + S_client_class_template_test = 559, // client_class_template_test + S_560_107 = 560, // $@107 + S_only_if_required = 561, // only_if_required + S_dhcp4o6_port = 562, // dhcp4o6_port + S_control_socket = 563, // control_socket + S_564_108 = 564, // $@108 + S_control_socket_params = 565, // control_socket_params + S_control_socket_param = 566, // control_socket_param + S_control_socket_type = 567, // control_socket_type + S_568_109 = 568, // $@109 + S_control_socket_name = 569, // control_socket_name + S_570_110 = 570, // $@110 + S_dhcp_queue_control = 571, // dhcp_queue_control + S_572_111 = 572, // $@111 + S_queue_control_params = 573, // queue_control_params + S_queue_control_param = 574, // queue_control_param + S_enable_queue = 575, // enable_queue + S_queue_type = 576, // queue_type + S_577_112 = 577, // $@112 + S_capacity = 578, // capacity + S_arbitrary_map_entry = 579, // arbitrary_map_entry + S_580_113 = 580, // $@113 + S_dhcp_ddns = 581, // dhcp_ddns + S_582_114 = 582, // $@114 + S_sub_dhcp_ddns = 583, // sub_dhcp_ddns + S_584_115 = 584, // $@115 + S_dhcp_ddns_params = 585, // dhcp_ddns_params + S_dhcp_ddns_param = 586, // dhcp_ddns_param + S_enable_updates = 587, // enable_updates + S_server_ip = 588, // server_ip + S_589_116 = 589, // $@116 + S_server_port = 590, // server_port + S_sender_ip = 591, // sender_ip + S_592_117 = 592, // $@117 + S_sender_port = 593, // sender_port + S_max_queue_size = 594, // max_queue_size + S_ncr_protocol = 595, // ncr_protocol + S_596_118 = 596, // $@118 + S_ncr_protocol_value = 597, // ncr_protocol_value + S_ncr_format = 598, // ncr_format + S_599_119 = 599, // $@119 + S_dep_qualifying_suffix = 600, // dep_qualifying_suffix + S_601_120 = 601, // $@120 + S_dep_override_no_update = 602, // dep_override_no_update + S_dep_override_client_update = 603, // dep_override_client_update + S_dep_replace_client_name = 604, // dep_replace_client_name + S_605_121 = 605, // $@121 + S_dep_generated_prefix = 606, // dep_generated_prefix + S_607_122 = 607, // $@122 + S_dep_hostname_char_set = 608, // dep_hostname_char_set + S_609_123 = 609, // $@123 + S_dep_hostname_char_replacement = 610, // dep_hostname_char_replacement + S_611_124 = 611, // $@124 + S_config_control = 612, // config_control + S_613_125 = 613, // $@125 + S_sub_config_control = 614, // sub_config_control + S_615_126 = 615, // $@126 + S_config_control_params = 616, // config_control_params + S_config_control_param = 617, // config_control_param + S_config_databases = 618, // config_databases + S_619_127 = 619, // $@127 + S_config_fetch_wait_time = 620, // config_fetch_wait_time + S_loggers = 621, // loggers + S_622_128 = 622, // $@128 + S_loggers_entries = 623, // loggers_entries + S_logger_entry = 624, // logger_entry + S_625_129 = 625, // $@129 + S_logger_params = 626, // logger_params + S_logger_param = 627, // logger_param + S_debuglevel = 628, // debuglevel + S_severity = 629, // severity + S_630_130 = 630, // $@130 + S_output_options_list = 631, // output_options_list + S_632_131 = 632, // $@131 + S_output_options_list_content = 633, // output_options_list_content + S_output_entry = 634, // output_entry + S_635_132 = 635, // $@132 + S_output_params_list = 636, // output_params_list + S_output_params = 637, // output_params + S_output = 638, // output + S_639_133 = 639, // $@133 + S_flush = 640, // flush + S_maxsize = 641, // maxsize + S_maxver = 642, // maxver + S_pattern = 643, // pattern + S_644_134 = 644, // $@134 + S_compatibility = 645, // compatibility + S_646_135 = 646, // $@135 + S_compatibility_params = 647, // compatibility_params + S_compatibility_param = 648, // compatibility_param + S_lenient_option_parsing = 649, // lenient_option_parsing + S_ignore_dhcp_server_identifier = 650, // ignore_dhcp_server_identifier + S_ignore_rai_link_selection = 651, // ignore_rai_link_selection + S_exclude_first_last_24 = 652 // exclude_first_last_24 }; }; @@ -1391,7 +1406,7 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () + basic_symbol () YY_NOEXCEPT : value () , location () {} @@ -1443,7 +1458,7 @@ namespace isc { namespace dhcp { /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructor for valueless symbols, and symbols from each type. + /// Constructors for typed symbols. #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, location_type&& l) : Base (t) @@ -1455,6 +1470,7 @@ namespace isc { namespace dhcp { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) : Base (t) @@ -1468,6 +1484,7 @@ namespace isc { namespace dhcp { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1481,6 +1498,7 @@ namespace isc { namespace dhcp { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) : Base (t) @@ -1494,6 +1512,7 @@ namespace isc { namespace dhcp { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) : Base (t) @@ -1507,6 +1526,7 @@ namespace isc { namespace dhcp { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1527,8 +1547,10 @@ namespace isc { namespace dhcp { clear (); } + + /// Destroy contents, and record that is empty. - void clear () + void clear () YY_NOEXCEPT { // User destructor. symbol_kind_type yykind = this->kind (); @@ -1594,7 +1616,7 @@ switch (yykind) void move (basic_symbol& s); /// The semantic value. - semantic_type value; + value_type value; /// The location. location_type location; @@ -1609,25 +1631,27 @@ switch (yykind) /// Type access provider for token (enum) based symbols. struct by_kind { + /// The symbol kind as needed by the constructor. + typedef token_kind_type kind_type; + /// Default constructor. - by_kind (); + by_kind () YY_NOEXCEPT; #if 201103L <= YY_CPLUSPLUS /// Move constructor. - by_kind (by_kind&& that); + by_kind (by_kind&& that) YY_NOEXCEPT; #endif /// Copy constructor. - by_kind (const by_kind& that); - - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; + by_kind (const by_kind& that) YY_NOEXCEPT; /// Constructor from (external) token numbers. - by_kind (kind_type t); + by_kind (kind_type t) YY_NOEXCEPT; + + /// Record that this symbol is empty. - void clear (); + void clear () YY_NOEXCEPT; /// Steal the symbol kind from \a that. void move (by_kind& that); @@ -1654,74 +1678,70 @@ switch (yykind) typedef basic_symbol super_type; /// Empty symbol. - symbol_type () {} + symbol_type () YY_NOEXCEPT {} /// Constructor for valueless symbols, and symbols from each type. #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, location_type l) - : super_type(token_type (tok), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL || tok == token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME || tok == token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_EXTENDED_INFO_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_OFFER_LFT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_READ_TIMEOUT || tok == token::TOKEN_WRITE_TIMEOUT || tok == token::TOKEN_TCP_USER_TIMEOUT || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_NEVER_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_ALLOCATOR || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_TEMPLATE_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_IGNORE_RAI_LINK_SEL || tok == token::TOKEN_EXCLUDE_FIRST_LAST_24 || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } + : super_type (token_kind_type (tok), std::move (l)) #else symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) + : super_type (token_kind_type (tok), l) +#endif { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL || tok == token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME || tok == token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_EXTENDED_INFO_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_OFFER_LFT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_READ_TIMEOUT || tok == token::TOKEN_WRITE_TIMEOUT || tok == token::TOKEN_TCP_USER_TIMEOUT || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_NEVER_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_ALLOCATOR || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_TEMPLATE_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_IGNORE_RAI_LINK_SEL || tok == token::TOKEN_EXCLUDE_FIRST_LAST_24 || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } +#if !defined _MSC_VER || defined __clang__ + PARSER4__ASSERT (tok == token::TOKEN_END + || (token::TOKEN_PARSER4_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL)); #endif + } #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, bool v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_BOOLEAN); - } + : super_type (token_kind_type (tok), std::move (v), std::move (l)) #else symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) + : super_type (token_kind_type (tok), v, l) +#endif { - YY_ASSERT (tok == token::TOKEN_BOOLEAN); - } +#if !defined _MSC_VER || defined __clang__ + PARSER4__ASSERT (tok == token::TOKEN_BOOLEAN); #endif + } #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, double v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_FLOAT); - } + : super_type (token_kind_type (tok), std::move (v), std::move (l)) #else symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) + : super_type (token_kind_type (tok), v, l) +#endif { - YY_ASSERT (tok == token::TOKEN_FLOAT); - } +#if !defined _MSC_VER || defined __clang__ + PARSER4__ASSERT (tok == token::TOKEN_FLOAT); #endif + } #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, int64_t v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_INTEGER); - } + : super_type (token_kind_type (tok), std::move (v), std::move (l)) #else symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) + : super_type (token_kind_type (tok), v, l) +#endif { - YY_ASSERT (tok == token::TOKEN_INTEGER); - } +#if !defined _MSC_VER || defined __clang__ + PARSER4__ASSERT (tok == token::TOKEN_INTEGER); #endif + } #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } + : super_type (token_kind_type (tok), std::move (v), std::move (l)) #else symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) + : super_type (token_kind_type (tok), v, l) +#endif { - YY_ASSERT (tok == token::TOKEN_STRING); - } +#if !defined _MSC_VER || defined __clang__ + PARSER4__ASSERT (tok == token::TOKEN_STRING); #endif + } }; /// Build a parser object. @@ -1769,7 +1789,7 @@ switch (yykind) /// YYSYMBOL. No bounds checking. static std::string symbol_name (symbol_kind_type yysymbol); - // Implementation of make_symbol for each symbol type. + // Implementation of make_symbol for each token kind. #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -4725,6 +4745,21 @@ switch (yykind) return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_IGNORE_DHCP_SERVER_ID (location_type l) + { + return symbol_type (token::TOKEN_IGNORE_DHCP_SERVER_ID, std::move (l)); + } +#else + static + symbol_type + make_IGNORE_DHCP_SERVER_ID (const location_type& l) + { + return symbol_type (token::TOKEN_IGNORE_DHCP_SERVER_ID, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5016,9 +5051,9 @@ switch (yykind) { public: context (const Dhcp4Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const { return yyla_; } - symbol_kind_type token () const { return yyla_.kind (); } - const location_type& location () const { return yyla_.location; } + const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } + symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } + const location_type& location () const YY_NOEXCEPT { return yyla_.location; } /// Put in YYARG at most YYARGN of the expected tokens, and return the /// number of tokens stored in YYARG. If YYARG is null, return the @@ -5056,19 +5091,19 @@ switch (yykind) /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue); + static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT; /// Whether the given \c yytable_ value indicates a syntax error. /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue); + static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT; static const short yypact_ninf_; static const signed char yytable_ninf_; /// Convert a scanner token kind \a t to a symbol kind. /// In theory \a t should be a token_kind_type, but character literals - /// are valid, yet not members of the token_type enum. - static symbol_kind_type yytranslate_ (int t); + /// are valid, yet not members of the token_kind_type enum. + static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT; /// Convert the symbol name \a n to a form suitable for a diagnostic. static std::string yytnamerr_ (const char *yystr); @@ -5100,14 +5135,14 @@ switch (yykind) static const short yycheck_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. + // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + // state STATE-NUM. static const short yystos_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. static const short yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. static const signed char yyr2_[]; @@ -5206,7 +5241,7 @@ switch (yykind) typedef typename S::size_type size_type; typedef typename std::ptrdiff_t index_type; - stack (size_type n = 200) + stack (size_type n = 200) YY_NOEXCEPT : seq_ (n) {} @@ -5285,7 +5320,7 @@ switch (yykind) class slice { public: - slice (const stack& stack, index_type range) + slice (const stack& stack, index_type range) YY_NOEXCEPT : stack_ (stack) , range_ (range) {} @@ -5335,13 +5370,13 @@ switch (yykind) void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + void yypop_ (int n = 1) YY_NOEXCEPT; /// Constants. enum { - yylast_ = 1315, ///< Last index in yytable_. - yynnts_ = 435, ///< Number of nonterminal symbols. + yylast_ = 1318, ///< Last index in yytable_. + yynnts_ = 436, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5353,7 +5388,7 @@ switch (yykind) inline Dhcp4Parser::symbol_kind_type - Dhcp4Parser::yytranslate_ (int t) + Dhcp4Parser::yytranslate_ (int t) YY_NOEXCEPT { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. @@ -5408,15 +5443,15 @@ switch (yykind) 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215 + 215, 216 }; // Last valid token kind. - const int code_max = 470; + const int code_max = 471; if (t <= 0) return symbol_kind::S_YYEOF; else if (t <= code_max) - return YY_CAST (symbol_kind_type, translate_table[t]); + return static_cast (translate_table[t]); else return symbol_kind::S_YYUNDEF; } @@ -5466,6 +5501,7 @@ switch (yykind) + template Dhcp4Parser::symbol_kind_type Dhcp4Parser::basic_symbol::type_get () const YY_NOEXCEPT @@ -5473,6 +5509,7 @@ switch (yykind) return this->kind (); } + template bool Dhcp4Parser::basic_symbol::empty () const YY_NOEXCEPT @@ -5524,13 +5561,13 @@ switch (yykind) // by_kind. inline - Dhcp4Parser::by_kind::by_kind () + Dhcp4Parser::by_kind::by_kind () YY_NOEXCEPT : kind_ (symbol_kind::S_YYEMPTY) {} #if 201103L <= YY_CPLUSPLUS inline - Dhcp4Parser::by_kind::by_kind (by_kind&& that) + Dhcp4Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT : kind_ (that.kind_) { that.clear (); @@ -5538,18 +5575,20 @@ switch (yykind) #endif inline - Dhcp4Parser::by_kind::by_kind (const by_kind& that) + Dhcp4Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT : kind_ (that.kind_) {} inline - Dhcp4Parser::by_kind::by_kind (token_kind_type t) + Dhcp4Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT : kind_ (yytranslate_ (t)) {} + + inline void - Dhcp4Parser::by_kind::clear () + Dhcp4Parser::by_kind::clear () YY_NOEXCEPT { kind_ = symbol_kind::S_YYEMPTY; } @@ -5569,6 +5608,7 @@ switch (yykind) return kind_; } + inline Dhcp4Parser::symbol_kind_type Dhcp4Parser::by_kind::type_get () const YY_NOEXCEPT @@ -5576,9 +5616,10 @@ switch (yykind) return this->kind (); } + #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5582 "dhcp4_parser.h" +#line 5623 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 6393212423..3ed7545dc9 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,9 +1,9 @@ -// Generated 202303211002 +// Generated 202303240901 // A Bison parser, made by GNU Bison 3.8.2. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see . +// along with this program. If not, see . // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work