diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 11b3d7c450..cec0ef1994 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp4_lexer.cc" +#line 2 "dhcp4_lexer.cc" -#line 3 "dhcp4_lexer.cc" +#line 4 "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 197 -#define YY_END_OF_BUFFER 198 +#define YY_NUM_RULES 201 +#define YY_END_OF_BUFFER 202 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,203 +700,210 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1776] = +static const flex_int16_t yy_accept[1839] = { 0, - 190, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 196, 10, 11, 196, 1, 190, 187, 190, 190, - 196, 189, 188, 196, 196, 196, 196, 196, 183, 184, - 196, 196, 196, 185, 186, 5, 5, 5, 196, 196, - 196, 10, 11, 0, 0, 179, 0, 0, 0, 0, + 194, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 200, 10, 11, 200, 1, 194, 191, 194, 194, + 200, 193, 192, 200, 200, 200, 200, 200, 187, 188, + 200, 200, 200, 189, 190, 5, 5, 5, 200, 200, + 200, 10, 11, 0, 0, 183, 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, 1, - 190, 190, 0, 189, 190, 3, 2, 6, 0, 190, + 194, 194, 0, 193, 194, 3, 2, 6, 0, 194, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, - 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 186, 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, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 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, 0, 181, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 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, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 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, 195, 193, 0, 192, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, - 158, 0, 0, 88, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 199, 197, + 0, 196, 195, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 162, 0, 0, 88, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 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, 85, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 194, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, - 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 0, 0, 0, 0, 0, 0, 0, 74, - 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, + 0, 0, 0, 198, 195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, + 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, + 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 39, 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, 107, 31, 0, 0, - 36, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 167, 0, 164, 0, 163, 0, 0, 0, 120, 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, 99, - - 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, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 0, 165, 0, + 0, 0, 0, 0, 0, 0, 107, 0, 31, 0, + 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 171, 0, 168, 0, 167, 0, 0, 0, 120, 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, 87, 0, 0, + 99, 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, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 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, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 169, 0, 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, 0, 0, 0, 0, - 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 95, 0, 0, 0, - 0, 0, 0, 100, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 97, 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, 80, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 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, 0, 0, 0, 0, 0, 114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 126, 95, 0, 0, 0, 0, 0, + 0, 100, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 40, 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, 68, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 0, 0, 0, 0, 0, 0, 141, 0, 0, + 0, 172, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 0, 0, 0, 0, 43, 0, 0, + 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 117, - 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 176, 0, 0, 0, 0, 0, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 22, 0, 122, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, - 0, 0, 71, 0, 0, 0, 0, 0, 125, 34, - 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, - 0, 0, 0, 92, 93, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, + 125, 34, 0, 144, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, + 0, 0, 0, 0, 0, 92, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 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, 0, 0, 0, 0, 0, - 0, 176, 0, 72, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, - 0, 0, 148, 0, 0, 146, 0, 137, 136, 0, - 0, 0, 49, 0, 21, 0, 0, 0, 0, 0, - 161, 0, 0, 0, 106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 180, 0, 72, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 134, 0, 139, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 15, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 152, 0, + 0, 150, 0, 141, 140, 0, 0, 0, 49, 0, + 0, 21, 0, 0, 0, 0, 0, 165, 0, 0, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 123, 15, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, + 0, 0, 57, 0, 0, 118, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 78, 0, 170, 0, 169, 0, 175, 0, 0, 0, + 0, 78, 0, 174, 0, 173, 0, 179, 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, 48, 0, 0, + 0, 0, 0, 182, 0, 104, 27, 0, 0, 0, + 50, 139, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 0, 147, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 0, 24, 0, 153, 0, 0, + 0, 52, 0, 0, 0, 0, 0, 96, 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, 48, 0, 0, 0, 0, 178, 0, - 104, 27, 0, 0, 0, 50, 135, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 143, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 0, 24, - 0, 149, 0, 0, 0, 52, 0, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, - 0, 26, 0, 174, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, - 20, 0, 177, 70, 0, 0, 0, 171, 166, 0, - 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 155, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 108, 0, 0, 0, 0, 0, - 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, + 0, 26, 0, 178, 0, 0, 0, 0, 0, 135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 0, 0, 156, 13, 0, 0, 0, 0, 0, - 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, - 0, 0, 0, 0, 0, 131, 0, 55, 54, 19, - 0, 152, 0, 0, 0, 0, 45, 0, 0, 0, - 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 130, 0, 0, 51, 0, 0, 46, 154, 0, 0, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 0, 0, 20, 0, 181, 70, 0, 0, 0, 0, + 175, 170, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 159, 0, 0, + 0, 0, 0, 0, 132, 0, 0, 0, 108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, + 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 13, 0, 0, 0, 0, 0, 0, 0, 138, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, + 0, 0, 0, 0, 131, 0, 55, 54, 19, 0, + 156, 0, 0, 0, 0, 45, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 0, 0, 67, 0, 0, - 0, 0, 0, 0, 153, 0, 105, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 128, 0, 133, - 0, 65, 58, 0, 0, 0, 0, 0, 0, 127, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 90, 61, 0, 0, - 0, 0, 60, 129, 0 + 130, 0, 0, 51, 0, 0, 46, 158, 0, 0, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 67, + 0, 0, 136, 0, 0, 0, 0, 157, 0, 105, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, + + 128, 0, 133, 0, 65, 58, 0, 0, 0, 0, + 0, 0, 127, 0, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 0, 90, + 61, 0, 0, 0, 0, 60, 129, 0 } ; static const YY_CHAR yy_ec[256] = @@ -943,424 +950,438 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1788] = +static const flex_int16_t yy_base[1851] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2176, 2177, 34, 2172, 145, 0, 207, 2177, 214, 221, - 13, 228, 2177, 2152, 118, 25, 2, 6, 2177, 2177, - 73, 11, 17, 2177, 2177, 2177, 104, 2160, 2113, 0, - 2150, 108, 2167, 24, 262, 2177, 2109, 67, 2108, 2114, - 84, 75, 2106, 88, 226, 91, 89, 290, 196, 2105, - 206, 285, 206, 210, 219, 60, 223, 2114, 247, 290, - 315, 303, 231, 2097, 297, 321, 343, 324, 2116, 0, - 380, 387, 401, 408, 424, 2177, 0, 2177, 429, 438, - 216, 249, 220, 315, 335, 266, 2177, 2113, 2154, 2177, + 2239, 2240, 34, 2235, 145, 0, 207, 2240, 214, 221, + 13, 228, 2240, 2215, 118, 25, 2, 6, 2240, 2240, + 73, 11, 17, 2240, 2240, 2240, 104, 2223, 2176, 0, + 2213, 108, 2230, 24, 262, 2240, 2172, 67, 2171, 2177, + 84, 75, 2169, 88, 226, 91, 89, 290, 196, 2168, + 206, 285, 206, 210, 219, 60, 223, 2177, 247, 294, + 315, 307, 231, 2160, 286, 325, 354, 328, 2179, 0, + 366, 382, 397, 411, 404, 2240, 0, 2240, 419, 425, + 216, 249, 220, 315, 319, 329, 2240, 2176, 2217, 2240, - 342, 2177, 421, 2141, 312, 2099, 2109, 400, 10, 2104, - 361, 323, 370, 387, 382, 2149, 0, 474, 393, 2091, - 2088, 2092, 318, 2088, 2096, 411, 2092, 2081, 2082, 2087, - 78, 2097, 2080, 2089, 2089, 95, 2080, 399, 2081, 2079, - 402, 2127, 2131, 2071, 2124, 2064, 2087, 2084, 2084, 2078, - 398, 2071, 2069, 2063, 2068, 2062, 436, 2073, 2066, 2057, - 2056, 2070, 413, 2056, 419, 435, 2050, 482, 191, 445, - 2071, 2068, 2069, 330, 2067, 2102, 2101, 472, 2047, 2049, - 473, 2041, 2058, 2050, 0, 473, 479, 444, 478, 488, - 446, 2049, 2177, 0, 2094, 472, 2039, 2042, 490, 479, + 404, 2240, 438, 2204, 390, 2162, 2172, 331, 10, 2167, + 406, 414, 408, 415, 428, 2212, 0, 491, 412, 2154, + 2151, 2155, 286, 2151, 2159, 246, 2155, 2144, 2145, 2150, + 78, 2160, 2143, 2152, 2152, 95, 2143, 400, 2144, 2142, + 396, 2190, 2194, 2134, 2187, 2127, 2150, 2147, 2147, 2141, + 336, 2134, 2132, 2133, 2125, 2130, 2124, 423, 2135, 2128, + 2119, 2118, 2132, 419, 2118, 408, 413, 2112, 487, 191, + 428, 2133, 2130, 2131, 299, 2129, 2164, 2163, 452, 2109, + 2109, 2110, 459, 2102, 2119, 2111, 0, 458, 439, 438, + 463, 469, 452, 2110, 2240, 0, 2155, 501, 2100, 2103, - 2050, 490, 2095, 500, 2094, 499, 2093, 2177, 545, 2092, - 509, 2051, 2043, 2030, 2046, 2047, 2044, 2041, 2040, 2031, - 515, 2082, 2076, 2040, 2021, 2018, 2026, 2021, 2035, 2031, - 2019, 2031, 2031, 2022, 2006, 2010, 2023, 2025, 2022, 2014, - 2004, 2022, 2177, 2017, 2020, 2001, 2000, 2052, 1999, 2009, - 2012, 536, 2008, 2047, 1995, 2006, 2044, 1989, 2047, 1982, - 1997, 504, 1987, 2003, 1984, 1982, 1982, 1988, 1979, 1978, - 1985, 1975, 2034, 1990, 1989, 1983, 456, 1990, 1985, 1977, - 1967, 1982, 1981, 1976, 1980, 481, 1978, 1964, 1970, 1977, - 1959, 1960, 1963, 1960, 1959, 546, 1954, 1968, 2011, 1970, + 489, 491, 2111, 502, 2156, 504, 2155, 496, 2154, 2240, + 542, 2153, 538, 2112, 2104, 2091, 2107, 2108, 2105, 2102, + 2101, 2092, 512, 2143, 2137, 2101, 2082, 2079, 2087, 2082, + 2096, 2092, 2080, 2092, 2092, 2083, 2067, 2071, 2084, 2086, + 2083, 2075, 2065, 2083, 2240, 2078, 2081, 2062, 2061, 2113, + 2060, 2070, 2073, 519, 2069, 2108, 2053, 2055, 2066, 2104, + 2049, 2107, 2042, 2057, 534, 2047, 2053, 2062, 2043, 2041, + 2041, 2047, 2038, 2037, 2044, 2034, 2093, 2049, 2048, 2042, + 515, 2049, 2044, 2036, 2026, 2041, 2040, 2035, 2039, 410, + 2037, 2023, 2029, 2036, 2018, 2019, 2022, 2019, 2018, 346, - 366, 1961, 526, 2177, 2177, 537, 2177, 2177, 1948, 0, - 241, 508, 1950, 564, 548, 2006, 1957, 521, 2177, 2004, - 2177, 1998, 590, 2177, 542, 1938, 1947, 1995, 1939, 1956, - 1937, 1943, 1995, 1950, 1945, 1948, 1943, 539, 2177, 1945, - 1989, 1983, 1941, 1938, 608, 1944, 1984, 1978, 1931, 1926, - 1923, 1974, 1931, 1920, 1936, 1970, 1916, 615, 1930, 1915, - 1928, 1915, 1925, 1920, 1927, 1922, 1918, 560, 1916, 1919, - 1914, 1900, 1909, 1959, 516, 1953, 2177, 1952, 1902, 1901, - 1900, 1893, 1895, 1899, 1888, 1905, 1900, 580, 1947, 1900, - 1897, 1900, 2177, 1899, 1888, 1888, 1900, 538, 1875, 1876, + 2013, 2027, 2026, 2069, 2028, 499, 2019, 537, 2240, 2240, + 546, 2240, 2240, 2006, 0, 457, 533, 2008, 580, 551, + 2064, 2015, 544, 2240, 2062, 2240, 2056, 594, 2240, 544, + 1996, 2005, 2053, 1997, 2014, 1995, 2001, 2053, 2008, 2003, + 2006, 2001, 536, 2240, 2003, 2047, 2041, 1999, 1996, 583, + 2002, 2042, 2036, 1989, 1984, 1981, 2032, 1989, 1978, 1994, + 2028, 1974, 617, 1988, 1973, 1986, 1973, 1983, 1978, 1985, + 1980, 1976, 562, 1974, 1977, 1972, 1958, 1970, 1966, 2016, + 554, 2010, 2240, 2009, 1959, 1958, 1957, 1950, 1952, 1964, + 1955, 1944, 1961, 1956, 574, 2003, 1956, 1953, 1956, 2240, - 1897, 570, 1879, 1930, 1875, 1889, 1892, 1887, 1873, 1885, - 1884, 1883, 1878, 1881, 1880, 1879, 1878, 572, 1921, 1920, - 2177, 1862, 1861, 623, 1874, 2177, 2177, 1873, 0, 1862, - 1854, 594, 1859, 1912, 1911, 1867, 1909, 2177, 1855, 1907, - 2177, 601, 666, 606, 1906, 1848, 1859, 1852, 1854, 1853, - 1841, 2177, 1846, 1852, 1855, 1838, 1853, 1840, 1839, 2177, - 591, 1841, 1838, 583, 1836, 1838, 2177, 1846, 1843, 1828, - 1841, 1836, 646, 1843, 1831, 1824, 1875, 2177, 1822, 1838, - 1872, 1833, 1830, 1831, 1833, 1867, 1818, 1813, 1812, 1863, - 1807, 539, 1826, 1800, 1807, 1812, 1822, 1861, 2177, 1806, + 1955, 1944, 1944, 1956, 473, 1931, 1932, 1953, 576, 1935, + 1986, 1931, 1945, 1948, 1943, 1929, 1941, 1940, 1939, 1934, + 1937, 1936, 1935, 1934, 557, 1977, 1936, 1975, 2240, 1917, + 1916, 621, 1929, 2240, 2240, 1928, 0, 1917, 1909, 595, + 1914, 1967, 1966, 1922, 1964, 2240, 1910, 1962, 2240, 601, + 668, 600, 1961, 1903, 1914, 1907, 1909, 1908, 1896, 2240, + 1901, 1907, 1910, 1893, 1908, 1895, 1894, 2240, 587, 1896, + 1893, 599, 1891, 1893, 2240, 1901, 1898, 1883, 1896, 1891, + 646, 1898, 1886, 1879, 1930, 2240, 1877, 1893, 1927, 1888, + 1885, 1886, 1888, 1922, 1873, 1868, 1867, 1918, 1862, 596, - 1802, 1800, 1809, 1803, 1810, 1794, 1794, 1804, 1807, 1796, - 1792, 1790, 2177, 1847, 2177, 1789, 1800, 1839, 1784, 1789, - 1798, 1792, 1786, 1795, 1837, 1831, 1793, 1776, 1776, 1771, - 1791, 1766, 1772, 1777, 1770, 1778, 1782, 1765, 1823, 1764, - 1816, 1761, 1762, 1761, 1773, 1762, 2177, 2177, 1762, 1760, - 2177, 1771, 1807, 1767, 0, 1751, 1768, 1808, 1756, 2177, - 2177, 1753, 2177, 1759, 2177, 613, 613, 650, 2177, 1756, - 1755, 1762, 1742, 1741, 1794, 1739, 1792, 1737, 1736, 1735, - 1742, 1735, 1747, 1729, 1729, 1744, 1743, 1742, 1741, 1741, - 1723, 1728, 1769, 1736, 1728, 1773, 1717, 1733, 1732, 2177, + 1881, 1855, 1862, 1867, 1877, 1911, 1915, 2240, 1860, 1856, + 1854, 1863, 1857, 1864, 1848, 1848, 1858, 1846, 1860, 1849, + 1845, 1843, 2240, 1900, 2240, 1842, 1853, 1892, 1837, 1842, + 1851, 1845, 1839, 1848, 1890, 1884, 1846, 1829, 1829, 1824, + 1844, 1819, 1825, 1830, 1823, 1831, 1835, 1818, 1876, 1817, + 1869, 1814, 1815, 1814, 1826, 1815, 2240, 1825, 2240, 1814, + 1812, 2240, 1823, 1859, 1819, 0, 1803, 1820, 1860, 1808, + 2240, 2240, 1805, 2240, 1811, 2240, 620, 602, 660, 2240, + 1808, 1807, 1814, 1794, 1793, 1846, 1791, 1844, 1789, 1788, + 1787, 1794, 1787, 1799, 1781, 1781, 1796, 1795, 1794, 1793, - 1717, 1714, 1772, 1727, 1719, 1725, 1716, 1724, 1709, 1725, - 1707, 1721, 561, 1703, 1697, 1702, 1717, 1714, 1715, 1694, - 1704, 1710, 1753, 1708, 1700, 2177, 1693, 1695, 1704, 1702, - 1741, 1740, 1691, 16, 1700, 1683, 1684, 1687, 1680, 2177, - 1694, 1673, 1677, 1691, 1683, 1728, 1680, 1687, 1725, 2177, - 1670, 1684, 1668, 1682, 1685, 1666, 1718, 1717, 1716, 1715, - 1660, 1713, 1712, 2177, 1657, 1671, 658, 1672, 1671, 1668, - 1668, 1666, 1649, 1654, 1656, 2177, 1662, 1652, 2177, 1699, - 1645, 1702, 612, 561, 1643, 1641, 1648, 1639, 1633, 1691, - 611, 1695, 618, 1689, 1649, 1687, 1686, 1638, 1636, 1644, + 1793, 1775, 1780, 1821, 1788, 1780, 1825, 1769, 1785, 1784, + 2240, 1769, 1766, 1824, 1779, 1771, 1777, 1768, 1776, 1761, + 1777, 1759, 1773, 606, 1755, 1749, 1754, 1769, 1766, 1767, + 1746, 1756, 1762, 1805, 1760, 1752, 1743, 2240, 1744, 1746, + 1755, 1753, 1792, 1791, 1742, 16, 1751, 1788, 1733, 1734, + 1737, 1730, 2240, 1744, 1723, 1727, 1741, 1733, 1778, 1730, + 1737, 1775, 2240, 1720, 1734, 1718, 1732, 1735, 1716, 1768, + 1767, 1766, 1765, 1710, 1763, 1762, 2240, 1707, 1721, 652, + 1722, 1721, 1718, 1718, 1755, 1715, 1698, 1703, 1705, 2240, + 1711, 1701, 2240, 1748, 1694, 1751, 633, 640, 1692, 1690, - 1647, 1631, 1632, 1623, 1678, 1629, 1637, 1638, 1674, 1635, - 1629, 606, 1625, 1670, 1674, 1629, 1628, 2177, 172, 229, - 281, 339, 365, 600, 615, 621, 628, 632, 640, 637, - 682, 689, 639, 631, 641, 688, 646, 696, 2177, 697, - 650, 647, 641, 644, 697, 660, 649, 662, 2177, 658, - 669, 670, 672, 716, 717, 660, 671, 656, 679, 658, - 664, 719, 683, 667, 679, 723, 724, 725, 672, 727, - 691, 686, 693, 689, 674, 686, 687, 694, 680, 2177, - 745, 703, 705, 695, 707, 709, 694, 701, 707, 699, - 713, 718, 759, 2177, 755, 731, 718, 723, 720, 721, + 1697, 1688, 1682, 1740, 620, 1744, 624, 1738, 1698, 1736, + 1735, 1687, 1685, 1693, 1696, 1680, 161, 216, 392, 398, + 462, 495, 591, 555, 580, 639, 620, 667, 673, 637, + 638, 2240, 641, 645, 636, 652, 657, 654, 658, 657, + 658, 656, 664, 661, 706, 707, 663, 655, 665, 712, + 670, 720, 2240, 721, 674, 676, 672, 666, 669, 722, + 685, 674, 687, 2240, 677, 688, 677, 690, 692, 736, + 737, 680, 691, 676, 699, 678, 684, 739, 703, 687, + 699, 743, 744, 745, 692, 747, 711, 706, 713, 709, + 694, 706, 707, 714, 700, 2240, 765, 723, 725, 715, - 766, 719, 717, 726, 2177, 716, 731, 728, 714, 721, - 720, 718, 737, 734, 722, 729, 730, 739, 739, 729, - 727, 726, 737, 733, 790, 747, 732, 738, 754, 744, - 2177, 754, 754, 747, 758, 756, 801, 743, 745, 760, - 747, 807, 764, 750, 753, 2177, 2177, 763, 768, 773, - 761, 771, 773, 2177, 2177, 774, 778, 765, 759, 764, - 782, 769, 819, 770, 822, 771, 829, 2177, 2177, 774, - 778, 777, 774, 834, 787, 777, 778, 774, 787, 798, - 782, 800, 795, 796, 798, 791, 793, 794, 795, 795, - 797, 812, 853, 810, 815, 792, 815, 799, 2177, 806, + 727, 717, 730, 715, 722, 728, 720, 734, 739, 780, + 2240, 776, 752, 739, 744, 741, 742, 787, 740, 738, + 747, 2240, 737, 752, 749, 735, 742, 741, 739, 758, + 755, 743, 750, 751, 760, 760, 750, 748, 747, 758, + 754, 811, 768, 753, 754, 760, 776, 766, 2240, 776, + 776, 769, 780, 778, 823, 765, 767, 782, 769, 829, + 786, 772, 775, 2240, 2240, 785, 790, 795, 783, 793, + 795, 2240, 2240, 796, 783, 801, 788, 782, 787, 805, + 792, 842, 793, 845, 791, 795, 853, 2240, 2240, 798, + 802, 801, 798, 858, 811, 801, 802, 798, 811, 822, - 807, 821, 811, 858, 816, 806, 821, 822, 809, 823, - 2177, 842, 850, 819, 814, 869, 870, 2177, 833, 837, - 878, 826, 821, 822, 834, 841, 830, 831, 827, 830, - 831, 841, 850, 886, 841, 836, 895, 852, 854, 845, - 2177, 847, 857, 859, 844, 860, 854, 901, 867, 851, - 852, 2177, 868, 871, 854, 913, 856, 2177, 873, 876, - 856, 874, 914, 872, 868, 865, 918, 919, 866, 884, - 883, 884, 870, 885, 877, 884, 874, 892, 877, 2177, - 885, 891, 894, 939, 2177, 888, 893, 937, 888, 900, - 895, 899, 897, 895, 897, 907, 952, 896, 901, 897, + 806, 824, 819, 820, 822, 815, 817, 818, 819, 819, + 821, 836, 877, 834, 839, 816, 839, 823, 2240, 830, + 831, 845, 835, 833, 883, 841, 831, 846, 847, 834, + 848, 2240, 867, 875, 844, 839, 894, 895, 2240, 858, + 862, 903, 851, 846, 847, 859, 866, 855, 856, 852, + 855, 856, 866, 875, 911, 866, 861, 920, 877, 879, + 870, 2240, 872, 875, 883, 885, 870, 886, 880, 927, + 893, 877, 878, 2240, 894, 897, 880, 939, 882, 2240, + 899, 902, 882, 900, 940, 898, 894, 891, 944, 945, + 907, 893, 911, 910, 911, 897, 912, 904, 911, 901, - 956, 900, 912, 2177, 900, 908, 906, 957, 919, 905, - 906, 915, 927, 911, 916, 926, 928, 933, 974, 931, - 947, 952, 934, 931, 927, 922, 982, 925, 2177, 925, - 945, 944, 935, 924, 941, 948, 991, 952, 945, 949, - 953, 936, 997, 944, 2177, 994, 941, 944, 943, 943, - 966, 963, 968, 969, 955, 963, 972, 952, 967, 974, - 1016, 2177, 1017, 1018, 969, 979, 981, 970, 966, 973, - 982, 970, 977, 978, 1030, 977, 975, 977, 994, 1035, - 985, 984, 990, 988, 986, 1041, 1042, 1038, 1044, 2177, - 1001, 994, 985, 1004, 992, 1002, 999, 1004, 1000, 1013, + 919, 918, 905, 2240, 913, 919, 922, 967, 2240, 916, + 921, 965, 916, 929, 923, 927, 925, 923, 925, 935, + 980, 924, 929, 925, 984, 928, 940, 2240, 928, 936, + 934, 985, 947, 933, 934, 943, 955, 942, 941, 946, + 956, 957, 962, 1003, 960, 976, 981, 963, 960, 956, + 951, 1011, 954, 2240, 954, 974, 973, 964, 953, 970, + 977, 1020, 981, 974, 978, 982, 965, 1026, 973, 2240, + 1023, 970, 973, 972, 973, 975, 996, 993, 998, 999, + 985, 993, 1002, 982, 997, 1004, 1046, 2240, 1047, 1048, + 999, 1009, 1011, 1000, 996, 1003, 1012, 1000, 1007, 1008, - 1013, 2177, 997, 999, 999, 2177, 1000, 1060, 999, 1019, - 1020, 1022, 1013, 1067, 1068, 1021, 1006, 1027, 1026, 1010, - 1015, 1033, 2177, 1023, 1056, 1047, 1079, 1019, 1041, 1038, - 2177, 1025, 1027, 1044, 1039, 1043, 1088, 1036, 1040, 2177, - 1032, 1049, 1029, 1050, 1040, 2177, 1055, 1055, 1093, 1040, - 1096, 1058, 1044, 1104, 1047, 1059, 1051, 1057, 1053, 1071, - 1072, 1073, 2177, 2177, 1072, 2177, 1057, 1058, 1077, 1067, - 1060, 1072, 1116, 1080, 1069, 1076, 1077, 2177, 1075, 1127, - 1068, 1129, 2177, 1130, 1072, 1078, 1085, 1129, 2177, 2177, - 1077, 2177, 1079, 1093, 1098, 1081, 1140, 1097, 1098, 1099, + 1020, 1061, 1008, 1006, 1008, 1025, 1066, 1016, 1015, 1021, + 1019, 1017, 1012, 1073, 1074, 1070, 1076, 2240, 1033, 1026, + 1017, 1036, 1024, 1034, 1031, 1036, 1032, 1045, 1045, 2240, + 1029, 1031, 1031, 2240, 1032, 1093, 1032, 1051, 1052, 1054, + 1045, 1099, 1100, 1053, 1038, 1052, 1060, 1059, 1043, 1048, + 1066, 2240, 1056, 1089, 1080, 1112, 1052, 1074, 1071, 2240, + 1058, 1060, 1077, 1072, 1076, 1121, 1069, 1073, 2240, 1065, + 1082, 1062, 1083, 1073, 2240, 1088, 1088, 1126, 1073, 1129, + 1087, 1092, 1078, 1138, 1082, 1093, 1085, 1091, 1087, 1105, + 1106, 1107, 2240, 2240, 1106, 2240, 1091, 1092, 1111, 1101, - 1139, 1091, 1096, 1147, 1100, 1096, 1150, 2177, 1097, 1152, - 1153, 1110, 1112, 2177, 2177, 1095, 1157, 1116, 1159, 1101, - 1113, 1118, 1104, 1134, 1165, 2177, 1122, 1115, 1124, 1169, - 1116, 1131, 1167, 1119, 2177, 1115, 1131, 1132, 1133, 1130, - 1174, 1137, 1141, 1128, 1124, 1184, 1137, 1186, 1143, 2177, - 1144, 1137, 1146, 1147, 1145, 1135, 1138, 1138, 1144, 1199, - 1200, 1143, 1202, 1198, 1139, 1155, 1146, 1150, 1163, 1164, - 1210, 2177, 1163, 2177, 2177, 1168, 1162, 1172, 1157, 1158, - 1219, 1163, 1173, 1222, 2177, 1170, 1170, 1172, 1174, 1227, - 1168, 1171, 2177, 1172, 1191, 2177, 1175, 2177, 2177, 1188, + 1094, 1106, 1150, 1114, 1103, 1110, 1111, 1117, 2240, 1110, + 1162, 1103, 1164, 2240, 1165, 1107, 1113, 1120, 1164, 1126, + 2240, 2240, 1113, 2240, 1115, 1129, 1134, 1117, 1176, 1133, + 1134, 1135, 1175, 1127, 1132, 1183, 1136, 1132, 1186, 2240, + 1133, 1188, 1189, 1146, 1148, 2240, 2240, 1131, 1193, 1189, + 1153, 1196, 1138, 1150, 1155, 1141, 1171, 1202, 2240, 1159, + 1152, 1161, 1206, 1153, 1168, 1204, 1156, 2240, 1152, 1168, + 1169, 1170, 1167, 1211, 1174, 1178, 1165, 1161, 1221, 1174, + 1218, 1224, 1181, 2240, 1182, 1175, 1184, 1186, 1183, 1173, + 1177, 1177, 1182, 1237, 1238, 1181, 1240, 1236, 1177, 1192, - 1190, 1191, 2177, 1185, 2177, 1237, 1186, 1239, 1240, 1220, - 2177, 1242, 1199, 1240, 2177, 1188, 1196, 1190, 1187, 1190, - 1193, 1193, 1210, 1249, 1202, 1214, 1217, 1199, 1206, 1196, - 2177, 1218, 2177, 1204, 1205, 1221, 1221, 1224, 1224, 1221, - 1265, 1227, 1219, 2177, 2177, 1229, 2177, 1226, 1231, 1232, - 1229, 1273, 1221, 1236, 1237, 2177, 1225, 1226, 1226, 1232, - 1231, 1242, 2177, 1283, 1230, 2177, 1231, 1231, 1233, 1239, - 2177, 1241, 1295, 1237, 1245, 1248, 1259, 1257, 1301, 1262, - 2177, 1259, 2177, 1256, 2177, 1279, 2177, 1306, 1248, 1308, - 1309, 1266, 1271, 1253, 1313, 1314, 1310, 1274, 1271, 1267, + 1185, 1188, 1201, 1202, 1200, 1249, 2240, 1204, 2240, 2240, + 1209, 1201, 1211, 1196, 1252, 1198, 1259, 1203, 1213, 1262, + 2240, 1210, 1210, 1212, 1214, 1267, 1208, 1211, 2240, 1212, + 1231, 2240, 1215, 2240, 2240, 1228, 1230, 1231, 2240, 1218, + 1226, 2240, 1278, 1227, 1280, 1281, 1261, 2240, 1283, 1240, + 1281, 2240, 1229, 1237, 1231, 1228, 1231, 1234, 1234, 1251, + 1290, 1243, 1255, 1258, 1240, 1247, 1237, 2240, 1259, 1244, + 2240, 1246, 1248, 1263, 1263, 1266, 1266, 1263, 1307, 1269, + 1261, 2240, 2240, 1271, 2240, 1268, 1273, 1274, 1271, 1315, + 1263, 1278, 1279, 1271, 2240, 1268, 1269, 1269, 1275, 1274, - 1260, 1272, 1262, 1267, 1323, 1324, 1320, 1283, 1280, 1324, - 1272, 1277, 1276, 1335, 1291, 1337, 1295, 1339, 1300, 1289, - 1283, 1343, 1285, 1286, 1302, 1302, 1348, 1290, 1307, 1306, - 1290, 1348, 1349, 1296, 1351, 1314, 1315, 2177, 1315, 1316, - 1303, 1302, 1358, 2177, 1316, 1365, 1323, 1336, 2177, 1320, - 2177, 2177, 1311, 1322, 1371, 2177, 2177, 1317, 1322, 1320, - 1370, 1328, 1333, 1324, 1322, 1336, 2177, 2177, 1326, 1377, - 1320, 1325, 1385, 1333, 1343, 1344, 2177, 1389, 1342, 2177, - 1391, 2177, 1334, 1350, 1339, 2177, 1349, 1350, 1356, 1360, - 2177, 1396, 1362, 1355, 1364, 1346, 1353, 1407, 1366, 1365, + 1272, 1286, 2240, 1327, 1274, 2240, 1275, 1275, 1277, 1283, + 2240, 1285, 1339, 1281, 1289, 1292, 1303, 1301, 1345, 1298, + 1307, 2240, 1304, 2240, 1301, 2240, 1324, 2240, 1351, 1293, + 1353, 1354, 1311, 1316, 1298, 1358, 1359, 1355, 1319, 1316, + 1312, 1305, 1317, 1307, 1312, 1368, 1322, 1370, 1366, 1330, + 1326, 1370, 1318, 1324, 1322, 1381, 1337, 1383, 1341, 1385, + 1346, 1335, 1329, 1389, 1331, 1332, 1346, 1349, 1349, 1395, + 1337, 1354, 1350, 1354, 1338, 1396, 1397, 1344, 1399, 1362, + 1363, 2240, 1363, 1364, 1351, 1350, 1406, 2240, 1347, 1365, + 1414, 1372, 1385, 2240, 1369, 2240, 2240, 1360, 1371, 1420, - 1410, 1358, 1412, 1413, 1363, 1367, 1364, 2177, 1417, 1418, - 1367, 1420, 1362, 2177, 1365, 1375, 1419, 1367, 1382, 1369, - 1375, 1375, 1430, 1374, 1373, 1433, 1386, 2177, 1430, 1381, - 1378, 2177, 1392, 2177, 1395, 1440, 1393, 1390, 1391, 1444, - 1403, 1386, 1388, 1385, 1401, 1402, 1411, 2177, 1401, 1453, - 2177, 1412, 2177, 2177, 1396, 1403, 1452, 2177, 2177, 1414, - 2177, 1454, 1416, 1417, 1402, 1403, 1411, 1465, 1461, 1416, - 2177, 1414, 1421, 2177, 1418, 1423, 1421, 1473, 1474, 1417, - 2177, 1432, 1433, 1434, 2177, 1435, 1425, 1437, 1482, 1424, - 1432, 1433, 1446, 2177, 1423, 1483, 1444, 1448, 1433, 1433, + 2240, 2240, 1366, 1371, 1369, 1419, 1377, 1382, 1373, 1371, + 1385, 2240, 1373, 2240, 1376, 1427, 1370, 1375, 1435, 1383, + 1393, 1394, 2240, 1440, 1393, 2240, 1442, 2240, 1385, 1401, + 1389, 2240, 1399, 1400, 1449, 1407, 1411, 2240, 1447, 1413, + 1389, 1407, 1416, 1398, 1405, 1459, 1418, 1417, 1462, 1410, + 1464, 1465, 1415, 1419, 1424, 1417, 2240, 1470, 1471, 1420, + 1473, 1415, 2240, 1418, 1428, 1472, 1420, 1435, 1422, 1428, + 1428, 1483, 1440, 1428, 1427, 1487, 1440, 2240, 1484, 1435, + 1432, 2240, 1446, 2240, 1449, 1494, 1447, 1444, 1445, 2240, + 1498, 1457, 1440, 1442, 1458, 1440, 1456, 1457, 1466, 2240, - 1448, 1441, 1440, 1451, 1438, 2177, 1443, 1499, 1458, 1449, - 1458, 1460, 1464, 2177, 2177, 1505, 1448, 1507, 1508, 1509, - 1467, 1511, 2177, 1507, 1469, 1470, 1457, 1516, 1459, 1464, - 1455, 1520, 1473, 1474, 1464, 1481, 1480, 1521, 1483, 2177, - 1484, 1485, 1530, 1487, 1490, 2177, 1533, 2177, 2177, 2177, - 1494, 2177, 1476, 1536, 1537, 1480, 2177, 1499, 1540, 1499, - 2177, 1490, 1480, 1539, 1505, 1498, 1494, 1491, 1491, 1493, - 2177, 1498, 1508, 2177, 1494, 1506, 2177, 2177, 1511, 1504, - 2177, 1506, 1514, 1559, 1500, 1502, 1499, 1523, 1516, 1507, - 1561, 1508, 1516, 1525, 1518, 1513, 1517, 1529, 1574, 2177, + 1456, 1508, 2240, 1467, 2240, 2240, 1451, 1458, 1512, 1508, + 2240, 2240, 1470, 2240, 1510, 1472, 1473, 1458, 1459, 1467, + 1521, 1517, 1472, 2240, 1484, 1471, 1478, 2240, 1475, 1480, + 1478, 1530, 1531, 1474, 2240, 1489, 1490, 1491, 2240, 1492, + 1482, 1494, 1539, 1540, 1482, 1490, 1491, 1504, 2240, 1481, + 1541, 1502, 2240, 1506, 1491, 1491, 1506, 1499, 1498, 1509, + 1496, 2240, 1501, 1557, 1515, 1517, 1508, 1517, 1519, 1523, + 2240, 2240, 1564, 1507, 1566, 1567, 1568, 1526, 1570, 2240, + 2240, 1566, 1528, 1529, 1516, 1575, 1518, 1523, 1514, 1579, + 1532, 1533, 1523, 1540, 1539, 1580, 1542, 2240, 1539, 1544, - 1520, 1532, 1577, 1526, 1525, 1532, 1519, 1534, 1539, 1584, - 1541, 1586, 1536, 1530, 2177, 1546, 1590, 2177, 1547, 1549, - 1540, 1554, 1550, 1543, 2177, 1597, 2177, 1554, 1599, 1560, - 2177, 1601, 1602, 1557, 1556, 1557, 1547, 2177, 1602, 2177, - 1549, 2177, 2177, 1609, 1551, 1567, 1612, 1573, 1570, 2177, - 1611, 1560, 2177, 1572, 1565, 1620, 1562, 1564, 1579, 1564, - 2177, 1577, 1626, 1627, 1575, 1577, 2177, 2177, 1571, 1587, - 1632, 1633, 2177, 2177, 2177, 1639, 1644, 1649, 1654, 1659, - 1664, 1669, 1672, 1646, 1651, 1653, 1666 + 1545, 1590, 1547, 1550, 2240, 1593, 2240, 2240, 2240, 1554, + 2240, 1536, 1596, 1597, 1540, 2240, 1559, 1600, 1559, 2240, + 1550, 1540, 1599, 1565, 1558, 1554, 1551, 1556, 1552, 1554, + 2240, 1559, 1569, 2240, 1555, 1567, 2240, 2240, 1572, 1565, + 2240, 1567, 1575, 1620, 1561, 1563, 1560, 1584, 1577, 1580, + 1569, 1623, 1570, 1578, 1587, 1580, 1575, 1579, 1591, 1636, + 2240, 1582, 1594, 1639, 1588, 1587, 1642, 1595, 1582, 1597, + 1602, 1647, 1604, 1649, 1599, 1593, 2240, 1609, 1653, 2240, + 1610, 1612, 2240, 1603, 1617, 1613, 1606, 2240, 1660, 2240, + 1617, 1662, 1623, 2240, 1664, 1665, 1620, 1619, 1620, 1610, + + 2240, 1665, 2240, 1612, 2240, 2240, 1672, 1614, 1630, 1675, + 1636, 1633, 2240, 1674, 1623, 2240, 1635, 1628, 1683, 1625, + 1627, 1642, 1627, 2240, 1640, 1689, 1690, 1638, 1640, 2240, + 2240, 1634, 1650, 1695, 1696, 2240, 2240, 2240, 1702, 1707, + 1712, 1717, 1722, 1727, 1732, 1735, 1709, 1714, 1716, 1729 } ; -static const flex_int16_t yy_def[1788] = +static const flex_int16_t yy_def[1851] = { 0, - 1776, 1776, 1777, 1777, 1776, 1776, 1776, 1776, 1776, 1776, - 1775, 1775, 1775, 1775, 1775, 1778, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1779, - 1775, 1775, 1775, 1780, 15, 1775, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1781, 45, 45, + 1839, 1839, 1840, 1840, 1839, 1839, 1839, 1839, 1839, 1839, + 1838, 1838, 1838, 1838, 1838, 1841, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1842, + 1838, 1838, 1838, 1843, 15, 1838, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1844, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1778, - 1775, 1775, 1775, 1775, 1775, 1775, 1782, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1779, 1775, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1841, + 1838, 1838, 1838, 1838, 1838, 1838, 1845, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1842, 1838, - 1780, 1775, 1775, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1783, 45, 1781, 45, 45, + 1843, 1838, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1846, 45, 1844, 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, 1782, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1784, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1845, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1847, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1783, 1775, 1781, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1846, 1838, + 1844, 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, 1775, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1838, 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, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1785, - 45, 45, 45, 45, 45, 45, 45, 45, 1775, 45, - 1775, 45, 1781, 1775, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1775, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1848, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 45, 1838, 45, 1844, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 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, 1775, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1775, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 1775, 1775, 1775, 1786, 45, - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 1775, 45, 1781, 45, 45, 45, 45, 45, 45, 45, - 45, 1775, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 45, 45, 1775, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 45, 45, 1838, 1838, 1838, 1849, 45, 45, 45, + 45, 45, 45, 45, 45, 1838, 45, 45, 1838, 45, + 1844, 45, 45, 45, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, + 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1775, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1775, 45, 1775, 45, 45, 45, 45, 45, + 45, 45, 1838, 45, 1838, 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, 1775, 1775, 45, 45, - 1775, 45, 45, 1775, 1787, 45, 45, 45, 45, 1775, - 1775, 45, 1775, 45, 1775, 45, 45, 45, 1775, 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, 1775, - - 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, 1775, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1775, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1775, 45, 45, 1775, 45, + 45, 45, 45, 45, 45, 45, 1838, 45, 1838, 45, + 45, 1838, 45, 45, 1838, 1850, 45, 45, 45, 45, + 1838, 1838, 45, 1838, 45, 1838, 45, 45, 45, 1838, 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, 1775, 45, 45, + 1838, 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, 1775, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1775, 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, 1775, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1775, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 1775, 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, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1775, 1775, 45, 45, 45, - 45, 45, 45, 1775, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1775, 1775, 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, 1775, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1775, 45, 45, 45, 45, 45, 1775, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 1775, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1775, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1775, 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, 1775, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 1775, 45, 45, 45, 1775, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1775, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 45, 1775, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1775, 1775, 45, 1775, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 45, 45, 1775, 45, 45, 45, 45, 45, 1775, 1775, - 45, 1775, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 45, 45, 45, 1775, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1775, 45, 45, 45, 45, - 45, 45, 45, 45, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1775, 45, 1775, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1775, 45, 45, 45, 45, 45, - 45, 45, 1775, 45, 45, 1775, 45, 1775, 1775, 45, - - 45, 45, 1775, 45, 1775, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 1775, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1775, 1775, 45, 1775, 45, 45, 45, - 45, 45, 45, 45, 45, 1775, 45, 45, 45, 45, - 45, 45, 1775, 45, 45, 1775, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 1775, 45, 1775, 45, 1775, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1838, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1838, + 45, 45, 1838, 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, 1775, 45, 45, - 45, 45, 45, 1775, 45, 45, 45, 45, 1775, 45, - 1775, 1775, 45, 45, 45, 1775, 1775, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1775, 1775, 45, 45, - 45, 45, 45, 45, 45, 45, 1775, 45, 45, 1775, - 45, 1775, 45, 45, 45, 1775, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 45, 45, 45, 1775, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 45, 1775, 45, 1775, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1775, 45, 45, - 1775, 45, 1775, 1775, 45, 45, 45, 1775, 1775, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 1775, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 1775, 45, 45, 45, 45, 45, - 45, 45, 45, 1775, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 1775, 45, 45, 45, 45, - 45, 45, 45, 1775, 1775, 45, 45, 45, 45, 45, - 45, 45, 1775, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 45, 45, 45, 1775, 45, 1775, 1775, 1775, - 45, 1775, 45, 45, 45, 45, 1775, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 1775, 45, 45, 1775, 1775, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1775, + 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 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, 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1775, 45, 45, 1775, 45, 45, - 45, 45, 45, 45, 1775, 45, 1775, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 45, 1775, 45, 1775, - 45, 1775, 1775, 45, 45, 45, 45, 45, 45, 1775, - 45, 45, 1775, 45, 45, 45, 45, 45, 45, 45, - 1775, 45, 45, 45, 45, 45, 1775, 1775, 45, 45, - 45, 45, 1775, 1775, 0, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775 + 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 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, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 1838, 45, 45, 45, 45, 45, + 45, 1838, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 1838, 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, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 1838, 45, 45, 45, 45, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 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, 1838, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 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, 1838, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 45, 45, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1838, 1838, 45, 1838, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, + 1838, 1838, 45, 1838, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 1838, 1838, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 1838, 45, 1838, 1838, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1838, 45, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 1838, 45, 1838, 1838, 45, 45, 45, 1838, 45, + 45, 1838, 45, 45, 45, 45, 45, 1838, 45, 45, + 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, + 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 1838, 45, 1838, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1838, 45, 45, 45, 45, 45, + + 45, 45, 1838, 45, 45, 1838, 45, 45, 45, 45, + 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 45, 1838, 45, 1838, 45, 1838, 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, 1838, 45, 45, 45, 45, 45, 1838, 45, 45, + 45, 45, 45, 1838, 45, 1838, 1838, 45, 45, 45, + + 1838, 1838, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 45, 1838, 45, 45, 45, 45, 45, 45, + 45, 45, 1838, 45, 45, 1838, 45, 1838, 45, 45, + 45, 1838, 45, 45, 45, 45, 45, 1838, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1838, 45, 45, 45, + 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, + 45, 1838, 45, 1838, 45, 45, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1838, + + 45, 45, 1838, 45, 1838, 1838, 45, 45, 45, 45, + 1838, 1838, 45, 1838, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1838, 45, 45, 45, 1838, 45, 45, + 45, 45, 45, 45, 1838, 45, 45, 45, 1838, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1838, 45, + 45, 45, 1838, 45, 45, 45, 45, 45, 45, 45, + 45, 1838, 45, 45, 45, 45, 45, 45, 45, 45, + 1838, 1838, 45, 45, 45, 45, 45, 45, 45, 1838, + 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1838, 45, 45, + + 45, 45, 45, 45, 1838, 45, 1838, 1838, 1838, 45, + 1838, 45, 45, 45, 45, 1838, 45, 45, 45, 1838, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1838, 45, 45, 1838, 45, 45, 1838, 1838, 45, 45, + 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1838, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1838, 45, 45, 1838, + 45, 45, 1838, 45, 45, 45, 45, 1838, 45, 1838, + 45, 45, 45, 1838, 45, 45, 45, 45, 45, 45, + + 1838, 45, 1838, 45, 1838, 1838, 45, 45, 45, 45, + 45, 45, 1838, 45, 45, 1838, 45, 45, 45, 45, + 45, 45, 45, 1838, 45, 45, 45, 45, 45, 1838, + 1838, 45, 45, 45, 45, 1838, 1838, 0, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838 } ; -static const flex_int16_t yy_nxt[2251] = +static const flex_int16_t yy_nxt[2314] = { 0, - 1775, 13, 14, 13, 1775, 15, 16, 1775, 17, 18, + 1838, 13, 14, 13, 1838, 15, 16, 1838, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 86, 749, 37, 14, 37, 87, 25, 26, 38, 102, - 1775, 27, 37, 14, 37, 42, 28, 42, 38, 92, - 93, 29, 200, 30, 13, 14, 13, 91, 92, 25, + 86, 764, 37, 14, 37, 87, 25, 26, 38, 102, + 1838, 27, 37, 14, 37, 42, 28, 42, 38, 92, + 93, 29, 202, 30, 13, 14, 13, 91, 92, 25, 31, 93, 13, 14, 13, 13, 14, 13, 32, 40, - 750, 13, 14, 13, 33, 40, 103, 92, 93, 200, + 765, 13, 14, 13, 33, 40, 103, 92, 93, 202, 91, 34, 35, 13, 14, 13, 95, 15, 16, 96, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 91, 39, 105, 25, 26, 13, 14, 13, 27, 39, 42, 108, 42, 28, 42, 109, 42, 41, 29, 111, 30, 114, 115, 94, 141, - 41, 25, 31, 105, 226, 227, 89, 142, 89, 108, + 41, 25, 31, 105, 228, 229, 89, 142, 89, 108, 32, 90, 90, 90, 90, 90, 33, 111, 109, 114, - 232, 115, 233, 34, 35, 44, 44, 44, 45, 45, + 234, 115, 235, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 45, 45, 45, 48, 45, 49, 50, 45, 51, 45, 52, 53, 54, 45, 45, 45, @@ -1368,142 +1389,142 @@ static const flex_int16_t yy_nxt[2251] = 59, 60, 61, 62, 63, 64, 65, 66, 67, 52, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 57, 45, 45, 45, 45, 45, 81, 834, + 78, 79, 57, 45, 45, 45, 45, 45, 81, 835, 82, 82, 82, 82, 82, 81, 105, 84, 84, 84, 84, 84, 108, 83, 85, 85, 85, 85, 85, 81, - 83, 84, 84, 84, 84, 84, 186, 83, 283, 284, - 112, 123, 119, 135, 83, 108, 83, 188, 120, 124, + 83, 84, 84, 84, 84, 84, 188, 83, 287, 288, + 112, 123, 119, 135, 83, 108, 83, 190, 120, 124, 113, 121, 125, 83, 136, 126, 138, 127, 139, 128, - 83, 143, 186, 112, 137, 140, 163, 83, 45, 187, - 164, 144, 835, 145, 45, 188, 45, 45, 113, 45, - 165, 45, 45, 45, 430, 117, 147, 148, 45, 45, + 83, 143, 188, 112, 137, 140, 164, 83, 45, 189, + 165, 144, 836, 145, 45, 190, 45, 45, 113, 45, + 166, 45, 45, 45, 221, 117, 147, 148, 45, 45, - 149, 45, 45, 188, 431, 187, 150, 45, 45, 45, + 149, 45, 45, 222, 223, 189, 150, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 129, 191, 45, 130, 131, 151, 45, 132, 133, 152, - 45, 111, 167, 153, 836, 186, 168, 102, 45, 114, - 134, 196, 45, 158, 45, 118, 203, 176, 177, 154, - 155, 159, 156, 160, 157, 187, 169, 112, 161, 162, - 170, 189, 181, 171, 215, 291, 423, 113, 216, 196, - 172, 173, 182, 203, 103, 174, 175, 183, 837, 292, - 178, 190, 179, 85, 85, 85, 85, 85, 81, 202, + 129, 168, 45, 130, 131, 169, 45, 132, 133, 151, + 45, 111, 217, 152, 295, 188, 218, 153, 45, 189, + 134, 324, 45, 114, 45, 118, 425, 159, 296, 154, + 156, 201, 157, 155, 158, 160, 190, 161, 177, 178, + 170, 191, 162, 163, 171, 192, 183, 172, 112, 85, + 85, 85, 85, 85, 173, 174, 184, 201, 113, 175, + 176, 185, 83, 81, 193, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 113, 83, 204, 206, 89, - 838, 89, 180, 83, 90, 90, 90, 90, 90, 81, - 205, 84, 84, 84, 84, 84, 101, 202, 424, 83, - 199, 206, 196, 101, 83, 204, 83, 85, 85, 85, - 85, 85, 90, 90, 90, 90, 90, 205, 235, 210, - 83, 90, 90, 90, 90, 90, 199, 83, 239, 219, - 211, 240, 251, 101, 236, 241, 252, 101, 220, 221, - 305, 101, 305, 83, 202, 264, 265, 266, 268, 101, - 271, 269, 270, 101, 272, 101, 194, 209, 209, 209, - 209, 209, 274, 305, 312, 308, 209, 209, 209, 209, + 253, 179, 837, 180, 254, 89, 181, 89, 83, 102, + 90, 90, 90, 90, 90, 83, 113, 85, 85, 85, + 85, 85, 81, 182, 84, 84, 84, 84, 84, 198, + 83, 83, 90, 90, 90, 90, 90, 83, 90, 90, + 90, 90, 90, 101, 204, 206, 103, 205, 207, 237, + 101, 198, 241, 83, 208, 242, 838, 198, 275, 243, + 83, 204, 276, 414, 310, 238, 267, 272, 212, 309, + 273, 274, 204, 206, 205, 207, 415, 208, 310, 213, + 101, 268, 269, 270, 101, 205, 289, 310, 101, 204, + 290, 261, 207, 308, 291, 309, 101, 278, 308, 309, - 209, 209, 202, 285, 258, 203, 205, 286, 303, 304, - 316, 287, 397, 303, 380, 398, 318, 312, 304, 209, - 209, 209, 209, 209, 209, 315, 320, 275, 276, 277, - 322, 312, 296, 299, 407, 304, 303, 316, 278, 318, - 279, 306, 280, 281, 307, 282, 368, 408, 432, 320, - 381, 319, 426, 315, 325, 440, 418, 322, 323, 323, - 323, 323, 323, 426, 382, 335, 500, 323, 323, 323, - 323, 323, 323, 336, 437, 426, 501, 432, 337, 338, - 434, 435, 432, 440, 457, 513, 427, 796, 619, 436, - 323, 323, 323, 323, 323, 323, 523, 437, 620, 369, + 101, 313, 101, 196, 211, 211, 211, 211, 211, 431, + 438, 839, 300, 211, 211, 211, 211, 211, 211, 304, + 439, 308, 321, 317, 320, 312, 311, 327, 323, 373, + 325, 533, 279, 280, 281, 534, 211, 211, 211, 211, + 211, 211, 840, 282, 386, 283, 317, 284, 285, 321, + 286, 323, 320, 325, 327, 328, 328, 328, 328, 328, + 317, 432, 340, 434, 328, 328, 328, 328, 328, 328, + 341, 404, 434, 440, 405, 342, 343, 445, 448, 523, + 387, 465, 374, 330, 440, 375, 434, 328, 328, 328, + 328, 328, 328, 472, 388, 435, 442, 443, 466, 473, - 524, 458, 370, 443, 443, 443, 443, 443, 728, 729, - 796, 444, 443, 443, 443, 443, 443, 443, 464, 528, - 478, 491, 492, 529, 465, 479, 493, 545, 551, 558, - 546, 590, 566, 552, 567, 443, 443, 443, 443, 443, - 443, 558, 583, 514, 591, 683, 592, 684, 795, 839, - 584, 600, 585, 586, 587, 679, 601, 558, 803, 566, - 685, 567, 840, 780, 804, 806, 807, 827, 808, 568, - 841, 828, 683, 480, 781, 684, 795, 842, 481, 45, - 45, 45, 45, 45, 843, 844, 845, 846, 45, 45, - 45, 45, 45, 45, 847, 848, 849, 850, 852, 853, + 445, 841, 440, 842, 509, 444, 448, 451, 451, 451, + 451, 451, 555, 452, 510, 556, 451, 451, 451, 451, + 451, 451, 486, 499, 500, 538, 562, 487, 501, 539, + 569, 563, 577, 843, 578, 569, 698, 524, 594, 451, + 451, 451, 451, 451, 451, 630, 595, 601, 596, 597, + 598, 611, 697, 742, 743, 631, 612, 796, 569, 577, + 602, 578, 603, 579, 698, 693, 813, 820, 797, 812, + 699, 823, 824, 821, 825, 488, 847, 848, 849, 697, + 489, 45, 45, 45, 45, 45, 850, 851, 852, 813, + 45, 45, 45, 45, 45, 45, 844, 812, 853, 854, - 851, 854, 855, 856, 857, 858, 859, 860, 861, 862, - 863, 45, 45, 45, 45, 45, 45, 864, 865, 866, - 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, + 845, 855, 856, 857, 846, 858, 859, 860, 861, 862, + 863, 864, 865, 45, 45, 45, 45, 45, 45, 866, + 867, 868, 870, 871, 869, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, - 888, 889, 890, 893, 894, 895, 887, 897, 898, 891, - 899, 896, 900, 892, 901, 902, 903, 904, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, - 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, + 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, + 908, 909, 910, 913, 914, 915, 907, 917, 918, 911, + 919, 916, 920, 912, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, - 937, 938, 939, 940, 913, 941, 942, 943, 944, 945, + 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, - 946, 947, 948, 949, 950, 951, 952, 954, 955, 956, - 957, 953, 958, 959, 960, 961, 962, 963, 964, 965, - 966, 967, 968, 969, 970, 971, 972, 973, 975, 976, - 977, 974, 978, 979, 980, 981, 982, 983, 984, 985, + 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, + 957, 958, 959, 960, 961, 934, 962, 963, 964, 965, + 966, 967, 968, 969, 970, 971, 972, 973, 974, 976, + 977, 978, 979, 975, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 996, 998, 999, 1000, 997, 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, 1042, 1043, 1044, 1022, + 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, - 1045, 1046, 1021, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1064, - 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, - 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, - 1085, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, - 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, - 1115, 1116, 1117, 1118, 1119, 1120, 1063, 1121, 1122, 1123, - 1124, 1125, 1127, 1126, 1128, 1129, 1130, 1131, 1132, 1133, - 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, + 1066, 1067, 1068, 1069, 1047, 1070, 1071, 1046, 1072, 1073, + 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1086, 1087, 1088, 1090, 1091, 1092, 1093, 1094, + 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, + 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1113, 1114, 1115, + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1112, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1125, - 1126, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, - 1162, 1163, 1164, 1166, 1168, 1169, 1170, 1165, 1171, 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, 1197, 1198, 1199, 1200, 1201, 1202, - 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1167, 1210, 1211, - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, - 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, + 1145, 1146, 1089, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1156, 1155, 1157, 1158, 1159, 1160, 1161, 1162, 1163, + 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1154, 1155, + 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, + 1192, 1193, 1194, 1196, 1198, 1199, 1200, 1195, 1201, 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, 1231, 1232, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1197, 1240, 1241, - 1242, 1243, 1244, 1245, 1246, 1224, 1247, 1248, 1249, 1250, - 1251, 1225, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, - 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, - 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1314, 1315, 1317, 1318, 1319, 1320, 1321, - 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1310, 1339, 1340, + 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, + 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, + 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1257, 1280, + 1281, 1282, 1283, 1284, 1258, 1285, 1286, 1287, 1288, 1289, + 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, + 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, + 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, + 1320, 1321, 1322, 1323, 1324, 1325, 1327, 1328, 1329, 1330, + 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, - 1341, 1342, 1290, 1343, 1344, 1345, 1346, 1347, 1348, 1349, - 1352, 1350, 1353, 1354, 1355, 1356, 1357, 1358, 1316, 1351, - 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, - 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, - 1379, 1380, 1381, 1382, 1383, 1385, 1386, 1387, 1388, 1384, - 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, - 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1386, - 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, - 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, - 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, + 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, + 1351, 1352, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, + 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, + 1372, 1373, 1374, 1375, 1347, 1376, 1377, 1378, 1326, 1379, + 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1390, + 1391, 1392, 1393, 1394, 1395, 1353, 1389, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1423, 1424, 1426, 1427, 1428, 1429, + 1425, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, - 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, - 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, - 1458, 1459, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, - 1469, 1470, 1460, 1471, 1472, 1473, 1474, 1448, 1475, 1476, - 1477, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, + 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, + 1427, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, + 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 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, 1502, 1503, 1504, 1505, 1506, 1507, - 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, - 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1478, 1536, + 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1506, 1507, 1508, + 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1505, 1516, 1517, + 1518, 1519, 1493, 1520, 1521, 1522, 1523, 1525, 1526, 1527, + 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, - 1510, 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, 1574, 1575, - 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, + 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, 1574, 1575, 1576, 1577, + 1578, 1579, 1580, 1581, 1524, 1582, 1583, 1584, 1585, 1559, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, @@ -1522,87 +1543,95 @@ static const flex_int16_t yy_nxt[2251] = 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, 1756, - 1755, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, - 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 12, - 12, 12, 12, 12, 36, 36, 36, 36, 36, 80, - 310, 80, 80, 80, 99, 429, 99, 555, 99, 101, - 101, 101, 101, 101, 116, 116, 116, 116, 116, 185, - 101, 185, 185, 185, 207, 207, 207, 833, 832, 831, - 830, 829, 826, 825, 824, 823, 822, 821, 820, 819, - 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, + 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, 1772, 1773, 1774, 1775, + 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, + 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, + 1816, 1817, 1819, 1818, 1820, 1821, 1822, 1823, 1824, 1825, + 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, - 805, 802, 801, 800, 799, 798, 797, 794, 793, 792, - 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, - 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, - 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, - 759, 758, 757, 756, 755, 754, 753, 752, 751, 748, - 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, - 737, 736, 735, 734, 733, 732, 731, 730, 727, 726, - 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, - 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, - 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, + 1836, 1837, 12, 12, 12, 12, 12, 36, 36, 36, + 36, 36, 80, 315, 80, 80, 80, 99, 437, 99, + 566, 99, 101, 101, 101, 101, 101, 116, 116, 116, + 116, 116, 187, 101, 187, 187, 187, 209, 209, 209, + 834, 833, 832, 831, 830, 829, 828, 827, 826, 822, + 819, 818, 817, 816, 815, 814, 811, 810, 809, 808, + 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, + 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, 768, 767, 766, - 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, - 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, - 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, - 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, - 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, - 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, - 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, - 622, 621, 618, 617, 616, 615, 614, 613, 612, 611, - 610, 609, 608, 607, 606, 605, 604, 603, 602, 599, - 598, 597, 596, 595, 594, 593, 589, 588, 582, 581, + 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, + 753, 752, 751, 750, 749, 748, 747, 746, 745, 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, 717, 716, 715, 714, 713, 712, + 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, + 701, 700, 696, 695, 694, 693, 692, 691, 690, 689, + 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, + 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, + 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, - 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, - 570, 569, 565, 564, 563, 562, 561, 560, 559, 557, - 556, 554, 553, 550, 549, 548, 547, 544, 543, 542, - 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, - 531, 530, 527, 526, 525, 522, 521, 520, 519, 518, - 517, 516, 515, 512, 511, 510, 509, 508, 507, 506, - 505, 504, 503, 502, 499, 498, 497, 496, 495, 494, - 490, 489, 488, 487, 486, 485, 484, 483, 482, 477, - 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, - 466, 463, 462, 461, 460, 459, 456, 455, 454, 453, + 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, + 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, + 638, 637, 636, 635, 634, 633, 632, 629, 628, 627, + 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, + 616, 615, 614, 613, 610, 609, 608, 607, 606, 605, + 604, 600, 599, 593, 592, 591, 590, 589, 588, 587, + 586, 585, 584, 583, 582, 581, 580, 576, 575, 574, + 573, 572, 571, 570, 568, 567, 565, 564, 561, 560, + 559, 558, 557, 554, 553, 552, 551, 550, 549, 548, + 547, 546, 545, 544, 543, 542, 541, 540, 537, 536, - 452, 451, 450, 449, 448, 447, 446, 445, 442, 441, - 439, 438, 433, 428, 425, 422, 421, 420, 419, 417, - 416, 415, 414, 413, 412, 411, 410, 409, 406, 405, - 404, 403, 402, 401, 400, 399, 396, 395, 394, 393, - 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, - 379, 378, 377, 376, 375, 374, 373, 372, 371, 367, - 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 345, 344, 343, 342, 341, 340, 339, 334, 333, - 332, 331, 330, 329, 328, 327, 326, 324, 208, 321, + 535, 532, 531, 530, 529, 528, 527, 526, 525, 522, + 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, + 511, 508, 507, 506, 505, 504, 503, 502, 498, 497, + 496, 495, 494, 493, 492, 491, 490, 485, 484, 483, + 482, 481, 480, 479, 478, 477, 476, 475, 474, 471, + 470, 469, 468, 467, 464, 463, 462, 461, 460, 459, + 458, 457, 456, 455, 454, 453, 450, 449, 447, 446, + 441, 436, 433, 430, 429, 428, 427, 426, 424, 423, + 422, 421, 420, 419, 418, 417, 416, 413, 412, 411, + 410, 409, 408, 407, 406, 403, 402, 401, 400, 399, - 319, 317, 314, 313, 311, 309, 302, 301, 300, 298, - 297, 295, 294, 293, 290, 289, 288, 273, 267, 263, - 262, 261, 260, 259, 257, 256, 255, 254, 253, 250, - 249, 248, 247, 246, 245, 244, 243, 242, 238, 237, - 234, 231, 230, 229, 228, 225, 224, 223, 222, 218, - 217, 214, 213, 212, 208, 201, 198, 197, 195, 193, - 192, 184, 166, 146, 122, 110, 107, 106, 104, 43, - 100, 98, 97, 88, 43, 1775, 11, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, + 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, + 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, + 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, + 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, + 352, 351, 350, 349, 348, 347, 346, 345, 344, 339, + 338, 337, 336, 335, 334, 333, 332, 331, 329, 210, + 326, 324, 322, 319, 318, 316, 314, 307, 306, 305, + 303, 302, 301, 299, 298, 297, 294, 293, 292, 277, + 271, 266, 265, 264, 263, 262, 260, 259, 258, 257, + 256, 255, 252, 251, 250, 249, 248, 247, 246, 245, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775 + 244, 240, 239, 236, 233, 232, 231, 230, 227, 226, + 225, 224, 220, 219, 216, 215, 214, 210, 203, 200, + 199, 197, 195, 194, 186, 167, 146, 122, 110, 107, + 106, 104, 43, 100, 98, 97, 88, 43, 1838, 11, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838 } ; -static const flex_int16_t yy_chk[2251] = +static const flex_int16_t yy_chk[2314] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 634, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 646, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 109, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 634, 8, 8, 8, 1, 8, 44, 27, 28, 109, + 646, 8, 8, 8, 1, 8, 44, 27, 28, 109, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 48, 2, 2, @@ -1619,230 +1648,238 @@ static const flex_int16_t yy_chk[2251] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 719, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 717, 17, 17, 17, 17, 17, 19, 59, 19, 19, 19, 19, 19, 64, 17, 20, 20, 20, 20, 20, 22, - 19, 22, 22, 22, 22, 22, 91, 20, 169, 169, + 19, 22, 22, 22, 22, 22, 91, 20, 170, 170, 55, 61, 59, 63, 22, 64, 17, 93, 59, 61, 55, 59, 61, 19, 63, 61, 64, 61, 65, 61, 20, 67, 91, 55, 63, 65, 73, 22, 45, 92, - 73, 67, 720, 67, 45, 93, 45, 45, 55, 45, - 73, 45, 45, 45, 311, 58, 69, 69, 45, 45, + 73, 67, 718, 67, 45, 93, 45, 45, 55, 45, + 73, 45, 45, 45, 126, 58, 69, 69, 45, 45, - 69, 45, 58, 96, 311, 92, 69, 45, 45, 45, + 69, 45, 58, 126, 126, 92, 69, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 62, 96, 58, 62, 62, 70, 58, 62, 62, 70, - 58, 71, 75, 70, 721, 94, 75, 101, 58, 78, - 62, 105, 58, 72, 58, 58, 112, 77, 77, 70, - 71, 72, 71, 72, 71, 95, 76, 77, 72, 72, - 76, 94, 78, 76, 123, 174, 301, 77, 123, 105, - 76, 76, 78, 112, 101, 76, 76, 78, 722, 174, - 77, 95, 77, 81, 81, 81, 81, 81, 82, 111, + 62, 75, 58, 62, 62, 75, 58, 62, 62, 70, + 58, 71, 123, 70, 175, 94, 123, 70, 58, 95, + 62, 300, 58, 78, 58, 58, 300, 72, 175, 70, + 71, 108, 71, 70, 71, 72, 96, 72, 77, 77, + 76, 94, 72, 72, 76, 95, 78, 76, 77, 81, + 81, 81, 81, 81, 76, 76, 78, 108, 77, 76, + 76, 78, 81, 82, 96, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 77, 81, 113, 115, 83, - 723, 83, 77, 82, 83, 83, 83, 83, 83, 84, - 114, 84, 84, 84, 84, 84, 103, 111, 301, 81, - 108, 115, 119, 103, 84, 113, 82, 85, 85, 85, - 85, 85, 89, 89, 89, 89, 89, 114, 138, 119, - 85, 90, 90, 90, 90, 90, 108, 84, 141, 126, - 119, 141, 151, 103, 138, 141, 151, 103, 126, 126, - 188, 103, 191, 85, 157, 163, 163, 163, 165, 103, - 166, 165, 165, 103, 166, 103, 103, 118, 118, 118, - 118, 118, 168, 188, 196, 191, 118, 118, 118, 118, + 151, 77, 719, 77, 151, 83, 77, 83, 82, 101, + 83, 83, 83, 83, 83, 81, 77, 85, 85, 85, + 85, 85, 84, 77, 84, 84, 84, 84, 84, 105, + 85, 82, 89, 89, 89, 89, 89, 84, 90, 90, + 90, 90, 90, 103, 111, 113, 101, 112, 114, 138, + 103, 119, 141, 85, 115, 141, 720, 105, 167, 141, + 84, 158, 167, 290, 190, 138, 164, 166, 119, 189, + 166, 166, 111, 113, 112, 114, 290, 115, 193, 119, + 103, 164, 164, 164, 103, 179, 171, 190, 103, 158, + 171, 158, 183, 188, 171, 189, 103, 169, 191, 192, - 118, 118, 157, 170, 157, 178, 181, 170, 186, 187, - 200, 170, 277, 189, 262, 277, 202, 196, 190, 118, - 118, 118, 118, 118, 118, 199, 204, 168, 168, 168, - 206, 211, 178, 181, 286, 187, 186, 200, 168, 202, - 168, 189, 168, 168, 190, 168, 252, 286, 312, 204, - 262, 296, 303, 199, 211, 318, 296, 206, 209, 209, - 209, 209, 209, 306, 262, 221, 375, 209, 209, 209, - 209, 209, 209, 221, 315, 303, 375, 312, 221, 221, - 314, 314, 325, 318, 338, 388, 306, 684, 492, 314, - 209, 209, 209, 209, 209, 209, 398, 315, 492, 252, + 103, 193, 103, 103, 118, 118, 118, 118, 118, 306, + 316, 721, 179, 118, 118, 118, 118, 118, 118, 183, + 316, 188, 202, 198, 201, 192, 191, 208, 204, 254, + 206, 405, 169, 169, 169, 405, 118, 118, 118, 118, + 118, 118, 722, 169, 265, 169, 198, 169, 169, 202, + 169, 204, 201, 206, 208, 211, 211, 211, 211, 211, + 213, 306, 223, 308, 211, 211, 211, 211, 211, 211, + 223, 281, 311, 317, 281, 223, 223, 320, 323, 395, + 265, 343, 254, 213, 330, 254, 308, 211, 211, 211, + 211, 211, 211, 350, 265, 311, 319, 319, 343, 350, - 398, 338, 252, 323, 323, 323, 323, 323, 613, 613, - 684, 325, 323, 323, 323, 323, 323, 323, 345, 402, - 358, 368, 368, 402, 345, 358, 368, 418, 424, 432, - 418, 464, 442, 424, 442, 323, 323, 323, 323, 323, - 323, 444, 461, 388, 464, 566, 464, 567, 683, 724, - 461, 473, 461, 461, 461, 568, 473, 432, 691, 442, - 568, 442, 725, 667, 691, 693, 693, 712, 693, 444, - 726, 712, 566, 358, 667, 567, 683, 727, 358, 443, - 443, 443, 443, 443, 728, 729, 730, 731, 443, 443, - 443, 443, 443, 443, 732, 733, 734, 735, 736, 737, + 320, 723, 317, 724, 381, 319, 323, 328, 328, 328, + 328, 328, 425, 330, 381, 425, 328, 328, 328, 328, + 328, 328, 363, 373, 373, 409, 432, 363, 373, 409, + 440, 432, 450, 725, 450, 452, 578, 395, 469, 328, + 328, 328, 328, 328, 328, 500, 469, 472, 469, 469, + 469, 481, 577, 624, 624, 500, 481, 680, 440, 450, + 472, 450, 472, 452, 578, 579, 698, 705, 680, 697, + 579, 707, 707, 705, 707, 363, 727, 728, 729, 577, + 363, 451, 451, 451, 451, 451, 730, 731, 733, 698, + 451, 451, 451, 451, 451, 451, 726, 697, 734, 735, - 735, 738, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 443, 443, 443, 443, 443, 443, 750, 751, 752, - 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, - 773, 774, 774, 775, 776, 777, 772, 778, 779, 774, - 781, 777, 782, 774, 783, 784, 785, 786, 787, 788, - 789, 790, 791, 792, 793, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 804, 806, 807, 808, 809, 810, - 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, - 821, 822, 823, 824, 796, 825, 826, 827, 828, 829, + 726, 736, 737, 738, 726, 739, 740, 741, 742, 743, + 744, 745, 746, 451, 451, 451, 451, 451, 451, 747, + 748, 749, 750, 751, 749, 752, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 765, 766, 767, 768, + 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, + 789, 790, 790, 791, 792, 793, 788, 794, 795, 790, + 797, 793, 798, 790, 799, 800, 801, 802, 803, 804, + 805, 806, 807, 808, 809, 810, 812, 813, 814, 815, + 816, 817, 818, 819, 820, 821, 823, 824, 825, 826, - 830, 832, 833, 834, 835, 836, 837, 838, 839, 840, - 841, 837, 842, 843, 844, 845, 848, 849, 850, 851, - 852, 853, 856, 857, 858, 859, 860, 861, 862, 863, - 864, 861, 865, 866, 867, 870, 871, 872, 873, 874, - 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, - 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 898, 900, 901, 902, 903, 904, 905, - 906, 907, 908, 909, 910, 912, 913, 914, 915, 916, - 917, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 913, + 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, + 837, 838, 839, 840, 841, 813, 842, 843, 844, 845, + 846, 847, 848, 850, 851, 852, 853, 854, 855, 856, + 857, 858, 859, 855, 860, 861, 862, 863, 866, 867, + 868, 869, 870, 871, 874, 875, 876, 877, 878, 879, + 880, 881, 882, 883, 880, 884, 885, 886, 887, 890, + 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, + 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, + 911, 912, 913, 914, 915, 916, 917, 918, 920, 921, + 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, - 937, 938, 912, 939, 940, 942, 943, 944, 945, 946, - 947, 948, 949, 950, 951, 953, 954, 955, 956, 957, - 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, - 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, - 979, 981, 982, 983, 984, 986, 987, 988, 989, 990, - 978, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1005, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 956, 1017, 1018, 1019, - 1020, 1021, 1023, 1022, 1024, 1025, 1026, 1027, 1028, 1030, - 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 933, 934, 935, 936, 937, 938, 940, 941, 942, 943, + 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, + 954, 955, 956, 957, 934, 958, 959, 933, 960, 961, + 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, + 973, 975, 976, 977, 978, 979, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1005, + 1006, 1007, 1008, 1010, 1011, 1012, 1013, 1001, 1014, 1015, + 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, + 1026, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, - 1041, 1042, 1043, 1044, 1046, 1047, 1048, 1049, 1050, 1021, - 1022, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, - 1060, 1061, 1063, 1064, 1065, 1066, 1067, 1063, 1068, 1069, - 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, - 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, - 1101, 1103, 1104, 1105, 1107, 1108, 1109, 1064, 1110, 1111, - 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, - 1122, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1132, 1133, - 1134, 1135, 1136, 1137, 1138, 1139, 1141, 1142, 1143, 1144, + 1037, 1038, 978, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1046, 1048, 1047, 1049, 1050, 1051, 1052, 1053, 1055, 1056, + 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, + 1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1046, 1047, + 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1086, 1087, 1089, 1090, 1091, 1092, 1093, 1089, 1094, 1095, + 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, + 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 1116, 1117, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, + 1127, 1128, 1129, 1131, 1132, 1133, 1135, 1090, 1136, 1137, - 1145, 1147, 1148, 1149, 1150, 1125, 1151, 1152, 1153, 1154, - 1155, 1126, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1165, - 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, - 1177, 1179, 1180, 1181, 1182, 1184, 1185, 1186, 1187, 1188, - 1191, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, - 1202, 1203, 1204, 1205, 1206, 1207, 1209, 1210, 1211, 1212, - 1213, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, - 1225, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1236, - 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, - 1247, 1248, 1249, 1251, 1252, 1253, 1254, 1224, 1255, 1256, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 1153, 1154, 1155, 1156, 1157, 1158, + 1159, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1170, + 1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, 1154, 1180, + 1181, 1182, 1183, 1184, 1155, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1195, 1197, 1198, 1199, 1200, 1201, 1202, + 1203, 1204, 1205, 1206, 1207, 1208, 1210, 1211, 1212, 1213, + 1215, 1216, 1217, 1218, 1219, 1220, 1223, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1238, 1239, 1241, 1242, 1243, 1244, 1245, 1248, 1249, 1250, - 1257, 1258, 1201, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - 1267, 1266, 1268, 1269, 1270, 1271, 1273, 1276, 1230, 1266, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1286, 1287, - 1288, 1289, 1290, 1291, 1292, 1294, 1295, 1297, 1300, 1301, - 1302, 1304, 1306, 1307, 1308, 1309, 1310, 1312, 1313, 1308, - 1314, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, - 1325, 1326, 1327, 1328, 1329, 1330, 1332, 1334, 1335, 1310, - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1346, 1348, - 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1357, 1358, 1359, - 1360, 1361, 1362, 1364, 1365, 1367, 1368, 1369, 1370, 1372, + 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1269, 1270, 1271, 1272, + 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1283, 1285, 1286, 1287, 1257, 1288, 1289, 1290, 1233, 1291, + 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, + 1302, 1303, 1304, 1305, 1306, 1263, 1300, 1308, 1311, 1312, + 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1323, + 1324, 1325, 1326, 1327, 1328, 1330, 1331, 1333, 1336, 1337, + 1338, 1340, 1341, 1343, 1344, 1345, 1346, 1347, 1349, 1350, + 1345, 1351, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, - 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1382, 1384, - 1386, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, - 1407, 1408, 1398, 1409, 1410, 1411, 1412, 1386, 1413, 1413, - 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, - 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, - 1434, 1435, 1436, 1437, 1439, 1440, 1441, 1442, 1443, 1445, - 1446, 1447, 1448, 1450, 1453, 1454, 1455, 1458, 1459, 1460, - 1461, 1462, 1463, 1464, 1465, 1466, 1469, 1470, 1471, 1472, - 1473, 1474, 1475, 1476, 1478, 1479, 1481, 1483, 1414, 1484, + 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1369, 1370, 1372, + 1347, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, + 1384, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1404, 1405, 1407, + 1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1423, 1425, 1427, 1429, 1430, 1431, 1432, + 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, + 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1439, 1450, 1451, + 1452, 1453, 1427, 1454, 1455, 1455, 1456, 1457, 1458, 1459, + 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, - 1448, 1485, 1487, 1488, 1489, 1490, 1492, 1493, 1494, 1495, - 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1509, 1510, 1511, 1512, 1513, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, - 1529, 1530, 1531, 1533, 1535, 1536, 1537, 1538, 1539, 1540, - 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1549, 1550, 1552, - 1555, 1556, 1557, 1560, 1562, 1563, 1564, 1565, 1566, 1567, - 1568, 1569, 1570, 1572, 1573, 1575, 1576, 1577, 1578, 1579, - 1580, 1582, 1583, 1584, 1586, 1587, 1588, 1589, 1590, 1591, - 1592, 1593, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, + 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, + 1480, 1481, 1483, 1484, 1485, 1486, 1487, 1489, 1490, 1491, + 1492, 1493, 1495, 1498, 1499, 1500, 1503, 1504, 1505, 1506, + 1507, 1508, 1509, 1510, 1511, 1513, 1515, 1516, 1517, 1518, + 1519, 1520, 1521, 1522, 1456, 1524, 1525, 1527, 1529, 1493, + 1530, 1531, 1533, 1534, 1535, 1536, 1537, 1539, 1540, 1541, + 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, + 1552, 1553, 1554, 1555, 1556, 1558, 1559, 1560, 1561, 1562, + 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, + 1574, 1575, 1576, 1577, 1579, 1580, 1581, 1583, 1585, 1586, - 1603, 1604, 1605, 1607, 1608, 1609, 1610, 1611, 1612, 1613, - 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1624, 1625, 1626, - 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, - 1637, 1638, 1639, 1641, 1642, 1643, 1644, 1645, 1647, 1651, - 1653, 1654, 1655, 1656, 1658, 1659, 1660, 1662, 1663, 1664, - 1665, 1666, 1667, 1668, 1669, 1670, 1672, 1673, 1675, 1676, - 1679, 1680, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, - 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, - 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, - 1711, 1712, 1713, 1714, 1716, 1717, 1719, 1720, 1721, 1722, + 1587, 1588, 1589, 1591, 1592, 1593, 1594, 1595, 1596, 1597, + 1598, 1599, 1601, 1602, 1604, 1607, 1608, 1609, 1610, 1613, + 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1625, + 1626, 1627, 1629, 1630, 1631, 1632, 1633, 1634, 1636, 1637, + 1638, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, + 1650, 1651, 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1660, + 1661, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1673, + 1674, 1675, 1676, 1677, 1678, 1679, 1682, 1683, 1684, 1685, + 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, + 1696, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1706, 1710, - 1723, 1724, 1726, 1728, 1729, 1730, 1732, 1733, 1734, 1735, - 1736, 1737, 1739, 1741, 1744, 1745, 1746, 1747, 1748, 1749, - 1748, 1751, 1752, 1754, 1755, 1756, 1757, 1758, 1759, 1760, - 1762, 1763, 1764, 1765, 1766, 1769, 1770, 1771, 1772, 1776, - 1776, 1776, 1776, 1776, 1777, 1777, 1777, 1777, 1777, 1778, - 1784, 1778, 1778, 1778, 1779, 1785, 1779, 1786, 1779, 1780, - 1780, 1780, 1780, 1780, 1781, 1781, 1781, 1781, 1781, 1782, - 1787, 1782, 1782, 1782, 1783, 1783, 1783, 717, 716, 715, - 714, 713, 711, 710, 709, 708, 707, 706, 705, 704, - 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, + 1712, 1713, 1714, 1715, 1717, 1718, 1719, 1721, 1722, 1723, + 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1732, 1733, 1735, + 1736, 1739, 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1748, + 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, + 1759, 1760, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, + 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1778, 1779, 1781, + 1782, 1784, 1785, 1786, 1787, 1789, 1791, 1792, 1793, 1795, + 1796, 1797, 1798, 1799, 1800, 1802, 1804, 1807, 1808, 1809, + 1810, 1811, 1812, 1811, 1814, 1815, 1817, 1818, 1819, 1820, + 1821, 1822, 1823, 1825, 1826, 1827, 1828, 1829, 1832, 1833, - 692, 690, 689, 688, 687, 686, 685, 682, 681, 680, - 678, 677, 675, 674, 673, 672, 671, 670, 669, 668, - 666, 665, 663, 662, 661, 660, 659, 658, 657, 656, - 655, 654, 653, 652, 651, 649, 648, 647, 646, 645, - 644, 643, 642, 641, 639, 638, 637, 636, 635, 633, - 632, 631, 630, 629, 628, 627, 625, 624, 623, 622, - 621, 620, 619, 618, 617, 616, 615, 614, 612, 611, - 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, - 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, - 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, + 1834, 1835, 1839, 1839, 1839, 1839, 1839, 1840, 1840, 1840, + 1840, 1840, 1841, 1847, 1841, 1841, 1841, 1842, 1848, 1842, + 1849, 1842, 1843, 1843, 1843, 1843, 1843, 1844, 1844, 1844, + 1844, 1844, 1845, 1850, 1845, 1845, 1845, 1846, 1846, 1846, + 716, 715, 714, 713, 712, 711, 710, 709, 708, 706, + 704, 703, 702, 701, 700, 699, 696, 695, 694, 692, + 691, 689, 688, 687, 686, 685, 684, 683, 682, 681, + 679, 678, 676, 675, 674, 673, 672, 671, 670, 669, + 668, 667, 666, 665, 664, 662, 661, 660, 659, 658, + 657, 656, 655, 654, 652, 651, 650, 649, 648, 647, - 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, - 564, 562, 559, 558, 557, 556, 554, 553, 552, 550, - 549, 546, 545, 544, 543, 542, 541, 540, 539, 538, - 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, - 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, - 517, 516, 514, 512, 511, 510, 509, 508, 507, 506, - 505, 504, 503, 502, 501, 500, 498, 497, 496, 495, - 494, 493, 491, 490, 489, 488, 487, 486, 485, 484, - 483, 482, 481, 480, 479, 477, 476, 475, 474, 472, - 471, 470, 469, 468, 466, 465, 463, 462, 459, 458, + 645, 644, 643, 642, 641, 640, 639, 637, 636, 635, + 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, + 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, + 613, 612, 610, 609, 608, 607, 606, 605, 604, 603, + 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, + 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, + 582, 581, 575, 573, 570, 569, 568, 567, 565, 564, + 563, 561, 560, 558, 556, 555, 554, 553, 552, 551, + 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, + 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, - 457, 456, 455, 454, 453, 451, 450, 449, 448, 447, - 446, 445, 440, 439, 437, 436, 435, 434, 433, 431, - 430, 428, 425, 423, 422, 420, 419, 417, 416, 415, - 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, - 404, 403, 401, 400, 399, 397, 396, 395, 394, 392, - 391, 390, 389, 387, 386, 385, 384, 383, 382, 381, - 380, 379, 378, 376, 374, 373, 372, 371, 370, 369, - 367, 366, 365, 364, 363, 362, 361, 360, 359, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 344, 343, 342, 341, 340, 337, 336, 335, 334, + 530, 529, 528, 527, 526, 524, 522, 521, 520, 519, + 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, + 507, 506, 505, 504, 503, 502, 501, 499, 498, 497, + 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, + 485, 484, 483, 482, 480, 479, 478, 477, 476, 474, + 473, 471, 470, 467, 466, 465, 464, 463, 462, 461, + 459, 458, 457, 456, 455, 454, 453, 448, 447, 445, + 444, 443, 442, 441, 439, 438, 436, 433, 431, 430, + 428, 427, 426, 424, 423, 422, 421, 420, 419, 418, + 417, 416, 415, 414, 413, 412, 411, 410, 408, 407, - 333, 332, 331, 330, 329, 328, 327, 326, 322, 320, - 317, 316, 313, 309, 302, 300, 299, 298, 297, 295, - 294, 293, 292, 291, 290, 289, 288, 287, 285, 284, - 283, 282, 281, 280, 279, 278, 276, 275, 274, 273, - 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, - 261, 260, 259, 258, 257, 256, 255, 254, 253, 251, - 250, 249, 248, 247, 246, 245, 244, 242, 241, 240, - 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, - 229, 228, 227, 226, 225, 224, 223, 222, 220, 219, - 218, 217, 216, 215, 214, 213, 212, 210, 207, 205, + 406, 404, 403, 402, 401, 399, 398, 397, 396, 394, + 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, + 382, 380, 379, 378, 377, 376, 375, 374, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 362, 361, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 349, + 348, 347, 346, 345, 342, 341, 340, 339, 338, 337, + 336, 335, 334, 333, 332, 331, 327, 325, 322, 321, + 318, 314, 307, 305, 304, 303, 302, 301, 299, 298, + 297, 296, 295, 294, 293, 292, 291, 289, 288, 287, + 286, 285, 284, 283, 282, 280, 279, 278, 277, 276, - 203, 201, 198, 197, 195, 192, 184, 183, 182, 180, - 179, 177, 176, 175, 173, 172, 171, 167, 164, 162, - 161, 160, 159, 158, 156, 155, 154, 153, 152, 150, - 149, 148, 147, 146, 145, 144, 143, 142, 140, 139, - 137, 135, 134, 133, 132, 130, 129, 128, 127, 125, - 124, 122, 121, 120, 116, 110, 107, 106, 104, 99, - 98, 79, 74, 68, 60, 53, 50, 49, 47, 43, - 41, 39, 38, 24, 14, 11, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, + 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, + 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, + 253, 252, 251, 250, 249, 248, 247, 246, 244, 243, + 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, + 232, 231, 230, 229, 228, 227, 226, 225, 224, 222, + 221, 220, 219, 218, 217, 216, 215, 214, 212, 209, + 207, 205, 203, 200, 199, 197, 194, 186, 185, 184, + 182, 181, 180, 178, 177, 176, 174, 173, 172, 168, + 165, 163, 162, 161, 160, 159, 157, 156, 155, 154, + 153, 152, 150, 149, 148, 147, 146, 145, 144, 143, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, - 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775 + 142, 140, 139, 137, 135, 134, 133, 132, 130, 129, + 128, 127, 125, 124, 122, 121, 120, 116, 110, 107, + 106, 104, 99, 98, 79, 74, 68, 60, 53, 50, + 49, 47, 43, 41, 39, 38, 24, 14, 11, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + + 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838 } ; static yy_state_type yy_last_accepting_state; @@ -1851,7 +1888,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[197] = +static const flex_int16_t yy_rule_linenum[201] = { 0, 147, 149, 151, 156, 157, 162, 163, 164, 176, 179, 184, 191, 200, 209, 218, 227, 236, 245, 255, 264, @@ -1860,20 +1897,20 @@ static const flex_int16_t yy_rule_linenum[197] = 465, 475, 486, 497, 508, 519, 530, 541, 552, 563, 574, 585, 594, 605, 616, 627, 638, 649, 658, 667, 676, 685, 696, 707, 718, 729, 740, 751, 761, 772, - 781, 791, 805, 821, 830, 839, 848, 857, 878, 899, - 908, 918, 927, 938, 947, 956, 965, 974, 983, 993, - 1002, 1013, 1024, 1036, 1045, 1055, 1064, 1073, 1082, 1091, + 781, 791, 805, 821, 830, 839, 848, 857, 879, 901, + 910, 920, 929, 940, 949, 958, 967, 976, 985, 995, + 1004, 1015, 1026, 1038, 1047, 1057, 1066, 1075, 1084, 1093, - 1100, 1109, 1118, 1127, 1137, 1148, 1160, 1169, 1178, 1188, - 1198, 1208, 1218, 1228, 1238, 1247, 1257, 1266, 1275, 1284, - 1293, 1303, 1313, 1322, 1332, 1341, 1350, 1359, 1368, 1377, - 1386, 1395, 1404, 1413, 1422, 1431, 1440, 1449, 1458, 1467, - 1476, 1485, 1494, 1503, 1512, 1521, 1530, 1539, 1548, 1557, - 1566, 1575, 1584, 1593, 1602, 1611, 1623, 1635, 1645, 1655, - 1665, 1675, 1685, 1695, 1705, 1715, 1725, 1734, 1743, 1752, - 1761, 1770, 1779, 1788, 1799, 1810, 1823, 1836, 1851, 1950, - 1955, 1960, 1965, 1966, 1967, 1968, 1969, 1970, 1972, 1990, - 2003, 2008, 2012, 2014, 2016, 2018 + 1102, 1111, 1120, 1129, 1139, 1150, 1162, 1171, 1180, 1190, + 1200, 1210, 1220, 1230, 1240, 1249, 1259, 1268, 1277, 1286, + 1295, 1305, 1315, 1324, 1334, 1343, 1352, 1361, 1370, 1379, + 1388, 1397, 1406, 1415, 1424, 1433, 1442, 1451, 1460, 1469, + 1478, 1487, 1496, 1505, 1514, 1523, 1532, 1541, 1550, 1559, + 1568, 1577, 1586, 1595, 1604, 1613, 1622, 1631, 1640, 1649, + 1661, 1673, 1683, 1693, 1703, 1713, 1723, 1733, 1743, 1753, + 1763, 1772, 1781, 1790, 1799, 1808, 1817, 1826, 1837, 1848, + 1861, 1874, 1887, 1986, 1991, 1996, 2001, 2002, 2003, 2004, + 2005, 2006, 2008, 2026, 2039, 2044, 2048, 2050, 2052, 2054 } ; @@ -1927,7 +1964,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 1930 "dhcp4_lexer.cc" +#line 1968 "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 @@ -1953,8 +1990,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 1956 "dhcp4_lexer.cc" -#line 1957 "dhcp4_lexer.cc" +#line 1994 "dhcp4_lexer.cc" +#line 1995 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2284,7 +2321,7 @@ YY_DECL } -#line 2287 "dhcp4_lexer.cc" +#line 2325 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2313,13 +2350,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 >= 1776 ) + if ( yy_current_state >= 1839 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1775 ); + while ( yy_current_state != 1838 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2338,13 +2375,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 < 197 ) + else if ( yy_act < 201 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 197 ) + else if ( yy_act == 201 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 198 ) + else if ( yy_act == 202 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3328,6 +3365,7 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::CLIENT_CLASSES: case isc::dhcp::Parser4Context::CONTROL_SOCKET: case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: + case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: case isc::dhcp::Parser4Context::LOGGERS: case isc::dhcp::Parser4Context::DHCP_DDNS: return isc::dhcp::Dhcp4Parser::make_USER_CONTEXT(driver.loc_); @@ -3338,7 +3376,7 @@ YY_RULE_SETUP YY_BREAK case 79: YY_RULE_SETUP -#line 878 "dhcp4_lexer.ll" +#line 879 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3352,6 +3390,7 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::CLIENT_CLASSES: case isc::dhcp::Parser4Context::CONTROL_SOCKET: case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: + case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: case isc::dhcp::Parser4Context::LOGGERS: case isc::dhcp::Parser4Context::DHCP_DDNS: return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_); @@ -3362,7 +3401,7 @@ YY_RULE_SETUP YY_BREAK case 80: YY_RULE_SETUP -#line 899 "dhcp4_lexer.ll" +#line 901 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3374,7 +3413,7 @@ YY_RULE_SETUP YY_BREAK case 81: YY_RULE_SETUP -#line 908 "dhcp4_lexer.ll" +#line 910 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3387,7 +3426,7 @@ YY_RULE_SETUP YY_BREAK case 82: YY_RULE_SETUP -#line 918 "dhcp4_lexer.ll" +#line 920 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3399,7 +3438,7 @@ YY_RULE_SETUP YY_BREAK case 83: YY_RULE_SETUP -#line 927 "dhcp4_lexer.ll" +#line 929 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3413,7 +3452,7 @@ YY_RULE_SETUP YY_BREAK case 84: YY_RULE_SETUP -#line 938 "dhcp4_lexer.ll" +#line 940 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3425,7 +3464,7 @@ YY_RULE_SETUP YY_BREAK case 85: YY_RULE_SETUP -#line 947 "dhcp4_lexer.ll" +#line 949 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3437,7 +3476,7 @@ YY_RULE_SETUP YY_BREAK case 86: YY_RULE_SETUP -#line 956 "dhcp4_lexer.ll" +#line 958 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3449,7 +3488,7 @@ YY_RULE_SETUP YY_BREAK case 87: YY_RULE_SETUP -#line 965 "dhcp4_lexer.ll" +#line 967 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3461,7 +3500,7 @@ YY_RULE_SETUP YY_BREAK case 88: YY_RULE_SETUP -#line 974 "dhcp4_lexer.ll" +#line 976 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3473,7 +3512,7 @@ YY_RULE_SETUP YY_BREAK case 89: YY_RULE_SETUP -#line 983 "dhcp4_lexer.ll" +#line 985 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3486,7 +3525,7 @@ YY_RULE_SETUP YY_BREAK case 90: YY_RULE_SETUP -#line 993 "dhcp4_lexer.ll" +#line 995 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3498,7 +3537,7 @@ YY_RULE_SETUP YY_BREAK case 91: YY_RULE_SETUP -#line 1002 "dhcp4_lexer.ll" +#line 1004 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3512,7 +3551,7 @@ YY_RULE_SETUP YY_BREAK case 92: YY_RULE_SETUP -#line 1013 "dhcp4_lexer.ll" +#line 1015 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3526,7 +3565,7 @@ YY_RULE_SETUP YY_BREAK case 93: YY_RULE_SETUP -#line 1024 "dhcp4_lexer.ll" +#line 1026 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3540,7 +3579,7 @@ YY_RULE_SETUP YY_BREAK case 94: YY_RULE_SETUP -#line 1036 "dhcp4_lexer.ll" +#line 1038 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3552,7 +3591,7 @@ YY_RULE_SETUP YY_BREAK case 95: YY_RULE_SETUP -#line 1045 "dhcp4_lexer.ll" +#line 1047 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3565,7 +3604,7 @@ YY_RULE_SETUP YY_BREAK case 96: YY_RULE_SETUP -#line 1055 "dhcp4_lexer.ll" +#line 1057 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3577,7 +3616,7 @@ YY_RULE_SETUP YY_BREAK case 97: YY_RULE_SETUP -#line 1064 "dhcp4_lexer.ll" +#line 1066 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3589,7 +3628,7 @@ YY_RULE_SETUP YY_BREAK case 98: YY_RULE_SETUP -#line 1073 "dhcp4_lexer.ll" +#line 1075 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3601,7 +3640,7 @@ YY_RULE_SETUP YY_BREAK case 99: YY_RULE_SETUP -#line 1082 "dhcp4_lexer.ll" +#line 1084 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3613,7 +3652,7 @@ YY_RULE_SETUP YY_BREAK case 100: YY_RULE_SETUP -#line 1091 "dhcp4_lexer.ll" +#line 1093 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3625,7 +3664,7 @@ YY_RULE_SETUP YY_BREAK case 101: YY_RULE_SETUP -#line 1100 "dhcp4_lexer.ll" +#line 1102 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3637,7 +3676,7 @@ YY_RULE_SETUP YY_BREAK case 102: YY_RULE_SETUP -#line 1109 "dhcp4_lexer.ll" +#line 1111 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3649,7 +3688,7 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 1118 "dhcp4_lexer.ll" +#line 1120 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3661,7 +3700,7 @@ YY_RULE_SETUP YY_BREAK case 104: YY_RULE_SETUP -#line 1127 "dhcp4_lexer.ll" +#line 1129 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3674,7 +3713,7 @@ YY_RULE_SETUP YY_BREAK case 105: YY_RULE_SETUP -#line 1137 "dhcp4_lexer.ll" +#line 1139 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3688,7 +3727,7 @@ YY_RULE_SETUP YY_BREAK case 106: YY_RULE_SETUP -#line 1148 "dhcp4_lexer.ll" +#line 1150 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3703,7 +3742,7 @@ YY_RULE_SETUP YY_BREAK case 107: YY_RULE_SETUP -#line 1160 "dhcp4_lexer.ll" +#line 1162 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3715,7 +3754,7 @@ YY_RULE_SETUP YY_BREAK case 108: YY_RULE_SETUP -#line 1169 "dhcp4_lexer.ll" +#line 1171 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3727,7 +3766,7 @@ YY_RULE_SETUP YY_BREAK case 109: YY_RULE_SETUP -#line 1178 "dhcp4_lexer.ll" +#line 1180 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3740,7 +3779,7 @@ YY_RULE_SETUP YY_BREAK case 110: YY_RULE_SETUP -#line 1188 "dhcp4_lexer.ll" +#line 1190 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3753,7 +3792,7 @@ YY_RULE_SETUP YY_BREAK case 111: YY_RULE_SETUP -#line 1198 "dhcp4_lexer.ll" +#line 1200 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3766,7 +3805,7 @@ YY_RULE_SETUP YY_BREAK case 112: YY_RULE_SETUP -#line 1208 "dhcp4_lexer.ll" +#line 1210 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3779,7 +3818,7 @@ YY_RULE_SETUP YY_BREAK case 113: YY_RULE_SETUP -#line 1218 "dhcp4_lexer.ll" +#line 1220 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3792,7 +3831,7 @@ YY_RULE_SETUP YY_BREAK case 114: YY_RULE_SETUP -#line 1228 "dhcp4_lexer.ll" +#line 1230 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3805,7 +3844,7 @@ YY_RULE_SETUP YY_BREAK case 115: YY_RULE_SETUP -#line 1238 "dhcp4_lexer.ll" +#line 1240 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -3817,7 +3856,7 @@ YY_RULE_SETUP YY_BREAK case 116: YY_RULE_SETUP -#line 1247 "dhcp4_lexer.ll" +#line 1249 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3830,7 +3869,7 @@ YY_RULE_SETUP YY_BREAK case 117: YY_RULE_SETUP -#line 1257 "dhcp4_lexer.ll" +#line 1259 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3842,7 +3881,7 @@ YY_RULE_SETUP YY_BREAK case 118: YY_RULE_SETUP -#line 1266 "dhcp4_lexer.ll" +#line 1268 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3854,7 +3893,7 @@ YY_RULE_SETUP YY_BREAK case 119: YY_RULE_SETUP -#line 1275 "dhcp4_lexer.ll" +#line 1277 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3866,7 +3905,7 @@ YY_RULE_SETUP YY_BREAK case 120: YY_RULE_SETUP -#line 1284 "dhcp4_lexer.ll" +#line 1286 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3878,7 +3917,7 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP -#line 1293 "dhcp4_lexer.ll" +#line 1295 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3891,7 +3930,7 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP -#line 1303 "dhcp4_lexer.ll" +#line 1305 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3904,7 +3943,7 @@ YY_RULE_SETUP YY_BREAK case 123: YY_RULE_SETUP -#line 1313 "dhcp4_lexer.ll" +#line 1315 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3916,7 +3955,7 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP -#line 1322 "dhcp4_lexer.ll" +#line 1324 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3928,7 +3967,7 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP -#line 1332 "dhcp4_lexer.ll" +#line 1334 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -3940,7 +3979,7 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP -#line 1341 "dhcp4_lexer.ll" +#line 1343 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -3952,7 +3991,7 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP -#line 1350 "dhcp4_lexer.ll" +#line 1352 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3964,7 +4003,7 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP -#line 1359 "dhcp4_lexer.ll" +#line 1361 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3976,7 +4015,7 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP -#line 1368 "dhcp4_lexer.ll" +#line 1370 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3988,7 +4027,7 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP -#line 1377 "dhcp4_lexer.ll" +#line 1379 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4000,7 +4039,7 @@ YY_RULE_SETUP YY_BREAK case 131: YY_RULE_SETUP -#line 1386 "dhcp4_lexer.ll" +#line 1388 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4012,7 +4051,7 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP -#line 1395 "dhcp4_lexer.ll" +#line 1397 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4024,7 +4063,7 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP -#line 1404 "dhcp4_lexer.ll" +#line 1406 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4036,7 +4075,7 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP -#line 1413 "dhcp4_lexer.ll" +#line 1415 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4048,7 +4087,55 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP -#line 1422 "dhcp4_lexer.ll" +#line 1424 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + return isc::dhcp::Dhcp4Parser::make_DHCP_MULTI_THREADING(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_); + } +} + YY_BREAK +case 136: +YY_RULE_SETUP +#line 1433 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: + return isc::dhcp::Dhcp4Parser::make_ENABLE_MULTI_THREADING(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_); + } +} + YY_BREAK +case 137: +YY_RULE_SETUP +#line 1442 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: + return isc::dhcp::Dhcp4Parser::make_THREAD_POOL_SIZE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_); + } +} + YY_BREAK +case 138: +YY_RULE_SETUP +#line 1451 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: + return isc::dhcp::Dhcp4Parser::make_PACKET_QUEUE_SIZE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_); + } +} + YY_BREAK +case 139: +YY_RULE_SETUP +#line 1460 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4058,9 +4145,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 140: YY_RULE_SETUP -#line 1431 "dhcp4_lexer.ll" +#line 1469 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4070,9 +4157,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 141: YY_RULE_SETUP -#line 1440 "dhcp4_lexer.ll" +#line 1478 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4082,9 +4169,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 142: YY_RULE_SETUP -#line 1449 "dhcp4_lexer.ll" +#line 1487 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4094,9 +4181,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 143: YY_RULE_SETUP -#line 1458 "dhcp4_lexer.ll" +#line 1496 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4106,9 +4193,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 144: YY_RULE_SETUP -#line 1467 "dhcp4_lexer.ll" +#line 1505 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4118,9 +4205,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 145: YY_RULE_SETUP -#line 1476 "dhcp4_lexer.ll" +#line 1514 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4130,9 +4217,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 146: YY_RULE_SETUP -#line 1485 "dhcp4_lexer.ll" +#line 1523 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4142,9 +4229,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 147: YY_RULE_SETUP -#line 1494 "dhcp4_lexer.ll" +#line 1532 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4154,9 +4241,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 148: YY_RULE_SETUP -#line 1503 "dhcp4_lexer.ll" +#line 1541 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4166,9 +4253,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 149: YY_RULE_SETUP -#line 1512 "dhcp4_lexer.ll" +#line 1550 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4178,9 +4265,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 150: YY_RULE_SETUP -#line 1521 "dhcp4_lexer.ll" +#line 1559 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4190,9 +4277,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 151: YY_RULE_SETUP -#line 1530 "dhcp4_lexer.ll" +#line 1568 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4202,9 +4289,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 152: YY_RULE_SETUP -#line 1539 "dhcp4_lexer.ll" +#line 1577 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4214,9 +4301,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 153: YY_RULE_SETUP -#line 1548 "dhcp4_lexer.ll" +#line 1586 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4226,9 +4313,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 154: YY_RULE_SETUP -#line 1557 "dhcp4_lexer.ll" +#line 1595 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4238,9 +4325,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 155: YY_RULE_SETUP -#line 1566 "dhcp4_lexer.ll" +#line 1604 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4250,9 +4337,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 156: YY_RULE_SETUP -#line 1575 "dhcp4_lexer.ll" +#line 1613 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4262,9 +4349,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 157: YY_RULE_SETUP -#line 1584 "dhcp4_lexer.ll" +#line 1622 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4274,9 +4361,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 158: YY_RULE_SETUP -#line 1593 "dhcp4_lexer.ll" +#line 1631 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4286,9 +4373,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 159: YY_RULE_SETUP -#line 1602 "dhcp4_lexer.ll" +#line 1640 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4298,9 +4385,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 160: YY_RULE_SETUP -#line 1611 "dhcp4_lexer.ll" +#line 1649 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4313,9 +4400,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 161: YY_RULE_SETUP -#line 1623 "dhcp4_lexer.ll" +#line 1661 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4328,9 +4415,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 162: YY_RULE_SETUP -#line 1635 "dhcp4_lexer.ll" +#line 1673 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4341,9 +4428,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 159: +case 163: YY_RULE_SETUP -#line 1645 "dhcp4_lexer.ll" +#line 1683 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4354,9 +4441,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 160: +case 164: YY_RULE_SETUP -#line 1655 "dhcp4_lexer.ll" +#line 1693 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -4367,61 +4454,61 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 161: -YY_RULE_SETUP -#line 1665 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 162: -YY_RULE_SETUP -#line 1675 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 163: -YY_RULE_SETUP -#line 1685 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 164: -YY_RULE_SETUP -#line 1695 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK case 165: YY_RULE_SETUP -#line 1705 "dhcp4_lexer.ll" +#line 1703 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 166: +YY_RULE_SETUP +#line 1713 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 167: +YY_RULE_SETUP +#line 1723 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 168: +YY_RULE_SETUP +#line 1733 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 169: +YY_RULE_SETUP +#line 1743 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4432,9 +4519,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 166: +case 170: YY_RULE_SETUP -#line 1715 "dhcp4_lexer.ll" +#line 1753 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4445,9 +4532,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 167: +case 171: YY_RULE_SETUP -#line 1725 "dhcp4_lexer.ll" +#line 1763 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -4457,9 +4544,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 172: YY_RULE_SETUP -#line 1734 "dhcp4_lexer.ll" +#line 1772 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -4469,9 +4556,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 173: YY_RULE_SETUP -#line 1743 "dhcp4_lexer.ll" +#line 1781 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -4481,9 +4568,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 174: YY_RULE_SETUP -#line 1752 "dhcp4_lexer.ll" +#line 1790 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4493,9 +4580,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 175: YY_RULE_SETUP -#line 1761 "dhcp4_lexer.ll" +#line 1799 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4505,9 +4592,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 176: YY_RULE_SETUP -#line 1770 "dhcp4_lexer.ll" +#line 1808 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4517,9 +4604,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 177: YY_RULE_SETUP -#line 1779 "dhcp4_lexer.ll" +#line 1817 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4529,9 +4616,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 178: YY_RULE_SETUP -#line 1788 "dhcp4_lexer.ll" +#line 1826 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4543,9 +4630,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 179: YY_RULE_SETUP -#line 1799 "dhcp4_lexer.ll" +#line 1837 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4557,9 +4644,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 180: YY_RULE_SETUP -#line 1810 "dhcp4_lexer.ll" +#line 1848 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4573,9 +4660,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 181: YY_RULE_SETUP -#line 1823 "dhcp4_lexer.ll" +#line 1861 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4589,9 +4676,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 182: YY_RULE_SETUP -#line 1836 "dhcp4_lexer.ll" +#line 1874 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4605,9 +4692,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 183: YY_RULE_SETUP -#line 1851 "dhcp4_lexer.ll" +#line 1887 "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. @@ -4707,65 +4794,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 180: -/* rule 180 can match eol */ +case 184: +/* rule 184 can match eol */ YY_RULE_SETUP -#line 1950 "dhcp4_lexer.ll" +#line 1986 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 181: -/* rule 181 can match eol */ +case 185: +/* rule 185 can match eol */ YY_RULE_SETUP -#line 1955 "dhcp4_lexer.ll" +#line 1991 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 182: +case 186: YY_RULE_SETUP -#line 1960 "dhcp4_lexer.ll" +#line 1996 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 183: -YY_RULE_SETUP -#line 1965 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 184: -YY_RULE_SETUP -#line 1966 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 185: -YY_RULE_SETUP -#line 1967 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } - YY_BREAK -case 186: -YY_RULE_SETUP -#line 1968 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } - YY_BREAK case 187: YY_RULE_SETUP -#line 1969 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } +#line 2001 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 188: YY_RULE_SETUP -#line 1970 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } +#line 2002 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 189: YY_RULE_SETUP -#line 1972 "dhcp4_lexer.ll" +#line 2003 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 190: +YY_RULE_SETUP +#line 2004 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 191: +YY_RULE_SETUP +#line 2005 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 192: +YY_RULE_SETUP +#line 2006 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } + YY_BREAK +case 193: +YY_RULE_SETUP +#line 2008 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4784,9 +4871,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 190: +case 194: YY_RULE_SETUP -#line 1990 "dhcp4_lexer.ll" +#line 2026 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4800,43 +4887,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 191: +case 195: YY_RULE_SETUP -#line 2003 "dhcp4_lexer.ll" +#line 2039 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 192: +case 196: YY_RULE_SETUP -#line 2008 "dhcp4_lexer.ll" +#line 2044 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 193: +case 197: YY_RULE_SETUP -#line 2012 "dhcp4_lexer.ll" +#line 2048 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 194: +case 198: YY_RULE_SETUP -#line 2014 "dhcp4_lexer.ll" +#line 2050 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 195: +case 199: YY_RULE_SETUP -#line 2016 "dhcp4_lexer.ll" +#line 2052 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 196: +case 200: YY_RULE_SETUP -#line 2018 "dhcp4_lexer.ll" +#line 2054 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2020 "dhcp4_lexer.ll" +#line 2056 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -4860,12 +4947,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 197: +case 201: YY_RULE_SETUP -#line 2043 "dhcp4_lexer.ll" +#line 2079 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 4868 "dhcp4_lexer.cc" +#line 4956 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5184,7 +5271,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 >= 1776 ) + if ( yy_current_state >= 1839 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5217,11 +5304,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 >= 1776 ) + if ( yy_current_state >= 1839 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1775); + yy_is_jam = (yy_current_state == 1838); return yy_is_jam ? 0 : yy_current_state; } @@ -5970,7 +6057,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2043 "dhcp4_lexer.ll" +#line 2079 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 63673efb8b..05297189dd 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.5.3. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -30,24 +30,32 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - - // Take the name prefix into account. #define yylex parser4_lex +// First part of user declarations. +#line 39 "dhcp4_parser.cc" // lalr1.cc:404 + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif #include "dhcp4_parser.h" +// User implementation prologue. +#line 53 "dhcp4_parser.cc" // lalr1.cc:412 // Unqualified %code blocks. -#line 34 "dhcp4_parser.yy" +#line 34 "dhcp4_parser.yy" // lalr1.cc:413 #include -#line 51 "dhcp4_parser.cc" +#line 59 "dhcp4_parser.cc" // lalr1.cc:413 #ifndef YY_ @@ -62,15 +70,6 @@ # endif #endif -// Whether we are compiled with exception support. -#ifndef YY_EXCEPTIONS -# if defined __GNUC__ && !defined __EXCEPTIONS -# define YY_EXCEPTIONS 0 -# else -# define YY_EXCEPTIONS 1 -# endif -#endif - #define YYRHSLOC(Rhs, K) ((Rhs)[K].location) /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -88,10 +87,13 @@ { \ (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ } \ - while (false) + while (/*CONSTCOND*/ false) # endif +// Suppress unused-variable warnings by "using" E. +#define YYUSE(E) ((void) (E)) + // Enable debugging if requested. #if PARSER4_DEBUG @@ -104,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << '\n'; \ + *yycdebug_ << std::endl; \ } \ } while (false) @@ -123,9 +125,9 @@ #else // !PARSER4_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast (0) -# define YY_STACK_PRINT() static_cast (0) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) +# define YY_REDUCE_PRINT(Rule) static_cast(0) +# define YY_STACK_PRINT() static_cast(0) #endif // !PARSER4_DEBUG @@ -137,10 +139,9 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // lalr1.cc:479 namespace isc { namespace dhcp { -#line 143 "dhcp4_parser.cc" - +#line 145 "dhcp4_parser.cc" // lalr1.cc:479 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -152,7 +153,7 @@ namespace isc { namespace dhcp { { if (*yystr == '"') { - std::string yyr; + std::string yyr = ""; char const *yyp = yystr; for (;;) @@ -165,10 +166,7 @@ namespace isc { namespace dhcp { case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - else - goto append; - - append: + // Fall through. default: yyr += *yyp; break; @@ -185,11 +183,10 @@ namespace isc { namespace dhcp { /// Build a parser object. Dhcp4Parser::Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg) -#if PARSER4_DEBUG - : yydebug_ (false), - yycdebug_ (&std::cerr), -#else : +#if PARSER4_DEBUG + yydebug_ (false), + yycdebug_ (&std::cerr), #endif ctx (ctx_yyarg) {} @@ -197,8 +194,6 @@ namespace isc { namespace dhcp { Dhcp4Parser::~Dhcp4Parser () {} - Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} /*---------------. | Symbol types. | @@ -207,20 +202,24 @@ namespace isc { namespace dhcp { // by_state. - Dhcp4Parser::by_state::by_state () YY_NOEXCEPT + inline + Dhcp4Parser::by_state::by_state () : state (empty_state) {} - Dhcp4Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT - : state (that.state) + inline + Dhcp4Parser::by_state::by_state (const by_state& other) + : state (other.state) {} + inline void - Dhcp4Parser::by_state::clear () YY_NOEXCEPT + Dhcp4Parser::by_state::clear () { state = empty_state; } + inline void Dhcp4Parser::by_state::move (by_state& that) { @@ -228,94 +227,57 @@ namespace isc { namespace dhcp { that.clear (); } - Dhcp4Parser::by_state::by_state (state_type s) YY_NOEXCEPT + inline + Dhcp4Parser::by_state::by_state (state_type s) : state (s) {} + inline Dhcp4Parser::symbol_number_type - Dhcp4Parser::by_state::type_get () const YY_NOEXCEPT + Dhcp4Parser::by_state::type_get () const { if (state == empty_state) return empty_symbol; else - return yystos_[+state]; + return yystos_[state]; } + inline Dhcp4Parser::stack_symbol_type::stack_symbol_type () {} - Dhcp4Parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) - : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) + + inline + Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) + : super_type (s, that.location) { - switch (that.type_get ()) + switch (that.type_get ()) { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + value.move< ElementPtr > (that.value); break; - case 190: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); + case 194: // "boolean" + value.move< bool > (that.value); break; - case 189: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); + case 193: // "floating point" + value.move< double > (that.value); break; - case 188: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); + case 192: // "integer" + value.move< int64_t > (that.value); break; - case 187: // "constant string" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - -#if 201103L <= YY_CPLUSPLUS - // that is emptied. - that.state = empty_state; -#endif - } - - Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) - : super_type (s, YY_MOVE (that.location)) - { - switch (that.type_get ()) - { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (that.value)); - break; - - case 190: // "boolean" - value.move< bool > (YY_MOVE (that.value)); - break; - - case 189: // "floating point" - value.move< double > (YY_MOVE (that.value)); - break; - - case 188: // "integer" - value.move< int64_t > (YY_MOVE (that.value)); - break; - - case 187: // "constant string" - value.move< std::string > (YY_MOVE (that.value)); + case 191: // "constant string" + value.move< std::string > (that.value); break; default: @@ -326,37 +288,37 @@ namespace isc { namespace dhcp { that.type = empty_symbol; } -#if YY_CPLUSPLUS < 201103L + inline Dhcp4Parser::stack_symbol_type& Dhcp4Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.type_get ()) + switch (that.type_get ()) { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case 190: // "boolean" + case 194: // "boolean" value.copy< bool > (that.value); break; - case 189: // "floating point" + case 193: // "floating point" value.copy< double > (that.value); break; - case 188: // "integer" + case 192: // "integer" value.copy< int64_t > (that.value); break; - case 187: // "constant string" + case 191: // "constant string" value.copy< std::string > (that.value); break; @@ -368,51 +330,9 @@ namespace isc { namespace dhcp { return *this; } - Dhcp4Parser::stack_symbol_type& - Dhcp4Parser::stack_symbol_type::operator= (stack_symbol_type& that) - { - state = that.state; - switch (that.type_get ()) - { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.move< ElementPtr > (that.value); - break; - - case 190: // "boolean" - value.move< bool > (that.value); - break; - - case 189: // "floating point" - value.move< double > (that.value); - break; - - case 188: // "integer" - value.move< int64_t > (that.value); - break; - - case 187: // "constant string" - value.move< std::string > (that.value); - break; - - default: - break; - } - - location = that.location; - // that is emptied. - that.state = empty_state; - return *this; - } -#endif template + inline void Dhcp4Parser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const { @@ -429,89 +349,100 @@ namespace isc { namespace dhcp { std::ostream& yyoutput = yyo; YYUSE (yyoutput); symbol_number_type yytype = yysym.type_get (); -#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408 // Avoid a (spurious) G++ 4.8 warning about "array subscript is // below array bounds". if (yysym.empty ()) std::abort (); -#endif yyo << (yytype < yyntokens_ ? "token" : "nterm") << ' ' << yytname_[yytype] << " (" << yysym.location << ": "; switch (yytype) { - case 187: // "constant string" -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < std::string > (); } -#line 447 "dhcp4_parser.cc" + case 191: // "constant string" + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< std::string > (); } +#line 366 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 188: // "integer" -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < int64_t > (); } -#line 453 "dhcp4_parser.cc" + case 192: // "integer" + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< int64_t > (); } +#line 373 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 189: // "floating point" -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < double > (); } -#line 459 "dhcp4_parser.cc" + case 193: // "floating point" + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< double > (); } +#line 380 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 190: // "boolean" -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < bool > (); } -#line 465 "dhcp4_parser.cc" + case 194: // "boolean" + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< bool > (); } +#line 387 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 207: // value -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 471 "dhcp4_parser.cc" + case 211: // value + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 394 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 211: // map_value -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 477 "dhcp4_parser.cc" + case 215: // map_value + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 401 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 252: // ddns_replace_client_name_value -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 483 "dhcp4_parser.cc" + case 256: // ddns_replace_client_name_value + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 408 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 274: // socket_type -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 489 "dhcp4_parser.cc" + case 278: // socket_type + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 415 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 277: // outbound_interface_value -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 495 "dhcp4_parser.cc" + case 281: // outbound_interface_value + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 422 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 299: // db_type -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 501 "dhcp4_parser.cc" + case 303: // db_type + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 429 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 386: // hr_mode -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 507 "dhcp4_parser.cc" + case 397: // hr_mode + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 436 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 541: // ncr_protocol_value -#line 269 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 513 "dhcp4_parser.cc" + case 552: // ncr_protocol_value + +#line 274 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 443 "dhcp4_parser.cc" // lalr1.cc:636 break; + default: break; } @@ -519,27 +450,26 @@ namespace isc { namespace dhcp { } #endif + inline void - Dhcp4Parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) + Dhcp4Parser::yypush_ (const char* m, state_type s, symbol_type& sym) + { + stack_symbol_type t (s, sym); + yypush_ (m, t); + } + + inline + void + Dhcp4Parser::yypush_ (const char* m, stack_symbol_type& s) { if (m) - YY_SYMBOL_PRINT (m, sym); - yystack_.push (YY_MOVE (sym)); + YY_SYMBOL_PRINT (m, s); + yystack_.push (s); } + inline void - Dhcp4Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) - { -#if 201103L <= YY_CPLUSPLUS - yypush_ (m, stack_symbol_type (s, std::move (sym))); -#else - stack_symbol_type ss (s, sym); - yypush_ (m, ss); -#endif - } - - void - Dhcp4Parser::yypop_ (int n) + Dhcp4Parser::yypop_ (unsigned int n) { yystack_.pop (n); } @@ -571,7 +501,7 @@ namespace isc { namespace dhcp { } #endif // PARSER4_DEBUG - Dhcp4Parser::state_type + inline Dhcp4Parser::state_type Dhcp4Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { int yyr = yypgoto_[yysym - yyntokens_] + yystate; @@ -581,27 +511,22 @@ namespace isc { namespace dhcp { return yydefgoto_[yysym - yyntokens_]; } - bool + inline bool Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } - bool + inline bool Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } - int - Dhcp4Parser::operator() () - { - return parse (); - } - int Dhcp4Parser::parse () { + // State. int yyn; /// Length of the RHS of the rule being reduced. int yylen = 0; @@ -619,11 +544,11 @@ namespace isc { namespace dhcp { /// The return value of parse (). int yyresult; -#if YY_EXCEPTIONS + // FIXME: This shoud be completely indented. It is not yet to + // avoid gratuitous conflicts when merging into the master branch. try -#endif // YY_EXCEPTIONS { - YYCDEBUG << "Starting parse\n"; + YYCDEBUG << "Starting parse" << std::endl; /* Initialize the stack. The initial state will be set in @@ -631,27 +556,23 @@ namespace isc { namespace dhcp { location values to have been already stored, initialize these stacks with a primary value. */ yystack_.clear (); - yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); + yypush_ (YY_NULLPTR, 0, yyla); - /*-----------------------------------------------. - | yynewstate -- push a new symbol on the stack. | - `-----------------------------------------------*/ + // A new symbol was pushed on the stack. yynewstate: - YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; + YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; // Accept? if (yystack_[0].state == yyfinal_) - YYACCEPT; + goto yyacceptlab; goto yybackup; - - /*-----------. - | yybackup. | - `-----------*/ + // Backup. yybackup: + // Try to take a decision without lookahead. - yyn = yypact_[+yystack_[0].state]; + yyn = yypact_[yystack_[0].state]; if (yy_pact_value_is_default_ (yyn)) goto yydefault; @@ -659,21 +580,16 @@ namespace isc { namespace dhcp { if (yyla.empty ()) { YYCDEBUG << "Reading a token: "; -#if YY_EXCEPTIONS try -#endif // YY_EXCEPTIONS { symbol_type yylookahead (yylex (ctx)); yyla.move (yylookahead); } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); goto yyerrlab1; } -#endif // YY_EXCEPTIONS } YY_SYMBOL_PRINT ("Next token is", yyla); @@ -681,9 +597,7 @@ namespace isc { namespace dhcp { to detect an error, take that action. */ yyn += yyla.type_get (); if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) - { - goto yydefault; - } + goto yydefault; // Reduce or error. yyn = yytable_[yyn]; @@ -700,58 +614,56 @@ namespace isc { namespace dhcp { --yyerrstatus_; // Shift the lookahead token. - yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); + yypush_ ("Shifting", yyn, yyla); goto yynewstate; - /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: - yyn = yydefact_[+yystack_[0].state]; + yyn = yydefact_[yystack_[0].state]; if (yyn == 0) goto yyerrlab; goto yyreduce; - /*-----------------------------. - | yyreduce -- do a reduction. | + | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: yylen = yyr2_[yyn]; { stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); + yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]); /* Variants are always initialized to an empty instance of the correct type. The default '$$ = $1' action is NOT applied when using variants. */ - switch (yyr1_[yyn]) + switch (yyr1_[yyn]) { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - yylhs.value.emplace< ElementPtr > (); + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + yylhs.value.build< ElementPtr > (); break; - case 190: // "boolean" - yylhs.value.emplace< bool > (); + case 194: // "boolean" + yylhs.value.build< bool > (); break; - case 189: // "floating point" - yylhs.value.emplace< double > (); + case 193: // "floating point" + yylhs.value.build< double > (); break; - case 188: // "integer" - yylhs.value.emplace< int64_t > (); + case 192: // "integer" + yylhs.value.build< int64_t > (); break; - case 187: // "constant string" - yylhs.value.emplace< std::string > (); + case 191: // "constant string" + yylhs.value.build< std::string > (); break; default: @@ -759,297 +671,294 @@ namespace isc { namespace dhcp { } - // Default location. + // Compute the default @$. { - stack_type::slice range (yystack_, yylen); - YYLLOC_DEFAULT (yylhs.location, range, yylen); - yyerror_range[1].location = yylhs.location; + slice slice (yystack_, yylen); + YYLLOC_DEFAULT (yylhs.location, slice, yylen); } // Perform the reduction. YY_REDUCE_PRINT (yyn); -#if YY_EXCEPTIONS try -#endif // YY_EXCEPTIONS { switch (yyn) { case 2: -#line 278 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 781 "dhcp4_parser.cc" +#line 283 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.NO_KEYWORD; } +#line 690 "dhcp4_parser.cc" // lalr1.cc:859 break; case 4: -#line 279 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.CONFIG; } -#line 787 "dhcp4_parser.cc" +#line 284 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG; } +#line 696 "dhcp4_parser.cc" // lalr1.cc:859 break; case 6: -#line 280 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.DHCP4; } -#line 793 "dhcp4_parser.cc" +#line 285 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP4; } +#line 702 "dhcp4_parser.cc" // lalr1.cc:859 break; case 8: -#line 281 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 799 "dhcp4_parser.cc" +#line 286 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.INTERFACES_CONFIG; } +#line 708 "dhcp4_parser.cc" // lalr1.cc:859 break; case 10: -#line 282 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.SUBNET4; } -#line 805 "dhcp4_parser.cc" +#line 287 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.SUBNET4; } +#line 714 "dhcp4_parser.cc" // lalr1.cc:859 break; case 12: -#line 283 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.POOLS; } -#line 811 "dhcp4_parser.cc" +#line 288 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.POOLS; } +#line 720 "dhcp4_parser.cc" // lalr1.cc:859 break; case 14: -#line 284 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.RESERVATIONS; } -#line 817 "dhcp4_parser.cc" +#line 289 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.RESERVATIONS; } +#line 726 "dhcp4_parser.cc" // lalr1.cc:859 break; case 16: -#line 285 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.DHCP4; } -#line 823 "dhcp4_parser.cc" +#line 290 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP4; } +#line 732 "dhcp4_parser.cc" // lalr1.cc:859 break; case 18: -#line 286 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.OPTION_DEF; } -#line 829 "dhcp4_parser.cc" +#line 291 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DEF; } +#line 738 "dhcp4_parser.cc" // lalr1.cc:859 break; case 20: -#line 287 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.OPTION_DATA; } -#line 835 "dhcp4_parser.cc" +#line 292 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DATA; } +#line 744 "dhcp4_parser.cc" // lalr1.cc:859 break; case 22: -#line 288 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 841 "dhcp4_parser.cc" +#line 293 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } +#line 750 "dhcp4_parser.cc" // lalr1.cc:859 break; case 24: -#line 289 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 847 "dhcp4_parser.cc" +#line 294 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP_DDNS; } +#line 756 "dhcp4_parser.cc" // lalr1.cc:859 break; case 26: -#line 290 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.LOGGING; } -#line 853 "dhcp4_parser.cc" +#line 295 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.LOGGING; } +#line 762 "dhcp4_parser.cc" // lalr1.cc:859 break; case 28: -#line 291 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 859 "dhcp4_parser.cc" +#line 296 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG_CONTROL; } +#line 768 "dhcp4_parser.cc" // lalr1.cc:859 break; case 30: -#line 299 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 865 "dhcp4_parser.cc" +#line 304 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } +#line 774 "dhcp4_parser.cc" // lalr1.cc:859 break; case 31: -#line 300 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 871 "dhcp4_parser.cc" +#line 305 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } +#line 780 "dhcp4_parser.cc" // lalr1.cc:859 break; case 32: -#line 301 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 877 "dhcp4_parser.cc" +#line 306 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 786 "dhcp4_parser.cc" // lalr1.cc:859 break; case 33: -#line 302 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 883 "dhcp4_parser.cc" +#line 307 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } +#line 792 "dhcp4_parser.cc" // lalr1.cc:859 break; case 34: -#line 303 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 889 "dhcp4_parser.cc" +#line 308 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 798 "dhcp4_parser.cc" // lalr1.cc:859 break; case 35: -#line 304 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 895 "dhcp4_parser.cc" +#line 309 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 804 "dhcp4_parser.cc" // lalr1.cc:859 break; case 36: -#line 305 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 901 "dhcp4_parser.cc" +#line 310 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 810 "dhcp4_parser.cc" // lalr1.cc:859 break; case 37: -#line 308 "dhcp4_parser.yy" - { +#line 313 "dhcp4_parser.yy" // lalr1.cc:859 + { // Push back the JSON value on the stack - ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); } -#line 910 "dhcp4_parser.cc" +#line 819 "dhcp4_parser.cc" // lalr1.cc:859 break; case 38: -#line 313 "dhcp4_parser.yy" - { +#line 318 "dhcp4_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 921 "dhcp4_parser.cc" +#line 830 "dhcp4_parser.cc" // lalr1.cc:859 break; case 39: -#line 318 "dhcp4_parser.yy" - { +#line 323 "dhcp4_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 931 "dhcp4_parser.cc" +#line 840 "dhcp4_parser.cc" // lalr1.cc:859 break; case 40: -#line 324 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 937 "dhcp4_parser.cc" +#line 329 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 846 "dhcp4_parser.cc" // lalr1.cc:859 break; case 43: -#line 331 "dhcp4_parser.yy" - { +#line 336 "dhcp4_parser.yy" // lalr1.cc:859 + { // map containing a single entry - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 946 "dhcp4_parser.cc" +#line 855 "dhcp4_parser.cc" // lalr1.cc:859 break; case 44: -#line 335 "dhcp4_parser.yy" - { +#line 340 "dhcp4_parser.yy" // lalr1.cc:859 + { // map consisting of a shorter map followed by // comma and string:value - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 956 "dhcp4_parser.cc" +#line 865 "dhcp4_parser.cc" // lalr1.cc:859 break; case 45: -#line 342 "dhcp4_parser.yy" - { +#line 347 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 965 "dhcp4_parser.cc" +#line 874 "dhcp4_parser.cc" // lalr1.cc:859 break; case 46: -#line 345 "dhcp4_parser.yy" - { +#line 350 "dhcp4_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here } -#line 973 "dhcp4_parser.cc" +#line 882 "dhcp4_parser.cc" // lalr1.cc:859 break; case 49: -#line 353 "dhcp4_parser.yy" - { +#line 358 "dhcp4_parser.yy" // lalr1.cc:859 + { // List consisting of a single element. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 982 "dhcp4_parser.cc" +#line 891 "dhcp4_parser.cc" // lalr1.cc:859 break; case 50: -#line 357 "dhcp4_parser.yy" - { +#line 362 "dhcp4_parser.yy" // lalr1.cc:859 + { // List ending with , and a value. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 991 "dhcp4_parser.cc" +#line 900 "dhcp4_parser.cc" // lalr1.cc:859 break; case 51: -#line 364 "dhcp4_parser.yy" - { +#line 369 "dhcp4_parser.yy" // lalr1.cc:859 + { // List parsing about to start } -#line 999 "dhcp4_parser.cc" +#line 908 "dhcp4_parser.cc" // lalr1.cc:859 break; case 52: -#line 366 "dhcp4_parser.yy" - { +#line 371 "dhcp4_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 1008 "dhcp4_parser.cc" +#line 917 "dhcp4_parser.cc" // lalr1.cc:859 break; case 55: -#line 375 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 380 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1017 "dhcp4_parser.cc" +#line 926 "dhcp4_parser.cc" // lalr1.cc:859 break; case 56: -#line 379 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 384 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1026 "dhcp4_parser.cc" +#line 935 "dhcp4_parser.cc" // lalr1.cc:859 break; case 57: -#line 390 "dhcp4_parser.yy" - { +#line 395 "dhcp4_parser.yy" // lalr1.cc:859 + { const std::string& where = ctx.contextName(); - const std::string& keyword = yystack_[1].value.as < std::string > (); + const std::string& keyword = yystack_[1].value.as< std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 1037 "dhcp4_parser.cc" +#line 946 "dhcp4_parser.cc" // lalr1.cc:859 break; case 58: -#line 400 "dhcp4_parser.yy" - { +#line 405 "dhcp4_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1048 "dhcp4_parser.cc" +#line 957 "dhcp4_parser.cc" // lalr1.cc:859 break; case 59: -#line 405 "dhcp4_parser.yy" - { +#line 410 "dhcp4_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. @@ -1057,12 +966,12 @@ namespace isc { namespace dhcp { // Dhcp4 is required ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1061 "dhcp4_parser.cc" +#line 970 "dhcp4_parser.cc" // lalr1.cc:859 break; case 68: -#line 429 "dhcp4_parser.yy" - { +#line 434 "dhcp4_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1070,1163 +979,1212 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP4); } -#line 1074 "dhcp4_parser.cc" +#line 983 "dhcp4_parser.cc" // lalr1.cc:859 break; case 69: -#line 436 "dhcp4_parser.yy" - { +#line 441 "dhcp4_parser.yy" // lalr1.cc:859 + { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1084 "dhcp4_parser.cc" +#line 993 "dhcp4_parser.cc" // lalr1.cc:859 break; case 70: -#line 444 "dhcp4_parser.yy" - { +#line 449 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1094 "dhcp4_parser.cc" +#line 1003 "dhcp4_parser.cc" // lalr1.cc:859 break; case 71: -#line 448 "dhcp4_parser.yy" - { +#line 453 "dhcp4_parser.yy" // lalr1.cc:859 + { // No global parameter is required // parsing completed } -#line 1103 "dhcp4_parser.cc" - break; - - case 125: -#line 512 "dhcp4_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("valid-lifetime", prf); -} -#line 1112 "dhcp4_parser.cc" +#line 1012 "dhcp4_parser.cc" // lalr1.cc:859 break; case 126: -#line 517 "dhcp4_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("min-valid-lifetime", prf); +#line 518 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1121 "dhcp4_parser.cc" +#line 1021 "dhcp4_parser.cc" // lalr1.cc:859 break; case 127: -#line 522 "dhcp4_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-valid-lifetime", prf); +#line 523 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1130 "dhcp4_parser.cc" +#line 1030 "dhcp4_parser.cc" // lalr1.cc:859 break; case 128: -#line 527 "dhcp4_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("renew-timer", prf); +#line 528 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1139 "dhcp4_parser.cc" +#line 1039 "dhcp4_parser.cc" // lalr1.cc:859 break; case 129: -#line 532 "dhcp4_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("rebind-timer", prf); +#line 533 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("renew-timer", prf); } -#line 1148 "dhcp4_parser.cc" +#line 1048 "dhcp4_parser.cc" // lalr1.cc:859 break; case 130: -#line 537 "dhcp4_parser.yy" - { - ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("calculate-tee-times", ctt); +#line 538 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("rebind-timer", prf); } -#line 1157 "dhcp4_parser.cc" +#line 1057 "dhcp4_parser.cc" // lalr1.cc:859 break; case 131: -#line 542 "dhcp4_parser.yy" - { - ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("t1-percent", t1); +#line 543 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1166 "dhcp4_parser.cc" +#line 1066 "dhcp4_parser.cc" // lalr1.cc:859 break; case 132: -#line 547 "dhcp4_parser.yy" - { - ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("t2-percent", t2); +#line 548 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t1-percent", t1); } -#line 1175 "dhcp4_parser.cc" +#line 1075 "dhcp4_parser.cc" // lalr1.cc:859 break; case 133: -#line 552 "dhcp4_parser.yy" - { - ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("decline-probation-period", dpp); +#line 553 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t2-percent", t2); } -#line 1184 "dhcp4_parser.cc" +#line 1084 "dhcp4_parser.cc" // lalr1.cc:859 break; case 134: -#line 557 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 558 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1192 "dhcp4_parser.cc" +#line 1093 "dhcp4_parser.cc" // lalr1.cc:859 break; case 135: -#line 559 "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); - ctx.leave(); +#line 563 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1202 "dhcp4_parser.cc" +#line 1101 "dhcp4_parser.cc" // lalr1.cc:859 break; case 136: -#line 565 "dhcp4_parser.yy" - { - ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("echo-client-id", echo); +#line 565 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("server-tag", stag); + ctx.leave(); } -#line 1211 "dhcp4_parser.cc" +#line 1111 "dhcp4_parser.cc" // lalr1.cc:859 break; case 137: -#line 570 "dhcp4_parser.yy" - { - ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("match-client-id", match); +#line 571 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("echo-client-id", echo); } -#line 1220 "dhcp4_parser.cc" +#line 1120 "dhcp4_parser.cc" // lalr1.cc:859 break; case 138: -#line 575 "dhcp4_parser.yy" - { - ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("authoritative", prf); +#line 576 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("match-client-id", match); } -#line 1229 "dhcp4_parser.cc" +#line 1129 "dhcp4_parser.cc" // lalr1.cc:859 break; case 139: -#line 580 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ddns-send-updates", b); +#line 581 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("authoritative", prf); } -#line 1238 "dhcp4_parser.cc" +#line 1138 "dhcp4_parser.cc" // lalr1.cc:859 break; case 140: -#line 585 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ddns-override-no-update", b); +#line 586 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1247 "dhcp4_parser.cc" +#line 1147 "dhcp4_parser.cc" // lalr1.cc:859 break; case 141: -#line 590 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ddns-override-client-update", b); +#line 591 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1256 "dhcp4_parser.cc" +#line 1156 "dhcp4_parser.cc" // lalr1.cc:859 break; case 142: -#line 595 "dhcp4_parser.yy" - { - ctx.enter(ctx.REPLACE_CLIENT_NAME); +#line 596 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1264 "dhcp4_parser.cc" +#line 1165 "dhcp4_parser.cc" // lalr1.cc:859 break; case 143: -#line 597 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 601 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 1273 "dhcp4_parser.cc" +#line 1173 "dhcp4_parser.cc" // lalr1.cc:859 break; case 144: -#line 603 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); - } -#line 1281 "dhcp4_parser.cc" +#line 603 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 1182 "dhcp4_parser.cc" // lalr1.cc:859 break; case 145: -#line 606 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); +#line 609 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1289 "dhcp4_parser.cc" +#line 1190 "dhcp4_parser.cc" // lalr1.cc:859 break; case 146: -#line 609 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); +#line 612 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1297 "dhcp4_parser.cc" +#line 1198 "dhcp4_parser.cc" // lalr1.cc:859 break; case 147: -#line 612 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); +#line 615 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1305 "dhcp4_parser.cc" +#line 1206 "dhcp4_parser.cc" // lalr1.cc:859 break; case 148: -#line 615 "dhcp4_parser.yy" - { - error(yystack_[0].location, "boolean values for the replace-client-name are " - "no longer supported"); +#line 618 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1314 "dhcp4_parser.cc" +#line 1214 "dhcp4_parser.cc" // lalr1.cc:859 break; case 149: -#line 621 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1322 "dhcp4_parser.cc" +#line 621 "dhcp4_parser.yy" // lalr1.cc:859 + { + error(yystack_[0].location, "boolean values for the replace-client-name are " + "no longer supported"); + } +#line 1223 "dhcp4_parser.cc" // lalr1.cc:859 break; case 150: -#line 623 "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); - ctx.leave(); +#line 627 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1332 "dhcp4_parser.cc" +#line 1231 "dhcp4_parser.cc" // lalr1.cc:859 break; case 151: -#line 629 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 629 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-generated-prefix", s); + ctx.leave(); } -#line 1340 "dhcp4_parser.cc" +#line 1241 "dhcp4_parser.cc" // lalr1.cc:859 break; case 152: -#line 631 "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); - ctx.leave(); +#line 635 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1350 "dhcp4_parser.cc" +#line 1249 "dhcp4_parser.cc" // lalr1.cc:859 break; case 153: -#line 637 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 637 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-qualifying-suffix", s); + ctx.leave(); } -#line 1358 "dhcp4_parser.cc" +#line 1259 "dhcp4_parser.cc" // lalr1.cc:859 break; case 154: -#line 639 "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); - ctx.leave(); +#line 643 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1368 "dhcp4_parser.cc" +#line 1267 "dhcp4_parser.cc" // lalr1.cc:859 break; case 155: -#line 645 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 645 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-set", s); + ctx.leave(); } -#line 1376 "dhcp4_parser.cc" +#line 1277 "dhcp4_parser.cc" // lalr1.cc:859 break; case 156: -#line 647 "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); - ctx.leave(); +#line 651 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1386 "dhcp4_parser.cc" +#line 1285 "dhcp4_parser.cc" // lalr1.cc:859 break; case 157: -#line 653 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("store-extended-info", b); +#line 653 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-replacement", s); + ctx.leave(); } -#line 1395 "dhcp4_parser.cc" +#line 1295 "dhcp4_parser.cc" // lalr1.cc:859 break; case 158: -#line 658 "dhcp4_parser.yy" - { - ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("statistic-default-sample-count", count); +#line 659 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("store-extended-info", b); } -#line 1404 "dhcp4_parser.cc" +#line 1304 "dhcp4_parser.cc" // lalr1.cc:859 break; case 159: -#line 663 "dhcp4_parser.yy" - { - ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("statistic-default-sample-age", age); +#line 664 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr count(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1413 "dhcp4_parser.cc" +#line 1313 "dhcp4_parser.cc" // lalr1.cc:859 break; case 160: -#line 668 "dhcp4_parser.yy" - { +#line 669 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr age(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("statistic-default-sample-age", age); +} +#line 1322 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 161: +#line 674 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1424 "dhcp4_parser.cc" +#line 1333 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 161: -#line 673 "dhcp4_parser.yy" - { + case 162: +#line 679 "dhcp4_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1434 "dhcp4_parser.cc" +#line 1343 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 171: -#line 692 "dhcp4_parser.yy" - { + case 172: +#line 698 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1444 "dhcp4_parser.cc" - break; - - case 172: -#line 696 "dhcp4_parser.yy" - { - // No interfaces config param is required - // parsing completed -} -#line 1453 "dhcp4_parser.cc" +#line 1353 "dhcp4_parser.cc" // lalr1.cc:859 break; case 173: -#line 701 "dhcp4_parser.yy" - { +#line 702 "dhcp4_parser.yy" // lalr1.cc:859 + { + // No interfaces config param is required + // parsing completed +} +#line 1362 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 174: +#line 707 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1464 "dhcp4_parser.cc" - break; - - case 174: -#line 706 "dhcp4_parser.yy" - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 1473 "dhcp4_parser.cc" +#line 1373 "dhcp4_parser.cc" // lalr1.cc:859 break; case 175: -#line 711 "dhcp4_parser.yy" - { - ctx.enter(ctx.DHCP_SOCKET_TYPE); +#line 712 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); + ctx.leave(); } -#line 1481 "dhcp4_parser.cc" +#line 1382 "dhcp4_parser.cc" // lalr1.cc:859 break; case 176: -#line 713 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 717 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1490 "dhcp4_parser.cc" +#line 1390 "dhcp4_parser.cc" // lalr1.cc:859 break; case 177: -#line 718 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1496 "dhcp4_parser.cc" +#line 719 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 1399 "dhcp4_parser.cc" // lalr1.cc:859 break; case 178: -#line 719 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1502 "dhcp4_parser.cc" +#line 724 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } +#line 1405 "dhcp4_parser.cc" // lalr1.cc:859 break; case 179: -#line 722 "dhcp4_parser.yy" - { - ctx.enter(ctx.OUTBOUND_INTERFACE); -} -#line 1510 "dhcp4_parser.cc" +#line 725 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } +#line 1411 "dhcp4_parser.cc" // lalr1.cc:859 break; case 180: -#line 724 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 728 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1519 "dhcp4_parser.cc" +#line 1419 "dhcp4_parser.cc" // lalr1.cc:859 break; case 181: -#line 729 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); +#line 730 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); } -#line 1527 "dhcp4_parser.cc" +#line 1428 "dhcp4_parser.cc" // lalr1.cc:859 break; case 182: -#line 731 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); - } -#line 1535 "dhcp4_parser.cc" +#line 735 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); +} +#line 1436 "dhcp4_parser.cc" // lalr1.cc:859 break; case 183: -#line 735 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("re-detect", b); -} -#line 1544 "dhcp4_parser.cc" +#line 737 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); + } +#line 1444 "dhcp4_parser.cc" // lalr1.cc:859 break; case 184: -#line 741 "dhcp4_parser.yy" - { +#line 741 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("re-detect", b); +} +#line 1453 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 185: +#line 747 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1555 "dhcp4_parser.cc" +#line 1464 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 185: -#line 746 "dhcp4_parser.yy" - { + case 186: +#line 752 "dhcp4_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1566 "dhcp4_parser.cc" +#line 1475 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 186: -#line 753 "dhcp4_parser.yy" - { + case 187: +#line 759 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1577 "dhcp4_parser.cc" +#line 1486 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 187: -#line 758 "dhcp4_parser.yy" - { + case 188: +#line 764 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1586 "dhcp4_parser.cc" - break; - - case 191: -#line 768 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1594 "dhcp4_parser.cc" +#line 1495 "dhcp4_parser.cc" // lalr1.cc:859 break; case 192: -#line 770 "dhcp4_parser.yy" - { - - if ( (string(yystack_[0].value.as < std::string > ()) == "none") || - (string(yystack_[0].value.as < std::string > ()) == "warn") || - (string(yystack_[0].value.as < std::string > ()) == "fix") || - (string(yystack_[0].value.as < std::string > ()) == "fix-del") || - (string(yystack_[0].value.as < std::string > ()) == "del")) { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("lease-checks", user); - ctx.leave(); - } else { - error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as < std::string > ()) + - ", supported values are: none, warn, fix, fix-del, del"); - } +#line 774 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1614 "dhcp4_parser.cc" +#line 1503 "dhcp4_parser.cc" // lalr1.cc:859 break; case 193: -#line 786 "dhcp4_parser.yy" - { +#line 776 "dhcp4_parser.yy" // lalr1.cc:859 + { + + if ( (string(yystack_[0].value.as< std::string > ()) == "none") || + (string(yystack_[0].value.as< std::string > ()) == "warn") || + (string(yystack_[0].value.as< std::string > ()) == "fix") || + (string(yystack_[0].value.as< std::string > ()) == "fix-del") || + (string(yystack_[0].value.as< std::string > ()) == "del")) { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("lease-checks", user); + ctx.leave(); + } else { + error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as< std::string > ()) + + ", supported values are: none, warn, fix, fix-del, del"); + } +} +#line 1523 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 194: +#line 792 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1625 "dhcp4_parser.cc" +#line 1534 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 194: -#line 791 "dhcp4_parser.yy" - { + case 195: +#line 797 "dhcp4_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1636 "dhcp4_parser.cc" +#line 1545 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 195: -#line 798 "dhcp4_parser.yy" - { + case 196: +#line 804 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1647 "dhcp4_parser.cc" +#line 1556 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 196: -#line 803 "dhcp4_parser.yy" - { + case 197: +#line 809 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1656 "dhcp4_parser.cc" +#line 1565 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 201: -#line 816 "dhcp4_parser.yy" - { + case 202: +#line 822 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1666 "dhcp4_parser.cc" +#line 1575 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 202: -#line 820 "dhcp4_parser.yy" - { + case 203: +#line 826 "dhcp4_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1676 "dhcp4_parser.cc" - break; - - case 226: -#line 853 "dhcp4_parser.yy" - { - ctx.enter(ctx.DATABASE_TYPE); -} -#line 1684 "dhcp4_parser.cc" +#line 1585 "dhcp4_parser.cc" // lalr1.cc:859 break; case 227: -#line 855 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 859 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.DATABASE_TYPE); } -#line 1693 "dhcp4_parser.cc" +#line 1593 "dhcp4_parser.cc" // lalr1.cc:859 break; case 228: -#line 860 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1699 "dhcp4_parser.cc" +#line 861 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 1602 "dhcp4_parser.cc" // lalr1.cc:859 break; case 229: -#line 861 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1705 "dhcp4_parser.cc" +#line 866 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1608 "dhcp4_parser.cc" // lalr1.cc:859 break; case 230: -#line 862 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1711 "dhcp4_parser.cc" +#line 867 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1614 "dhcp4_parser.cc" // lalr1.cc:859 break; case 231: -#line 863 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1717 "dhcp4_parser.cc" +#line 868 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1620 "dhcp4_parser.cc" // lalr1.cc:859 break; case 232: -#line 866 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1725 "dhcp4_parser.cc" +#line 869 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1626 "dhcp4_parser.cc" // lalr1.cc:859 break; case 233: -#line 868 "dhcp4_parser.yy" - { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("user", user); - ctx.leave(); +#line 872 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1735 "dhcp4_parser.cc" +#line 1634 "dhcp4_parser.cc" // lalr1.cc:859 break; case 234: -#line 874 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 874 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("user", user); + ctx.leave(); } -#line 1743 "dhcp4_parser.cc" +#line 1644 "dhcp4_parser.cc" // lalr1.cc:859 break; case 235: -#line 876 "dhcp4_parser.yy" - { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("password", pwd); - ctx.leave(); +#line 880 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1753 "dhcp4_parser.cc" +#line 1652 "dhcp4_parser.cc" // lalr1.cc:859 break; case 236: -#line 882 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 882 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("password", pwd); + ctx.leave(); } -#line 1761 "dhcp4_parser.cc" +#line 1662 "dhcp4_parser.cc" // lalr1.cc:859 break; case 237: -#line 884 "dhcp4_parser.yy" - { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("host", h); - ctx.leave(); +#line 888 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1771 "dhcp4_parser.cc" +#line 1670 "dhcp4_parser.cc" // lalr1.cc:859 break; case 238: -#line 890 "dhcp4_parser.yy" - { - ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("port", p); +#line 890 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("host", h); + ctx.leave(); } -#line 1780 "dhcp4_parser.cc" +#line 1680 "dhcp4_parser.cc" // lalr1.cc:859 break; case 239: -#line 895 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 896 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("port", p); } -#line 1788 "dhcp4_parser.cc" +#line 1689 "dhcp4_parser.cc" // lalr1.cc:859 break; case 240: -#line 897 "dhcp4_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("name", name); - ctx.leave(); +#line 901 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1798 "dhcp4_parser.cc" +#line 1697 "dhcp4_parser.cc" // lalr1.cc:859 break; case 241: -#line 903 "dhcp4_parser.yy" - { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("persist", n); +#line 903 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("name", name); + ctx.leave(); } -#line 1807 "dhcp4_parser.cc" +#line 1707 "dhcp4_parser.cc" // lalr1.cc:859 break; case 242: -#line 908 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("lfc-interval", n); +#line 909 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("persist", n); } -#line 1816 "dhcp4_parser.cc" +#line 1716 "dhcp4_parser.cc" // lalr1.cc:859 break; case 243: -#line 913 "dhcp4_parser.yy" - { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("readonly", n); +#line 914 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("lfc-interval", n); } -#line 1825 "dhcp4_parser.cc" +#line 1725 "dhcp4_parser.cc" // lalr1.cc:859 break; case 244: -#line 918 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("connect-timeout", n); +#line 919 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("readonly", n); } -#line 1834 "dhcp4_parser.cc" +#line 1734 "dhcp4_parser.cc" // lalr1.cc:859 break; case 245: -#line 923 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("request-timeout", n); +#line 924 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("connect-timeout", n); } -#line 1843 "dhcp4_parser.cc" +#line 1743 "dhcp4_parser.cc" // lalr1.cc:859 break; case 246: -#line 928 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("tcp-keepalive", n); +#line 929 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("request-timeout", n); } -#line 1852 "dhcp4_parser.cc" +#line 1752 "dhcp4_parser.cc" // lalr1.cc:859 break; case 247: -#line 933 "dhcp4_parser.yy" - { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("tcp-nodelay", n); +#line 934 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1861 "dhcp4_parser.cc" +#line 1761 "dhcp4_parser.cc" // lalr1.cc:859 break; case 248: -#line 938 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 939 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1869 "dhcp4_parser.cc" +#line 1770 "dhcp4_parser.cc" // lalr1.cc:859 break; case 249: -#line 940 "dhcp4_parser.yy" - { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("contact-points", cp); - ctx.leave(); +#line 944 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1879 "dhcp4_parser.cc" +#line 1778 "dhcp4_parser.cc" // lalr1.cc:859 break; case 250: -#line 946 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 946 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("contact-points", cp); + ctx.leave(); } -#line 1887 "dhcp4_parser.cc" +#line 1788 "dhcp4_parser.cc" // lalr1.cc:859 break; case 251: -#line 948 "dhcp4_parser.yy" - { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("keyspace", ks); - ctx.leave(); +#line 952 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1897 "dhcp4_parser.cc" +#line 1796 "dhcp4_parser.cc" // lalr1.cc:859 break; case 252: -#line 954 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 954 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("keyspace", ks); + ctx.leave(); } -#line 1905 "dhcp4_parser.cc" +#line 1806 "dhcp4_parser.cc" // lalr1.cc:859 break; case 253: -#line 956 "dhcp4_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("consistency", c); - ctx.leave(); +#line 960 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1915 "dhcp4_parser.cc" +#line 1814 "dhcp4_parser.cc" // lalr1.cc:859 break; case 254: -#line 962 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 962 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("consistency", c); + ctx.leave(); } -#line 1923 "dhcp4_parser.cc" +#line 1824 "dhcp4_parser.cc" // lalr1.cc:859 break; case 255: -#line 964 "dhcp4_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("serial-consistency", c); - ctx.leave(); +#line 968 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1933 "dhcp4_parser.cc" +#line 1832 "dhcp4_parser.cc" // lalr1.cc:859 break; case 256: -#line 970 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-reconnect-tries", n); +#line 970 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("serial-consistency", c); + ctx.leave(); } -#line 1942 "dhcp4_parser.cc" +#line 1842 "dhcp4_parser.cc" // lalr1.cc:859 break; case 257: -#line 975 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("reconnect-wait-time", n); +#line 976 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1951 "dhcp4_parser.cc" +#line 1851 "dhcp4_parser.cc" // lalr1.cc:859 break; case 258: -#line 980 "dhcp4_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-row-errors", n); +#line 981 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1960 "dhcp4_parser.cc" +#line 1860 "dhcp4_parser.cc" // lalr1.cc:859 break; case 259: -#line 986 "dhcp4_parser.yy" - { +#line 986 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-row-errors", n); +} +#line 1869 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 260: +#line 992 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1971 "dhcp4_parser.cc" +#line 1880 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 260: -#line 991 "dhcp4_parser.yy" - { + case 261: +#line 997 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1980 "dhcp4_parser.cc" - break; - - case 268: -#line 1007 "dhcp4_parser.yy" - { - ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(duid); -} -#line 1989 "dhcp4_parser.cc" +#line 1889 "dhcp4_parser.cc" // lalr1.cc:859 break; case 269: -#line 1012 "dhcp4_parser.yy" - { - ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(hwaddr); +#line 1013 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(duid); } -#line 1998 "dhcp4_parser.cc" +#line 1898 "dhcp4_parser.cc" // lalr1.cc:859 break; case 270: -#line 1017 "dhcp4_parser.yy" - { - ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(circuit); +#line 1018 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(hwaddr); } -#line 2007 "dhcp4_parser.cc" +#line 1907 "dhcp4_parser.cc" // lalr1.cc:859 break; case 271: -#line 1022 "dhcp4_parser.yy" - { - ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(client); +#line 1023 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(circuit); } -#line 2016 "dhcp4_parser.cc" +#line 1916 "dhcp4_parser.cc" // lalr1.cc:859 break; case 272: -#line 1027 "dhcp4_parser.yy" - { - ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(flex_id); +#line 1028 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(client); } -#line 2025 "dhcp4_parser.cc" +#line 1925 "dhcp4_parser.cc" // lalr1.cc:859 break; case 273: -#line 1032 "dhcp4_parser.yy" - { +#line 1033 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(flex_id); +} +#line 1934 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 274: +#line 1040 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("multi-threading", mt); + ctx.stack_.push_back(mt); + ctx.enter(ctx.DHCP_MULTI_THREADING); +} +#line 1945 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 275: +#line 1045 "dhcp4_parser.yy" // lalr1.cc:859 + { + // The enable parameter is required. + ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1956 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 284: +#line 1064 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("enable-multi-threading", b); +} +#line 1965 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 285: +#line 1069 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("thread-pool-size", prf); +} +#line 1974 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 286: +#line 1074 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("packet-queue-size", prf); +} +#line 1983 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 287: +#line 1079 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2036 "dhcp4_parser.cc" +#line 1994 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 274: -#line 1037 "dhcp4_parser.yy" - { + case 288: +#line 1084 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2045 "dhcp4_parser.cc" +#line 2003 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 279: -#line 1050 "dhcp4_parser.yy" - { + case 293: +#line 1097 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2055 "dhcp4_parser.cc" +#line 2013 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 280: -#line 1054 "dhcp4_parser.yy" - { + case 294: +#line 1101 "dhcp4_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2065 "dhcp4_parser.cc" +#line 2023 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 281: -#line 1060 "dhcp4_parser.yy" - { + case 295: +#line 1107 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2075 "dhcp4_parser.cc" +#line 2033 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 282: -#line 1064 "dhcp4_parser.yy" - { + case 296: +#line 1111 "dhcp4_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2085 "dhcp4_parser.cc" +#line 2043 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 288: -#line 1079 "dhcp4_parser.yy" - { + case 302: +#line 1126 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2093 "dhcp4_parser.cc" +#line 2051 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 289: -#line 1081 "dhcp4_parser.yy" - { - ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 303: +#line 1128 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2103 "dhcp4_parser.cc" +#line 2061 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 290: -#line 1087 "dhcp4_parser.yy" - { + case 304: +#line 1134 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2111 "dhcp4_parser.cc" +#line 2069 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 291: -#line 1089 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); + case 305: +#line 1136 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2120 "dhcp4_parser.cc" +#line 2078 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 292: -#line 1095 "dhcp4_parser.yy" - { + case 306: +#line 1142 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2131 "dhcp4_parser.cc" +#line 2089 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 293: -#line 1100 "dhcp4_parser.yy" - { + case 307: +#line 1147 "dhcp4_parser.yy" // lalr1.cc:859 + { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2141 "dhcp4_parser.cc" +#line 2099 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 302: -#line 1118 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 316: +#line 1165 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2150 "dhcp4_parser.cc" +#line 2108 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 303: -#line 1123 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 317: +#line 1170 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2159 "dhcp4_parser.cc" +#line 2117 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 304: -#line 1128 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 318: +#line 1175 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2168 "dhcp4_parser.cc" +#line 2126 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 305: -#line 1133 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 319: +#line 1180 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2177 "dhcp4_parser.cc" +#line 2135 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 306: -#line 1138 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 320: +#line 1185 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2186 "dhcp4_parser.cc" +#line 2144 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 307: -#line 1143 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 321: +#line 1190 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2195 "dhcp4_parser.cc" +#line 2153 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 308: -#line 1151 "dhcp4_parser.yy" - { + case 322: +#line 1198 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet4", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2206 "dhcp4_parser.cc" +#line 2164 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 309: -#line 1156 "dhcp4_parser.yy" - { + case 323: +#line 1203 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2215 "dhcp4_parser.cc" +#line 2173 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 314: -#line 1176 "dhcp4_parser.yy" - { + case 328: +#line 1223 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2225 "dhcp4_parser.cc" +#line 2183 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 315: -#line 1180 "dhcp4_parser.yy" - { + case 329: +#line 1227 "dhcp4_parser.yy" // lalr1.cc:859 + { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. // In particular we can do things like this: @@ -2247,601 +2205,601 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2251 "dhcp4_parser.cc" +#line 2209 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 316: -#line 1202 "dhcp4_parser.yy" - { + case 330: +#line 1249 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2261 "dhcp4_parser.cc" +#line 2219 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 317: -#line 1206 "dhcp4_parser.yy" - { + case 331: +#line 1253 "dhcp4_parser.yy" // lalr1.cc:859 + { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2271 "dhcp4_parser.cc" +#line 2229 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 358: -#line 1258 "dhcp4_parser.yy" - { + case 372: +#line 1305 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2279 "dhcp4_parser.cc" +#line 2237 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 359: -#line 1260 "dhcp4_parser.yy" - { - ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 373: +#line 1307 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2289 "dhcp4_parser.cc" +#line 2247 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 360: -#line 1266 "dhcp4_parser.yy" - { + case 374: +#line 1313 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2297 "dhcp4_parser.cc" +#line 2255 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 361: -#line 1268 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 375: +#line 1315 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } -#line 2307 "dhcp4_parser.cc" +#line 2265 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 362: -#line 1274 "dhcp4_parser.yy" - { + case 376: +#line 1321 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2315 "dhcp4_parser.cc" +#line 2273 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 363: -#line 1276 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 377: +#line 1323 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } -#line 2325 "dhcp4_parser.cc" +#line 2283 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 364: -#line 1282 "dhcp4_parser.yy" - { + case 378: +#line 1329 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2333 "dhcp4_parser.cc" +#line 2291 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 365: -#line 1284 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 379: +#line 1331 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } -#line 2343 "dhcp4_parser.cc" +#line 2301 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 366: -#line 1290 "dhcp4_parser.yy" - { + case 380: +#line 1337 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2351 "dhcp4_parser.cc" +#line 2309 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 367: -#line 1292 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 381: +#line 1339 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2361 "dhcp4_parser.cc" +#line 2319 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 368: -#line 1298 "dhcp4_parser.yy" - { + case 382: +#line 1345 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2369 "dhcp4_parser.cc" +#line 2327 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 369: -#line 1300 "dhcp4_parser.yy" - { - ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 383: +#line 1347 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2379 "dhcp4_parser.cc" +#line 2337 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 370: -#line 1306 "dhcp4_parser.yy" - { + case 384: +#line 1353 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2390 "dhcp4_parser.cc" +#line 2348 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 371: -#line 1311 "dhcp4_parser.yy" - { + case 385: +#line 1358 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2399 "dhcp4_parser.cc" +#line 2357 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 372: -#line 1316 "dhcp4_parser.yy" - { + case 386: +#line 1363 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.RESERVATION_MODE); } -#line 2407 "dhcp4_parser.cc" +#line 2365 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 373: -#line 1318 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); + case 387: +#line 1365 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2416 "dhcp4_parser.cc" +#line 2374 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 374: -#line 1323 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2422 "dhcp4_parser.cc" + case 388: +#line 1370 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } +#line 2380 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 375: -#line 1324 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2428 "dhcp4_parser.cc" + case 389: +#line 1371 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } +#line 2386 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 376: -#line 1325 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2434 "dhcp4_parser.cc" + case 390: +#line 1372 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } +#line 2392 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 377: -#line 1326 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2440 "dhcp4_parser.cc" + case 391: +#line 1373 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } +#line 2398 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 378: -#line 1329 "dhcp4_parser.yy" - { - ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 392: +#line 1376 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2449 "dhcp4_parser.cc" +#line 2407 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 379: -#line 1336 "dhcp4_parser.yy" - { + case 393: +#line 1383 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2460 "dhcp4_parser.cc" +#line 2418 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 380: -#line 1341 "dhcp4_parser.yy" - { + case 394: +#line 1388 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2469 "dhcp4_parser.cc" +#line 2427 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 385: -#line 1356 "dhcp4_parser.yy" - { + case 399: +#line 1403 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2479 "dhcp4_parser.cc" +#line 2437 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 386: -#line 1360 "dhcp4_parser.yy" - { + case 400: +#line 1407 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 2487 "dhcp4_parser.cc" +#line 2445 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 422: -#line 1407 "dhcp4_parser.yy" - { + case 436: +#line 1454 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2498 "dhcp4_parser.cc" +#line 2456 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 423: -#line 1412 "dhcp4_parser.yy" - { + case 437: +#line 1459 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2507 "dhcp4_parser.cc" +#line 2465 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 424: -#line 1420 "dhcp4_parser.yy" - { + case 438: +#line 1467 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2516 "dhcp4_parser.cc" +#line 2474 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 425: -#line 1423 "dhcp4_parser.yy" - { + case 439: +#line 1470 "dhcp4_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 2524 "dhcp4_parser.cc" +#line 2482 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 430: -#line 1439 "dhcp4_parser.yy" - { + case 444: +#line 1486 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2534 "dhcp4_parser.cc" +#line 2492 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 431: -#line 1443 "dhcp4_parser.yy" - { + case 445: +#line 1490 "dhcp4_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2546 "dhcp4_parser.cc" +#line 2504 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 432: -#line 1454 "dhcp4_parser.yy" - { + case 446: +#line 1501 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2556 "dhcp4_parser.cc" +#line 2514 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 433: -#line 1458 "dhcp4_parser.yy" - { + case 447: +#line 1505 "dhcp4_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2568 "dhcp4_parser.cc" +#line 2526 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 449: -#line 1490 "dhcp4_parser.yy" - { - ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 463: +#line 1537 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2577 "dhcp4_parser.cc" +#line 2535 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 451: -#line 1497 "dhcp4_parser.yy" - { + case 465: +#line 1544 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2585 "dhcp4_parser.cc" +#line 2543 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 452: -#line 1499 "dhcp4_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 466: +#line 1546 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2595 "dhcp4_parser.cc" +#line 2553 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 453: -#line 1505 "dhcp4_parser.yy" - { + case 467: +#line 1552 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2603 "dhcp4_parser.cc" +#line 2561 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 454: -#line 1507 "dhcp4_parser.yy" - { - ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 468: +#line 1554 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2613 "dhcp4_parser.cc" +#line 2571 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 455: -#line 1513 "dhcp4_parser.yy" - { + case 469: +#line 1560 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2621 "dhcp4_parser.cc" +#line 2579 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 456: -#line 1515 "dhcp4_parser.yy" - { - ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 470: +#line 1562 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2631 "dhcp4_parser.cc" +#line 2589 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 458: -#line 1523 "dhcp4_parser.yy" - { + case 472: +#line 1570 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2639 "dhcp4_parser.cc" +#line 2597 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 459: -#line 1525 "dhcp4_parser.yy" - { - ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 473: +#line 1572 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2649 "dhcp4_parser.cc" +#line 2607 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 460: -#line 1531 "dhcp4_parser.yy" - { - ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 474: +#line 1578 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2658 "dhcp4_parser.cc" +#line 2616 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 461: -#line 1540 "dhcp4_parser.yy" - { + case 475: +#line 1587 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2669 "dhcp4_parser.cc" +#line 2627 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 462: -#line 1545 "dhcp4_parser.yy" - { + case 476: +#line 1592 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2678 "dhcp4_parser.cc" +#line 2636 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 467: -#line 1564 "dhcp4_parser.yy" - { + case 481: +#line 1611 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2688 "dhcp4_parser.cc" +#line 2646 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 468: -#line 1568 "dhcp4_parser.yy" - { + case 482: +#line 1615 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2697 "dhcp4_parser.cc" +#line 2655 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 469: -#line 1576 "dhcp4_parser.yy" - { + case 483: +#line 1623 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2707 "dhcp4_parser.cc" +#line 2665 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 470: -#line 1580 "dhcp4_parser.yy" - { + case 484: +#line 1627 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. // parsing completed } -#line 2716 "dhcp4_parser.cc" +#line 2674 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 485: -#line 1613 "dhcp4_parser.yy" - { + case 499: +#line 1660 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2724 "dhcp4_parser.cc" +#line 2682 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 486: -#line 1615 "dhcp4_parser.yy" - { - ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 500: +#line 1662 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2734 "dhcp4_parser.cc" +#line 2692 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 489: -#line 1625 "dhcp4_parser.yy" - { - ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 503: +#line 1672 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2743 "dhcp4_parser.cc" +#line 2701 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 490: -#line 1630 "dhcp4_parser.yy" - { - ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 504: +#line 1677 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2752 "dhcp4_parser.cc" +#line 2710 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 491: -#line 1638 "dhcp4_parser.yy" - { + case 505: +#line 1685 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2763 "dhcp4_parser.cc" +#line 2721 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 492: -#line 1643 "dhcp4_parser.yy" - { + case 506: +#line 1690 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2772 "dhcp4_parser.cc" +#line 2730 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 497: -#line 1658 "dhcp4_parser.yy" - { + case 511: +#line 1705 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2782 "dhcp4_parser.cc" +#line 2740 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 498: -#line 1662 "dhcp4_parser.yy" - { + case 512: +#line 1709 "dhcp4_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2792 "dhcp4_parser.cc" +#line 2750 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 499: -#line 1668 "dhcp4_parser.yy" - { + case 513: +#line 1715 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2802 "dhcp4_parser.cc" +#line 2760 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 500: -#line 1672 "dhcp4_parser.yy" - { + case 514: +#line 1719 "dhcp4_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2812 "dhcp4_parser.cc" +#line 2770 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 510: -#line 1691 "dhcp4_parser.yy" - { + case 524: +#line 1738 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2820 "dhcp4_parser.cc" +#line 2778 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 511: -#line 1693 "dhcp4_parser.yy" - { - ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 525: +#line 1740 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2830 "dhcp4_parser.cc" +#line 2788 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 512: -#line 1699 "dhcp4_parser.yy" - { + case 526: +#line 1746 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2838 "dhcp4_parser.cc" +#line 2796 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 513: -#line 1701 "dhcp4_parser.yy" - { + case 527: +#line 1748 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); - ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); + ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); ConstElementPtr old = parent->get("user-context"); // Handle already existing user context @@ -2861,23 +2819,23 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2865 "dhcp4_parser.cc" +#line 2823 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 514: -#line 1724 "dhcp4_parser.yy" - { + case 528: +#line 1771 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2873 "dhcp4_parser.cc" +#line 2831 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 515: -#line 1726 "dhcp4_parser.yy" - { + case 529: +#line 1773 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); - ElementPtr comment(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); user_context->set("comment", comment); // Handle already existing user context @@ -2898,1132 +2856,1127 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2902 "dhcp4_parser.cc" +#line 2860 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 516: -#line 1754 "dhcp4_parser.yy" - { + case 530: +#line 1801 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2913 "dhcp4_parser.cc" +#line 2871 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 517: -#line 1759 "dhcp4_parser.yy" - { + case 531: +#line 1806 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2922 "dhcp4_parser.cc" +#line 2880 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 522: -#line 1772 "dhcp4_parser.yy" - { + case 536: +#line 1819 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2932 "dhcp4_parser.cc" +#line 2890 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 523: -#line 1776 "dhcp4_parser.yy" - { + case 537: +#line 1823 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2941 "dhcp4_parser.cc" +#line 2899 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 524: -#line 1781 "dhcp4_parser.yy" - { + case 538: +#line 1828 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2951 "dhcp4_parser.cc" +#line 2909 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 525: -#line 1785 "dhcp4_parser.yy" - { + case 539: +#line 1832 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. // parsing completed } -#line 2960 "dhcp4_parser.cc" +#line 2918 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 545: -#line 1816 "dhcp4_parser.yy" - { + case 559: +#line 1863 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2968 "dhcp4_parser.cc" +#line 2926 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 546: -#line 1818 "dhcp4_parser.yy" - { - ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 560: +#line 1865 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } -#line 2978 "dhcp4_parser.cc" +#line 2936 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 547: -#line 1824 "dhcp4_parser.yy" - { + case 561: +#line 1871 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2986 "dhcp4_parser.cc" +#line 2944 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 548: -#line 1826 "dhcp4_parser.yy" - { - ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 562: +#line 1873 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 2996 "dhcp4_parser.cc" +#line 2954 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 549: -#line 1832 "dhcp4_parser.yy" - { + case 563: +#line 1879 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3004 "dhcp4_parser.cc" +#line 2962 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 550: -#line 1834 "dhcp4_parser.yy" - { - ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 564: +#line 1881 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } -#line 3014 "dhcp4_parser.cc" +#line 2972 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 551: -#line 1840 "dhcp4_parser.yy" - { + case 565: +#line 1887 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3022 "dhcp4_parser.cc" +#line 2980 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 552: -#line 1842 "dhcp4_parser.yy" - { - ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 566: +#line 1889 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3032 "dhcp4_parser.cc" +#line 2990 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 553: -#line 1848 "dhcp4_parser.yy" - { + case 567: +#line 1895 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3043 "dhcp4_parser.cc" +#line 3001 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 554: -#line 1853 "dhcp4_parser.yy" - { + case 568: +#line 1900 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3052 "dhcp4_parser.cc" +#line 3010 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 555: -#line 1858 "dhcp4_parser.yy" - { + case 569: +#line 1905 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3060 "dhcp4_parser.cc" +#line 3018 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 556: -#line 1860 "dhcp4_parser.yy" - { - ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 570: +#line 1907 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3070 "dhcp4_parser.cc" +#line 3028 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 557: -#line 1866 "dhcp4_parser.yy" - { + case 571: +#line 1913 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3078 "dhcp4_parser.cc" +#line 3036 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 558: -#line 1868 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 572: +#line 1915 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3088 "dhcp4_parser.cc" +#line 3046 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 559: -#line 1874 "dhcp4_parser.yy" - { + case 573: +#line 1921 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3096 "dhcp4_parser.cc" +#line 3054 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 560: -#line 1876 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 574: +#line 1923 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 3106 "dhcp4_parser.cc" +#line 3064 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 561: -#line 1882 "dhcp4_parser.yy" - { + case 575: +#line 1929 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3114 "dhcp4_parser.cc" +#line 3072 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 562: -#line 1884 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 576: +#line 1931 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 3124 "dhcp4_parser.cc" +#line 3082 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 563: -#line 1890 "dhcp4_parser.yy" - { + case 577: +#line 1937 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3132 "dhcp4_parser.cc" +#line 3090 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 564: -#line 1892 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 578: +#line 1939 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3142 "dhcp4_parser.cc" +#line 3100 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 565: -#line 1898 "dhcp4_parser.yy" - { + case 579: +#line 1945 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3150 "dhcp4_parser.cc" +#line 3108 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 566: -#line 1900 "dhcp4_parser.yy" - { - ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 580: +#line 1947 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3160 "dhcp4_parser.cc" +#line 3118 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 567: -#line 1906 "dhcp4_parser.yy" - { + case 581: +#line 1953 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3171 "dhcp4_parser.cc" +#line 3129 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 568: -#line 1911 "dhcp4_parser.yy" - { + case 582: +#line 1958 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3180 "dhcp4_parser.cc" +#line 3138 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 569: -#line 1919 "dhcp4_parser.yy" - { + case 583: +#line 1966 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3191 "dhcp4_parser.cc" +#line 3149 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 570: -#line 1924 "dhcp4_parser.yy" - { + case 584: +#line 1971 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3200 "dhcp4_parser.cc" +#line 3158 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 573: -#line 1936 "dhcp4_parser.yy" - { + case 587: +#line 1983 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3211 "dhcp4_parser.cc" +#line 3169 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 574: -#line 1941 "dhcp4_parser.yy" - { + case 588: +#line 1988 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3220 "dhcp4_parser.cc" +#line 3178 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 577: -#line 1950 "dhcp4_parser.yy" - { + case 591: +#line 1997 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3230 "dhcp4_parser.cc" +#line 3188 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 578: -#line 1954 "dhcp4_parser.yy" - { + case 592: +#line 2001 "dhcp4_parser.yy" // lalr1.cc:859 + { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3240 "dhcp4_parser.cc" +#line 3198 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 595: -#line 1983 "dhcp4_parser.yy" - { + case 609: +#line 2030 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3248 "dhcp4_parser.cc" +#line 3206 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 596: -#line 1985 "dhcp4_parser.yy" - { - ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 610: +#line 2032 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3258 "dhcp4_parser.cc" +#line 3216 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 597: -#line 1991 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 611: +#line 2038 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3267 "dhcp4_parser.cc" +#line 3225 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 598: -#line 2000 "dhcp4_parser.yy" - { - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 612: +#line 2045 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3276 "dhcp4_parser.cc" +#line 3234 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 599: -#line 2007 "dhcp4_parser.yy" - { + case 613: +#line 2052 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3287 "dhcp4_parser.cc" +#line 3245 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 600: -#line 2012 "dhcp4_parser.yy" - { + case 614: +#line 2057 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3296 "dhcp4_parser.cc" +#line 3254 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 608: -#line 2028 "dhcp4_parser.yy" - { + case 622: +#line 2073 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3304 "dhcp4_parser.cc" +#line 3262 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 609: -#line 2030 "dhcp4_parser.yy" - { - ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 623: +#line 2075 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3314 "dhcp4_parser.cc" +#line 3272 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 610: -#line 2036 "dhcp4_parser.yy" - { + case 624: +#line 2081 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3322 "dhcp4_parser.cc" +#line 3280 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 611: -#line 2038 "dhcp4_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 625: +#line 2083 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3332 "dhcp4_parser.cc" +#line 3290 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 612: -#line 2047 "dhcp4_parser.yy" - { + case 626: +#line 2092 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-queue-control", qc); ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3343 "dhcp4_parser.cc" +#line 3301 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 613: -#line 2052 "dhcp4_parser.yy" - { + case 627: +#line 2097 "dhcp4_parser.yy" // lalr1.cc:859 + { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3354 "dhcp4_parser.cc" +#line 3312 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 622: -#line 2071 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 636: +#line 2116 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3363 "dhcp4_parser.cc" +#line 3321 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 623: -#line 2076 "dhcp4_parser.yy" - { + case 637: +#line 2121 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3371 "dhcp4_parser.cc" +#line 3329 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 624: -#line 2078 "dhcp4_parser.yy" - { - ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 638: +#line 2123 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr qt(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 3381 "dhcp4_parser.cc" +#line 3339 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 625: -#line 2084 "dhcp4_parser.yy" - { - ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 639: +#line 2129 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3390 "dhcp4_parser.cc" +#line 3348 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 626: -#line 2089 "dhcp4_parser.yy" - { + case 640: +#line 2134 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3398 "dhcp4_parser.cc" +#line 3356 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 627: -#line 2091 "dhcp4_parser.yy" - { - ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + case 641: +#line 2136 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set(yystack_[3].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3407 "dhcp4_parser.cc" +#line 3365 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 628: -#line 2098 "dhcp4_parser.yy" - { + case 642: +#line 2143 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3418 "dhcp4_parser.cc" +#line 3376 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 629: -#line 2103 "dhcp4_parser.yy" - { + case 643: +#line 2148 "dhcp4_parser.yy" // lalr1.cc:859 + { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3429 "dhcp4_parser.cc" +#line 3387 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 630: -#line 2110 "dhcp4_parser.yy" - { + case 644: +#line 2155 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3439 "dhcp4_parser.cc" +#line 3397 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 631: -#line 2114 "dhcp4_parser.yy" - { + case 645: +#line 2159 "dhcp4_parser.yy" // lalr1.cc:859 + { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3449 "dhcp4_parser.cc" +#line 3407 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 652: -#line 2144 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 666: +#line 2189 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3458 "dhcp4_parser.cc" +#line 3416 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 653: -#line 2149 "dhcp4_parser.yy" - { + case 667: +#line 2194 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3466 "dhcp4_parser.cc" +#line 3424 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 654: -#line 2151 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 668: +#line 2196 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3476 "dhcp4_parser.cc" +#line 3434 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 655: -#line 2157 "dhcp4_parser.yy" - { - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 669: +#line 2202 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3485 "dhcp4_parser.cc" +#line 3443 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 656: -#line 2162 "dhcp4_parser.yy" - { + case 670: +#line 2207 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3493 "dhcp4_parser.cc" +#line 3451 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 657: -#line 2164 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 671: +#line 2209 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3503 "dhcp4_parser.cc" +#line 3461 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 658: -#line 2170 "dhcp4_parser.yy" - { - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 672: +#line 2215 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3512 "dhcp4_parser.cc" +#line 3470 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 659: -#line 2175 "dhcp4_parser.yy" - { - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 673: +#line 2220 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3521 "dhcp4_parser.cc" +#line 3479 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 660: -#line 2180 "dhcp4_parser.yy" - { + case 674: +#line 2225 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3529 "dhcp4_parser.cc" +#line 3487 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 661: -#line 2182 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); + case 675: +#line 2227 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3538 "dhcp4_parser.cc" +#line 3496 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 662: -#line 2188 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3544 "dhcp4_parser.cc" + case 676: +#line 2233 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } +#line 3502 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 663: -#line 2189 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3550 "dhcp4_parser.cc" + case 677: +#line 2234 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } +#line 3508 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 664: -#line 2192 "dhcp4_parser.yy" - { + case 678: +#line 2237 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NCR_FORMAT); } -#line 3558 "dhcp4_parser.cc" +#line 3516 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 665: -#line 2194 "dhcp4_parser.yy" - { + case 679: +#line 2239 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3568 "dhcp4_parser.cc" - break; - - case 666: -#line 2201 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3576 "dhcp4_parser.cc" - break; - - case 667: -#line 2203 "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); - ctx.leave(); -} -#line 3586 "dhcp4_parser.cc" - break; - - case 668: -#line 2210 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("override-no-update", b); -} -#line 3595 "dhcp4_parser.cc" - break; - - case 669: -#line 2216 "dhcp4_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("override-client-update", b); -} -#line 3604 "dhcp4_parser.cc" - break; - - case 670: -#line 2222 "dhcp4_parser.yy" - { - ctx.enter(ctx.REPLACE_CLIENT_NAME); -} -#line 3612 "dhcp4_parser.cc" - break; - - case 671: -#line 2224 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 3621 "dhcp4_parser.cc" - break; - - case 672: -#line 2230 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3629 "dhcp4_parser.cc" - break; - - case 673: -#line 2232 "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); - ctx.leave(); -} -#line 3639 "dhcp4_parser.cc" - break; - - case 674: -#line 2239 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3647 "dhcp4_parser.cc" - break; - - case 675: -#line 2241 "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); - ctx.leave(); -} -#line 3657 "dhcp4_parser.cc" - break; - - case 676: -#line 2248 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3665 "dhcp4_parser.cc" - break; - - case 677: -#line 2250 "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); - ctx.leave(); -} -#line 3675 "dhcp4_parser.cc" - break; - - case 678: -#line 2259 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3683 "dhcp4_parser.cc" - break; - - case 679: -#line 2261 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 3692 "dhcp4_parser.cc" +#line 3526 "dhcp4_parser.cc" // lalr1.cc:859 break; case 680: -#line 2266 "dhcp4_parser.yy" - { +#line 2246 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3700 "dhcp4_parser.cc" +#line 3534 "dhcp4_parser.cc" // lalr1.cc:859 break; case 681: -#line 2268 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ()); +#line 2248 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3709 "dhcp4_parser.cc" +#line 3544 "dhcp4_parser.cc" // lalr1.cc:859 break; case 682: -#line 2273 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 2255 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("override-no-update", b); } -#line 3717 "dhcp4_parser.cc" +#line 3553 "dhcp4_parser.cc" // lalr1.cc:859 break; case 683: -#line 2275 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 2261 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("override-client-update", b); } -#line 3726 "dhcp4_parser.cc" +#line 3562 "dhcp4_parser.cc" // lalr1.cc:859 break; case 684: -#line 2280 "dhcp4_parser.yy" - { +#line 2267 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.REPLACE_CLIENT_NAME); +} +#line 3570 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 685: +#line 2269 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3579 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 686: +#line 2275 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3587 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 687: +#line 2277 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("generated-prefix", s); + ctx.leave(); +} +#line 3597 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 688: +#line 2284 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3605 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 689: +#line 2286 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-set", s); + ctx.leave(); +} +#line 3615 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 690: +#line 2293 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3623 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 691: +#line 2295 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-replacement", s); + ctx.leave(); +} +#line 3633 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 692: +#line 2304 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3641 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 693: +#line 2306 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3650 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 694: +#line 2311 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3658 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 695: +#line 2313 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3667 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 696: +#line 2318 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3675 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 697: +#line 2320 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3684 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 698: +#line 2327 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3737 "dhcp4_parser.cc" +#line 3695 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 685: -#line 2285 "dhcp4_parser.yy" - { + case 699: +#line 2332 "dhcp4_parser.yy" // lalr1.cc:859 + { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3747 "dhcp4_parser.cc" +#line 3705 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 686: -#line 2291 "dhcp4_parser.yy" - { + case 700: +#line 2338 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3757 "dhcp4_parser.cc" +#line 3715 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 687: -#line 2295 "dhcp4_parser.yy" - { + case 701: +#line 2342 "dhcp4_parser.yy" // lalr1.cc:859 + { // No config_control params are required // parsing completed } -#line 3766 "dhcp4_parser.cc" +#line 3724 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 692: -#line 2310 "dhcp4_parser.yy" - { + case 706: +#line 2357 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3777 "dhcp4_parser.cc" +#line 3735 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 693: -#line 2315 "dhcp4_parser.yy" - { + case 707: +#line 2362 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3786 "dhcp4_parser.cc" +#line 3744 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 694: -#line 2320 "dhcp4_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 708: +#line 2367 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 3795 "dhcp4_parser.cc" +#line 3753 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 695: -#line 2330 "dhcp4_parser.yy" - { + case 709: +#line 2377 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3806 "dhcp4_parser.cc" +#line 3764 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 696: -#line 2335 "dhcp4_parser.yy" - { + case 710: +#line 2382 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3815 "dhcp4_parser.cc" +#line 3773 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 697: -#line 2340 "dhcp4_parser.yy" - { + case 711: +#line 2387 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3825 "dhcp4_parser.cc" +#line 3783 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 698: -#line 2344 "dhcp4_parser.yy" - { + case 712: +#line 2391 "dhcp4_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 3833 "dhcp4_parser.cc" +#line 3791 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 702: -#line 2360 "dhcp4_parser.yy" - { + case 716: +#line 2407 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3844 "dhcp4_parser.cc" +#line 3802 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 703: -#line 2365 "dhcp4_parser.yy" - { + case 717: +#line 2412 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3853 "dhcp4_parser.cc" +#line 3811 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 706: -#line 2377 "dhcp4_parser.yy" - { + case 720: +#line 2424 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3863 "dhcp4_parser.cc" +#line 3821 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 707: -#line 2381 "dhcp4_parser.yy" - { + case 721: +#line 2428 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 3871 "dhcp4_parser.cc" +#line 3829 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 717: -#line 2398 "dhcp4_parser.yy" - { - ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 731: +#line 2445 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3880 "dhcp4_parser.cc" +#line 3838 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 718: -#line 2403 "dhcp4_parser.yy" - { + case 732: +#line 2450 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3888 "dhcp4_parser.cc" +#line 3846 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 719: -#line 2405 "dhcp4_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 733: +#line 2452 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3898 "dhcp4_parser.cc" +#line 3856 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 720: -#line 2411 "dhcp4_parser.yy" - { + case 734: +#line 2458 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 3909 "dhcp4_parser.cc" +#line 3867 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 721: -#line 2416 "dhcp4_parser.yy" - { + case 735: +#line 2463 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3918 "dhcp4_parser.cc" +#line 3876 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 724: -#line 2425 "dhcp4_parser.yy" - { + case 738: +#line 2472 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3928 "dhcp4_parser.cc" - break; - - case 725: -#line 2429 "dhcp4_parser.yy" - { - ctx.stack_.pop_back(); -} -#line 3936 "dhcp4_parser.cc" - break; - - case 733: -#line 2444 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3944 "dhcp4_parser.cc" - break; - - case 734: -#line 2446 "dhcp4_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("output", sev); - ctx.leave(); -} -#line 3954 "dhcp4_parser.cc" - break; - - case 735: -#line 2452 "dhcp4_parser.yy" - { - ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("flush", flush); -} -#line 3963 "dhcp4_parser.cc" - break; - - case 736: -#line 2457 "dhcp4_parser.yy" - { - ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("maxsize", maxsize); -} -#line 3972 "dhcp4_parser.cc" - break; - - case 737: -#line 2462 "dhcp4_parser.yy" - { - ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("maxver", maxver); -} -#line 3981 "dhcp4_parser.cc" - break; - - case 738: -#line 2467 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3989 "dhcp4_parser.cc" +#line 3886 "dhcp4_parser.cc" // lalr1.cc:859 break; case 739: -#line 2469 "dhcp4_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 2476 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 3894 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 747: +#line 2491 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3902 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 748: +#line 2493 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("output", sev); + ctx.leave(); +} +#line 3912 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 749: +#line 2499 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("flush", flush); +} +#line 3921 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 750: +#line 2504 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("maxsize", maxsize); +} +#line 3930 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 751: +#line 2509 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("maxver", maxver); +} +#line 3939 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 752: +#line 2514 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3947 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 753: +#line 2516 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 3999 "dhcp4_parser.cc" +#line 3957 "dhcp4_parser.cc" // lalr1.cc:859 break; -#line 4003 "dhcp4_parser.cc" - +#line 3961 "dhcp4_parser.cc" // lalr1.cc:859 default: break; } } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); YYERROR; } -#endif // YY_EXCEPTIONS YY_SYMBOL_PRINT ("-> $$ =", yylhs); yypop_ (yylen); yylen = 0; YY_STACK_PRINT (); // Shift the result of the reduction. - yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); + yypush_ (YY_NULLPTR, yylhs); } goto yynewstate; - /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ @@ -4060,18 +4013,19 @@ namespace isc { namespace dhcp { | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and - the label yyerrorlab therefore never appears in user code. */ - if (false) - YYERROR; + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (false) + goto yyerrorlab; + yyerror_range[1].location = yystack_[yylen - 1].location; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); yylen = 0; goto yyerrlab1; - /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ @@ -4081,11 +4035,11 @@ namespace isc { namespace dhcp { stack_symbol_type error_token; for (;;) { - yyn = yypact_[+yystack_[0].state]; + yyn = yypact_[yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += yy_error_token_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yy_error_token_) + yyn += yyterror_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) { yyn = yytable_[yyn]; if (0 < yyn) @@ -4107,31 +4061,21 @@ namespace isc { namespace dhcp { YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); // Shift the error token. - error_token.state = state_type (yyn); - yypush_ ("Shifting", YY_MOVE (error_token)); + error_token.state = yyn; + yypush_ ("Shifting", error_token); } goto yynewstate; - - /*-------------------------------------. - | yyacceptlab -- YYACCEPT comes here. | - `-------------------------------------*/ + // Accept. yyacceptlab: yyresult = 0; goto yyreturn; - - /*-----------------------------------. - | yyabortlab -- YYABORT comes here. | - `-----------------------------------*/ + // Abort. yyabortlab: yyresult = 1; goto yyreturn; - - /*-----------------------------------------------------. - | yyreturn -- parsing is finished, return the result. | - `-----------------------------------------------------*/ yyreturn: if (!yyla.empty ()) yy_destroy_ ("Cleanup: discarding lookahead", yyla); @@ -4147,12 +4091,12 @@ namespace isc { namespace dhcp { return yyresult; } -#if YY_EXCEPTIONS catch (...) { - YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; + YYCDEBUG << "Exception caught: cleaning lookahead and stack" + << std::endl; // Do not try to display the values of the reclaimed symbols, - // as their printers might throw an exception. + // as their printer might throw an exception. if (!yyla.empty ()) yy_destroy_ (YY_NULLPTR, yyla); @@ -4163,13 +4107,12 @@ namespace isc { namespace dhcp { } throw; } -#endif // YY_EXCEPTIONS } void Dhcp4Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what ()); + error (yyexc.location, yyexc.what()); } // Generate an error message. @@ -4178,7 +4121,7 @@ namespace isc { namespace dhcp { { // Number of reported tokens (one for the "unexpected", one per // "expected"). - std::ptrdiff_t yycount = 0; + size_t yycount = 0; // Its maximum. enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; // Arguments of yyformat. @@ -4202,18 +4145,18 @@ namespace isc { namespace dhcp { - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. + scanner and before detecting a syntax error. Thus, state + merging (from LALR or IELR) and default reductions corrupt the + expected token list. However, the list is correct for + canonical LR with one exception: it will still contain any + token that will not be accepted due to an error action in a + later state. */ if (!yyla.empty ()) { - symbol_number_type yytoken = yyla.type_get (); + int yytoken = yyla.type_get (); yyarg[yycount++] = yytname_[yytoken]; - - int yyn = yypact_[+yystate]; + int yyn = yypact_[yystate]; if (!yy_pact_value_is_default_ (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in @@ -4224,7 +4167,7 @@ namespace isc { namespace dhcp { int yychecklim = yylast_ - yyn + 1; int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != yy_error_token_ + if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_ && !yy_table_value_is_error_ (yytable_[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) @@ -4245,19 +4188,18 @@ namespace isc { namespace dhcp { case N: \ yyformat = S; \ break - default: // Avoid compiler warnings. - YYCASE_ (0, YY_("syntax error")); - YYCASE_ (1, YY_("syntax error, unexpected %s")); - YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); #undef YYCASE_ } std::string yyres; // Argument number. - std::ptrdiff_t yyi = 0; + size_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) { @@ -4270,800 +4212,846 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -915; + const short int Dhcp4Parser::yypact_ninf_ = -939; const signed char Dhcp4Parser::yytable_ninf_ = -1; - const short + const short int Dhcp4Parser::yypact_[] = { - 384, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, 56, 28, 23, 67, 73, - 77, 79, 81, 107, 117, 123, 142, 146, 150, 162, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, 28, -128, - 17, 169, 25, 290, -45, 596, -11, 66, 211, -59, - 578, -55, 289, -915, 131, 113, 174, 195, 204, -915, - -915, -915, -915, -915, 209, -915, 43, -915, -915, -915, - -915, -915, -915, -915, -915, -915, 242, 265, 280, -915, - -915, -915, -915, -915, -915, 310, 325, 331, 332, 333, - 334, 336, 337, 338, -915, 339, 340, 341, 342, 362, - -915, -915, -915, 366, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, 368, -915, -915, -915, - -915, -915, -915, -915, 62, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 369, - -915, 68, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, 370, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 74, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, 75, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, 213, 245, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, 274, -915, -915, 371, -915, - -915, -915, 374, -915, -915, 373, 376, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - 379, 386, -915, -915, -915, -915, 385, 389, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - 87, -915, -915, -915, 390, -915, -915, 391, -915, 397, - 398, -915, -915, 399, 400, -915, -915, -915, -915, -915, - -915, -915, 93, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 109, - -915, -915, -915, 401, 110, -915, -915, -915, -915, 28, - 28, -915, 219, 404, 407, 409, 410, 411, -915, 17, - -915, 412, 414, 415, 230, 231, 234, 422, 423, 424, - 425, 426, 427, 246, 249, 252, 253, 255, 260, 256, - 263, 266, 449, 269, 272, 271, 276, 284, 452, 459, - 461, 286, 463, 464, 466, 476, 477, 478, 480, 483, - 485, 486, 488, 490, 308, 494, 496, 497, 498, 502, - 503, 169, -915, 507, 508, 519, 314, 25, -915, 520, - 521, 522, 526, 531, 532, 350, 567, 568, 569, 290, - -915, 570, -45, -915, 571, 572, 573, 574, 575, 576, - 577, 579, -915, 596, -915, 580, 582, 402, 583, 584, - 587, 403, -915, 66, 588, 406, 408, -915, 211, 590, - 593, -79, -915, 413, 595, 597, 416, 598, 417, 418, - 603, 605, 420, 421, 608, 610, 616, 617, 578, -915, - -55, -915, 618, 435, 289, -915, -915, -915, 623, 621, - 625, 28, 28, 28, -915, 626, 627, 629, -915, -915, - -915, 443, 450, 451, 632, 633, 636, -915, -915, -915, - -915, -915, -915, -915, -915, -915, 467, -915, -915, -915, - -915, -915, -22, 468, 469, -915, 652, 661, 662, 663, - 667, 482, 221, 670, 671, 673, 677, 678, -915, 682, - 685, 686, 509, 510, 689, -915, 694, 273, 291, -915, - -915, 513, 515, 516, 699, 518, 528, -915, 694, 529, - 706, -915, 543, -915, 694, 544, 545, 546, 547, 548, - 551, 552, -915, 553, 554, -915, 555, 556, 557, -915, - -915, 558, -915, -915, -915, 559, 28, -915, -915, 562, - 563, -915, 564, -915, -915, 14, 447, -915, -915, -22, - 565, 566, 581, -915, -915, 749, -915, -915, 28, 169, - -55, -915, -915, -915, 289, 25, 731, -915, -915, -915, - 500, 500, 750, -915, -915, -915, -915, -915, -915, -915, - -915, -915, 751, 752, 753, 754, -915, -915, -915, -915, - -915, -915, -915, -915, 51, 755, 756, 757, 130, 90, - 4, 578, -915, -915, 759, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, 760, -915, -915, -915, - -915, 207, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - 750, -915, 128, 135, 144, 178, -915, 202, -915, -915, - -915, -915, -915, -915, 765, 766, 767, 768, 769, -915, - -915, -915, -915, 770, 771, 773, 774, 775, 776, -915, - 216, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, 217, -915, 778, 779, -915, -915, 780, 782, - -915, -915, 781, 785, -915, -915, 783, 787, -915, -915, - 786, 788, -915, -915, -915, -915, -915, -915, 99, -915, - -915, -915, -915, -915, -915, -915, 176, -915, -915, 789, - 790, -915, -915, 791, 793, -915, 777, 794, 795, 796, - 797, 798, 244, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, 258, -915, -915, -915, 799, - -915, 800, -915, -915, -915, 259, -915, -915, -915, -915, - -915, 262, -915, 187, -915, 607, -915, 801, 802, -915, - -915, -915, -915, 748, 803, -915, -915, -915, -915, 804, - 731, -915, 806, 807, 808, 809, 628, 624, 630, 631, - 634, 811, 813, 815, 816, 635, 637, 638, 639, 640, - 641, 500, -915, -915, 500, -915, 750, 290, -915, 751, - 66, -915, 752, 211, -915, 753, 589, -915, 754, 51, - -915, 64, 755, -915, 596, -915, 756, -59, -915, 757, - 643, 644, 645, 646, 647, 648, 130, -915, 820, 824, - 90, -915, 649, 833, 650, 836, 4, -915, -915, 193, - 759, -915, -915, 835, 839, -45, -915, 760, 840, -915, - -915, 619, -915, 296, 656, 658, 659, -915, -915, -915, - -915, -915, 660, 664, 665, 666, -915, -915, -915, -915, - -915, -915, -915, 268, -915, 275, -915, 841, -915, 842, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, 277, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 844, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 846, - 852, -915, -915, -915, -915, -915, 848, -915, 278, -915, - -915, -915, -915, -915, -915, -915, -915, 672, 674, -915, - -915, 675, -915, 28, -915, -915, 854, -915, -915, -915, - -915, -915, 301, -915, -915, -915, -915, -915, -915, 681, - 305, -915, 694, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - 589, -915, 860, 691, -915, 64, -915, -915, -915, -915, - -915, -915, 868, 687, 878, 193, -915, -915, -915, -915, - -915, 698, -915, -915, 881, -915, 701, -915, -915, 888, - -915, -915, 208, -915, 7, 888, -915, -915, 892, 894, - 896, -915, 307, -915, -915, -915, -915, -915, -915, -915, - 897, 714, 718, 720, 907, 7, -915, 727, -915, -915, - -915, 728, -915, -915, -915 + 370, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, 32, 43, 33, 50, 67, + 69, 71, 83, 90, 112, 121, 127, 129, 157, 171, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, 43, -162, + 24, 200, 107, 637, -8, 54, -33, 91, 58, -67, + 223, -112, 134, -939, 178, 62, 191, 189, 209, -939, + -939, -939, -939, -939, 216, -939, 35, -939, -939, -939, + -939, -939, -939, -939, -939, -939, 218, 220, 240, -939, + -939, -939, -939, -939, -939, 242, 250, 252, 273, 275, + 283, 285, 309, 332, -939, 336, 339, 360, 378, 385, + -939, -939, -939, 392, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, 399, -939, -939, -939, + -939, -939, -939, -939, -939, 48, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, 401, -939, 59, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, 409, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, 72, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, 85, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, 412, 418, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, 414, -939, -939, + 419, -939, -939, -939, 421, -939, -939, 422, 424, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, 425, 428, -939, -939, -939, -939, 426, 430, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, 113, -939, -939, -939, 431, -939, -939, 433, + -939, 439, 442, -939, -939, 444, 445, -939, -939, -939, + -939, -939, -939, -939, 174, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, 244, -939, -939, -939, 446, 245, -939, -939, -939, + -939, 43, 43, -939, 262, 455, 456, 458, 459, 460, + -939, 24, -939, 461, 463, 465, 276, 279, 281, 472, + 477, 479, 480, 481, 483, 296, 297, 299, 302, 307, + 301, 310, 314, 318, 498, 320, 321, 312, 324, 327, + 510, 511, 516, 331, 524, 525, 526, 528, 529, 530, + 531, 532, 533, 534, 535, 537, 350, 539, 557, 558, + 559, 560, 561, 562, 200, -939, 563, 564, 565, 377, + 107, -939, 566, 568, 569, 570, 571, 572, 386, 573, + 575, 576, 637, -939, 577, -8, -939, 578, 579, 580, + 581, 582, 583, 584, 585, -939, 54, -939, 586, 587, + 400, 590, 591, 592, 403, -939, 91, 594, 406, 407, + -939, 58, 598, 599, 204, -939, 410, 602, 603, 416, + 605, 420, 427, 606, 607, 423, 429, 609, 610, 612, + 614, 223, -939, -112, -939, 616, 432, 134, -939, -939, + -939, 617, 615, 618, 43, 43, 43, -939, 619, 620, + 621, -939, -939, -939, 438, 440, 441, 623, 628, 632, + -939, -939, -939, -939, -939, -939, -939, -939, -939, 447, + -939, -939, -939, -939, -939, 2, 448, 450, -939, 638, + 639, 640, 641, 635, 457, 3, 642, 648, 649, 651, + 650, -939, 652, 653, 654, 661, 467, 478, 665, -939, + 666, 363, 398, -939, -939, 482, 484, 485, 667, 486, + 487, -939, 666, 488, 673, -939, 490, -939, 666, 491, + 492, 493, 494, 495, 496, 497, -939, 502, 512, -939, + 513, 514, 522, -939, -939, 536, -939, -939, -939, 546, + 43, -939, -939, 547, 548, -939, 549, -939, -939, 31, + 517, -939, -939, 2, 550, 551, 553, -939, -939, 697, + -939, -939, 43, 200, -112, -939, -939, -939, 134, 107, + 693, -939, -939, -939, 305, 305, 712, -939, -939, -939, + -939, -939, -939, -939, -939, -939, 713, 714, 715, 716, + -939, -939, -939, -939, -939, -939, -939, -939, 172, 717, + 718, 719, 114, 60, 14, 17, 223, -939, -939, 721, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, 723, -939, -939, -939, -939, 292, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, 712, -939, 247, 293, 294, + 300, -939, 303, -939, -939, -939, -939, -939, -939, 741, + 744, 745, 746, 747, -939, -939, -939, -939, 748, 749, + 751, 752, 753, 754, -939, 304, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, 306, -939, 755, + 756, -939, -939, 757, 759, -939, -939, 758, 762, -939, + -939, 760, 764, -939, -939, 763, 765, -939, -939, -939, + -939, -939, -939, 38, -939, -939, -939, -939, -939, -939, + -939, 88, -939, -939, 766, 767, -939, -939, 768, 770, + -939, 771, 772, 773, 774, 775, 776, 313, -939, -939, + -939, -939, -939, -939, -939, 777, 778, 779, -939, 316, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, 319, -939, -939, -939, 780, -939, 781, -939, -939, + -939, 325, -939, -939, -939, -939, -939, 326, -939, 168, + -939, 595, -939, 782, 784, -939, -939, -939, -939, 783, + 786, -939, -939, -939, -939, 785, 693, -939, 789, 790, + 791, 792, 611, 596, 613, 604, 622, 793, 797, 798, + 800, 624, 625, 626, 627, 629, 630, 305, -939, -939, + 305, -939, 712, 637, -939, 713, 91, -939, 714, 58, + -939, 715, 1166, -939, 716, 172, -939, 109, 717, -939, + 54, -939, 718, -67, -939, 719, 633, 634, 643, 644, + 645, 646, 114, -939, 636, 647, 655, 60, -939, 802, + 803, 14, -939, 656, 804, 657, 805, 17, -939, -939, + 124, 721, -939, -939, 806, 807, -8, -939, 723, 809, + -939, -939, 660, -939, 371, 662, 663, 664, -939, -939, + -939, -939, -939, 668, 669, 670, 671, -939, -939, -939, + -939, -939, -939, -939, 329, -939, 376, -939, 812, -939, + 813, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, 380, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + 811, -939, -939, -939, -939, -939, -939, -939, -939, -939, + 816, 808, -939, -939, -939, -939, -939, 819, -939, 387, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, 672, 674, -939, -939, 675, -939, 43, -939, + -939, 825, -939, -939, -939, -939, -939, 389, -939, -939, + -939, -939, -939, -939, 676, 390, -939, 666, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, 1166, -939, 827, 658, -939, + 109, -939, -939, -939, -939, -939, -939, 828, 677, 829, + 124, -939, -939, -939, -939, -939, 679, -939, -939, 835, + -939, 680, -939, -939, 834, -939, -939, 207, -939, -40, + 834, -939, -939, 830, 838, 839, -939, 396, -939, -939, + -939, -939, -939, -939, -939, 840, 678, 682, 683, 841, + -40, -939, 686, -939, -939, -939, 687, -939, -939, -939 }; - const short + const unsigned short int Dhcp4Parser::yydefact_[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 58, 5, 70, 7, 171, 9, 316, 11, - 499, 13, 524, 15, 424, 17, 432, 19, 469, 21, - 281, 23, 630, 25, 697, 27, 686, 29, 47, 41, - 0, 0, 0, 0, 0, 526, 0, 434, 471, 0, + 35, 36, 58, 5, 70, 7, 172, 9, 330, 11, + 513, 13, 538, 15, 438, 17, 446, 19, 483, 21, + 295, 23, 644, 25, 711, 27, 700, 29, 47, 41, + 0, 0, 0, 0, 0, 540, 0, 448, 485, 0, 0, 0, 0, 49, 0, 48, 0, 0, 42, 68, - 695, 678, 680, 682, 0, 67, 0, 60, 62, 64, - 65, 66, 63, 684, 160, 186, 0, 0, 0, 545, - 547, 549, 184, 193, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, - 142, 149, 151, 0, 308, 422, 461, 379, 512, 514, - 372, 259, 573, 516, 273, 292, 0, 599, 612, 628, - 153, 155, 702, 124, 0, 72, 74, 75, 76, 77, - 78, 109, 110, 111, 79, 107, 96, 97, 98, 115, - 116, 117, 118, 119, 120, 113, 114, 121, 122, 123, - 82, 83, 104, 84, 85, 86, 90, 91, 80, 108, - 81, 88, 89, 102, 103, 105, 99, 100, 101, 87, - 92, 93, 94, 95, 106, 112, 173, 175, 179, 0, - 170, 0, 162, 164, 165, 166, 167, 168, 169, 360, - 362, 364, 491, 358, 366, 0, 370, 368, 569, 357, - 320, 321, 322, 323, 324, 345, 346, 347, 335, 336, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, - 318, 327, 340, 341, 342, 328, 330, 331, 333, 329, - 325, 326, 343, 344, 332, 337, 338, 339, 334, 510, - 509, 505, 506, 504, 0, 501, 503, 507, 508, 567, - 555, 557, 561, 559, 565, 563, 551, 544, 538, 542, - 543, 0, 527, 528, 539, 540, 541, 535, 530, 536, - 532, 533, 534, 537, 531, 0, 451, 239, 0, 455, - 453, 458, 0, 447, 448, 0, 435, 436, 438, 450, - 439, 440, 441, 457, 442, 443, 444, 445, 446, 485, - 0, 0, 483, 484, 487, 488, 0, 472, 473, 475, - 476, 477, 478, 479, 480, 481, 482, 288, 290, 285, - 0, 283, 286, 287, 0, 666, 653, 0, 656, 0, - 0, 660, 664, 0, 0, 670, 672, 674, 676, 651, - 649, 650, 0, 632, 634, 635, 636, 637, 638, 639, - 640, 641, 646, 642, 643, 644, 645, 647, 648, 0, - 699, 701, 692, 0, 0, 688, 690, 691, 46, 0, - 0, 39, 0, 0, 0, 0, 0, 0, 57, 0, - 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 709, 692, 694, 696, 0, 67, 0, 60, 62, 64, + 65, 66, 63, 698, 161, 187, 0, 0, 0, 559, + 561, 563, 185, 194, 196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, + 143, 150, 152, 0, 322, 436, 475, 393, 526, 528, + 386, 260, 587, 530, 287, 306, 0, 274, 613, 626, + 642, 154, 156, 716, 125, 0, 72, 74, 75, 76, + 77, 78, 109, 110, 111, 79, 107, 96, 97, 98, + 115, 116, 117, 118, 119, 120, 113, 114, 121, 122, + 123, 82, 83, 104, 84, 85, 86, 124, 90, 91, + 80, 108, 81, 88, 89, 102, 103, 105, 99, 100, + 101, 87, 92, 93, 94, 95, 106, 112, 174, 176, + 180, 0, 171, 0, 163, 165, 166, 167, 168, 169, + 170, 374, 376, 378, 505, 372, 380, 0, 384, 382, + 583, 371, 334, 335, 336, 337, 338, 359, 360, 361, + 349, 350, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 0, 332, 341, 354, 355, 356, 342, 344, 345, + 347, 343, 339, 340, 357, 358, 346, 351, 352, 353, + 348, 524, 523, 519, 520, 518, 0, 515, 517, 521, + 522, 581, 569, 571, 575, 573, 579, 577, 565, 558, + 552, 556, 557, 0, 541, 542, 553, 554, 555, 549, + 544, 550, 546, 547, 548, 551, 545, 0, 465, 240, + 0, 469, 467, 472, 0, 461, 462, 0, 449, 450, + 452, 464, 453, 454, 455, 471, 456, 457, 458, 459, + 460, 499, 0, 0, 497, 498, 501, 502, 0, 486, + 487, 489, 490, 491, 492, 493, 494, 495, 496, 302, + 304, 299, 0, 297, 300, 301, 0, 680, 667, 0, + 670, 0, 0, 674, 678, 0, 0, 684, 686, 688, + 690, 665, 663, 664, 0, 646, 648, 649, 650, 651, + 652, 653, 654, 655, 660, 656, 657, 658, 659, 661, + 662, 0, 713, 715, 706, 0, 0, 702, 704, 705, + 46, 0, 0, 39, 0, 0, 0, 0, 0, 0, + 57, 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, 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, 71, 0, 0, 0, 0, 0, 172, 0, + 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, + 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 331, 0, 0, 514, 0, 0, 0, + 0, 0, 0, 0, 0, 539, 0, 439, 0, 0, + 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, + 484, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 0, 500, 0, 0, 0, 0, 0, 0, - 0, 0, 525, 0, 425, 0, 0, 0, 0, 0, - 0, 0, 433, 0, 0, 0, 0, 470, 0, 0, - 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, - 0, 698, 0, 0, 0, 687, 50, 43, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 136, 137, - 138, 0, 0, 0, 0, 0, 0, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 158, 159, 139, - 140, 141, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 598, 0, - 0, 0, 0, 0, 0, 73, 0, 0, 0, 183, - 163, 0, 0, 0, 0, 0, 0, 378, 0, 0, - 0, 319, 0, 502, 0, 0, 0, 0, 0, 0, - 0, 0, 529, 0, 0, 449, 0, 0, 0, 460, - 437, 0, 489, 490, 474, 0, 0, 284, 652, 0, - 0, 655, 0, 658, 659, 0, 0, 668, 669, 0, - 0, 0, 0, 633, 700, 0, 694, 689, 0, 0, - 0, 679, 681, 683, 0, 0, 0, 546, 548, 550, - 0, 0, 197, 135, 144, 145, 146, 147, 148, 143, - 150, 152, 310, 426, 463, 381, 40, 513, 515, 374, - 375, 376, 377, 373, 0, 0, 518, 275, 0, 0, - 0, 0, 154, 156, 0, 51, 174, 177, 178, 176, - 181, 182, 180, 361, 363, 365, 493, 359, 367, 371, - 369, 0, 511, 568, 556, 558, 562, 560, 566, 564, - 552, 452, 240, 456, 454, 459, 486, 289, 291, 667, - 654, 657, 662, 663, 661, 665, 671, 673, 675, 677, - 197, 44, 0, 0, 0, 0, 191, 0, 188, 190, - 226, 232, 234, 236, 0, 0, 0, 0, 0, 248, - 250, 252, 254, 0, 0, 0, 0, 0, 0, 225, - 0, 203, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 218, 219, 220, 215, 221, 222, 223, 216, - 217, 224, 0, 201, 0, 198, 199, 314, 0, 311, - 312, 430, 0, 427, 428, 467, 0, 464, 465, 385, - 0, 382, 383, 268, 269, 270, 271, 272, 0, 261, - 263, 264, 265, 266, 267, 577, 0, 575, 522, 0, - 519, 520, 279, 0, 276, 277, 0, 0, 0, 0, - 0, 0, 0, 294, 296, 297, 298, 299, 300, 301, - 608, 610, 607, 605, 606, 0, 601, 603, 604, 0, - 623, 0, 626, 619, 620, 0, 614, 616, 617, 618, - 621, 0, 706, 0, 704, 53, 497, 0, 494, 495, - 553, 571, 572, 0, 0, 69, 696, 685, 161, 0, - 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 645, 0, 712, 0, 0, 0, 701, 50, + 43, 0, 0, 0, 0, 0, 0, 61, 0, 0, + 0, 137, 138, 139, 0, 0, 0, 0, 0, 0, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 0, + 159, 160, 140, 141, 142, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 185, 194, 0, 196, 0, 0, 309, 0, - 434, 423, 0, 471, 462, 0, 0, 380, 0, 0, - 260, 579, 0, 574, 526, 517, 0, 0, 274, 0, - 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, - 0, 600, 0, 0, 0, 0, 0, 613, 629, 0, - 0, 703, 55, 0, 54, 0, 492, 0, 0, 570, - 693, 0, 189, 0, 0, 0, 0, 238, 241, 242, - 243, 244, 0, 0, 0, 0, 256, 257, 245, 246, - 247, 258, 204, 0, 200, 0, 313, 0, 429, 0, - 466, 421, 404, 405, 406, 392, 393, 409, 410, 411, - 395, 396, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 389, 390, 391, 402, 403, 401, 0, 387, 394, - 407, 408, 397, 398, 399, 400, 384, 262, 595, 0, - 593, 594, 586, 587, 591, 592, 588, 589, 590, 0, - 580, 581, 583, 584, 585, 576, 0, 521, 0, 278, - 302, 303, 304, 305, 306, 307, 295, 0, 0, 602, - 622, 0, 625, 0, 615, 720, 0, 718, 716, 710, - 714, 715, 0, 708, 712, 713, 711, 705, 52, 0, - 0, 496, 0, 192, 228, 229, 230, 231, 227, 233, - 235, 237, 249, 251, 253, 255, 202, 315, 431, 468, - 0, 386, 0, 0, 578, 0, 523, 280, 609, 611, - 624, 627, 0, 0, 0, 0, 707, 56, 498, 554, - 388, 0, 597, 582, 0, 717, 0, 709, 596, 0, - 719, 724, 0, 722, 0, 0, 721, 733, 0, 0, - 0, 738, 0, 726, 728, 729, 730, 731, 732, 723, - 0, 0, 0, 0, 0, 0, 725, 0, 735, 736, - 737, 0, 727, 734, 739 + 0, 612, 0, 0, 0, 0, 0, 0, 0, 73, + 0, 0, 0, 184, 164, 0, 0, 0, 0, 0, + 0, 392, 0, 0, 0, 333, 0, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 543, 0, 0, 463, + 0, 0, 0, 474, 451, 0, 503, 504, 488, 0, + 0, 298, 666, 0, 0, 669, 0, 672, 673, 0, + 0, 682, 683, 0, 0, 0, 0, 647, 714, 0, + 708, 703, 0, 0, 0, 693, 695, 697, 0, 0, + 0, 560, 562, 564, 0, 0, 198, 136, 145, 146, + 147, 148, 149, 144, 151, 153, 324, 440, 477, 395, + 40, 527, 529, 388, 389, 390, 391, 387, 0, 0, + 532, 289, 0, 0, 0, 0, 0, 155, 157, 0, + 51, 175, 178, 179, 177, 182, 183, 181, 375, 377, + 379, 507, 373, 381, 385, 383, 0, 525, 582, 570, + 572, 576, 574, 580, 578, 566, 466, 241, 470, 468, + 473, 500, 303, 305, 681, 668, 671, 676, 677, 675, + 679, 685, 687, 689, 691, 198, 44, 0, 0, 0, + 0, 192, 0, 189, 191, 227, 233, 235, 237, 0, + 0, 0, 0, 0, 249, 251, 253, 255, 0, 0, + 0, 0, 0, 0, 226, 0, 204, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 219, 220, 221, + 216, 222, 223, 224, 217, 218, 225, 0, 202, 0, + 199, 200, 328, 0, 325, 326, 444, 0, 441, 442, + 481, 0, 478, 479, 399, 0, 396, 397, 269, 270, + 271, 272, 273, 0, 262, 264, 265, 266, 267, 268, + 591, 0, 589, 536, 0, 533, 534, 293, 0, 290, + 291, 0, 0, 0, 0, 0, 0, 0, 308, 310, + 311, 312, 313, 314, 315, 0, 0, 0, 283, 0, + 276, 278, 279, 280, 281, 282, 622, 624, 621, 619, + 620, 0, 615, 617, 618, 0, 637, 0, 640, 633, + 634, 0, 628, 630, 631, 632, 635, 0, 720, 0, + 718, 53, 511, 0, 508, 509, 567, 585, 586, 0, + 0, 69, 710, 699, 162, 0, 0, 188, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 186, 195, + 0, 197, 0, 0, 323, 0, 448, 437, 0, 485, + 476, 0, 0, 394, 0, 0, 261, 593, 0, 588, + 540, 531, 0, 0, 288, 0, 0, 0, 0, 0, + 0, 0, 0, 307, 0, 0, 0, 0, 275, 0, + 0, 0, 614, 0, 0, 0, 0, 0, 627, 643, + 0, 0, 717, 55, 0, 54, 0, 506, 0, 0, + 584, 707, 0, 190, 0, 0, 0, 0, 239, 242, + 243, 244, 245, 0, 0, 0, 0, 257, 258, 246, + 247, 248, 259, 205, 0, 201, 0, 327, 0, 443, + 0, 480, 435, 418, 419, 420, 406, 407, 423, 424, + 425, 409, 410, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 403, 404, 405, 416, 417, 415, 0, 401, + 408, 421, 422, 411, 412, 413, 414, 398, 263, 609, + 0, 607, 608, 600, 601, 605, 606, 602, 603, 604, + 0, 594, 595, 597, 598, 599, 590, 0, 535, 0, + 292, 316, 317, 318, 319, 320, 321, 309, 284, 285, + 286, 277, 0, 0, 616, 636, 0, 639, 0, 629, + 734, 0, 732, 730, 724, 728, 729, 0, 722, 726, + 727, 725, 719, 52, 0, 0, 510, 0, 193, 229, + 230, 231, 232, 228, 234, 236, 238, 250, 252, 254, + 256, 203, 329, 445, 482, 0, 400, 0, 0, 592, + 0, 537, 294, 623, 625, 638, 641, 0, 0, 0, + 0, 721, 56, 512, 568, 402, 0, 611, 596, 0, + 731, 0, 723, 610, 0, 733, 738, 0, 736, 0, + 0, 735, 747, 0, 0, 0, 752, 0, 740, 742, + 743, 744, 745, 746, 737, 0, 0, 0, 0, 0, + 0, 739, 0, 749, 750, 751, 0, 741, 748, 753 }; - const short + const short int Dhcp4Parser::yypgoto_[] = { - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -23, -915, 343, -915, - -915, -915, -915, -915, -915, -915, -915, -580, -915, -915, - -915, -70, -915, -915, -915, 550, -915, -915, -915, -915, - 279, 456, -47, -44, -1, 16, 18, 24, 30, 31, - -915, -915, -915, -915, 34, 35, 36, 37, 38, 42, - -915, 270, 48, -915, 49, -915, 50, -915, 52, -915, - 53, -915, -915, -915, -915, 257, 458, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, 82, -915, -915, -915, -915, -915, -915, - 181, -915, 2, -915, -652, 71, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -39, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 44, - -915, -915, -915, -915, -915, -915, -915, -915, -915, 45, - -915, -915, -915, 40, 484, -915, -915, -915, -915, -915, - -915, -915, 41, -915, -915, -915, -915, -915, -915, -914, - -915, -915, -915, 69, -915, -915, -915, 72, 514, -915, - -915, -915, -915, -915, -915, -915, -915, -912, -915, -43, - -915, 55, -915, 54, -915, -915, -915, -915, -915, -915, - -915, 58, -915, -915, -120, -63, -915, -915, -915, -915, - -915, 70, -915, -915, -915, 76, -915, 501, -915, -66, - -915, -915, -915, -915, -915, -64, -915, -915, -915, -915, - -915, -7, -915, -915, -915, 78, -915, -915, -915, 83, - -915, 493, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, 26, -915, -915, -915, 32, 523, -915, - -915, -57, -915, -20, -915, -62, -915, -915, -915, 63, - -915, -915, -915, 80, -915, 517, 0, -915, 6, -915, - 12, -915, 287, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -911, -915, -915, -915, -915, -915, 84, -915, -915, -915, - -114, -915, -915, -915, -915, -915, -915, -915, -915, 57, - -915, -915, -915, -915, -915, -915, -915, 46, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, 313, 487, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, 354, 489, -915, -915, -915, - -915, -915, -915, -915, 359, 491, -75, -915, -915, 59, - -915, -915, -115, -915, -915, -915, -915, -915, -915, -133, - -915, -915, -150, -915, -915, -915, -915, -915, -915, -915 + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, 0, -939, 177, -939, + -939, -939, -939, -939, -939, -939, -939, -587, -939, -939, + -939, -70, -939, -939, -939, 435, -939, -939, -939, -939, + 108, 384, -43, -31, -27, -4, -2, 8, 16, 19, + -939, -939, -939, -939, 22, 23, 26, 27, 29, 34, + -939, 203, 37, -939, 40, -939, 41, -939, 42, -939, + 44, -939, -939, -939, -939, 188, 388, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -52, -939, -939, -939, -939, -939, -939, + 126, -939, -74, -939, -662, -41, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -66, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -42, + -939, -939, -939, -939, -939, -939, -939, -939, -89, -939, + -939, -939, -939, -939, -939, -939, -64, -939, -939, -939, + -46, 383, -939, -939, -939, -939, -939, -939, -939, -35, + -939, -939, -939, -939, -939, -939, -938, -939, -939, -939, + -15, -939, -939, -939, -25, 449, -939, -939, -939, -939, + -939, -939, -939, -939, -936, -939, -68, -939, 46, -939, + 45, -939, -939, -939, -939, -939, -939, -939, -20, -939, + -939, -201, -49, -939, -939, -939, -939, -939, 5, -939, + -939, -939, -1, -939, 489, -939, -45, -939, -939, -939, + -939, -939, -39, -939, -939, -939, -939, -939, -38, -939, + -939, -939, 1, -939, -939, -939, 6, -939, 499, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -7, -939, -939, -939, -6, 515, -939, -939, -54, -939, + -14, -939, -28, -939, -939, -939, 39, -939, -939, -939, + 47, -939, 503, -58, -939, -3, -939, 4, -939, 277, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -924, -939, -939, + -939, -939, -939, 51, -939, -939, -939, -148, -939, -939, + -939, -939, -939, -939, -939, -939, 25, -939, -939, -939, + -939, -939, -939, -939, 18, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, 298, 500, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, + -939, -939, 340, 474, -939, -939, -939, -939, -939, -939, + -939, 348, 501, -59, -939, -939, 28, -939, -939, -147, + -939, -939, -939, -939, -939, -939, -166, -939, -939, -185, + -939, -939, -939, -939, -939, -939, -939 }; - const short + const short int Dhcp4Parser::yydefgoto_[] = { -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 38, 39, 40, 69, - 687, 87, 88, 41, 68, 84, 85, 706, 885, 973, - 974, 779, 43, 70, 96, 97, 98, 403, 45, 71, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 432, 166, 167, 168, 169, 170, 171, 172, - 438, 679, 173, 439, 174, 440, 175, 458, 176, 459, - 177, 178, 179, 180, 412, 211, 212, 47, 72, 213, - 463, 214, 464, 709, 215, 465, 712, 216, 181, 420, - 182, 413, 757, 758, 759, 899, 183, 421, 184, 422, - 804, 805, 806, 924, 780, 781, 782, 902, 1108, 783, - 903, 784, 904, 785, 905, 786, 787, 496, 788, 789, - 790, 791, 792, 793, 794, 795, 911, 796, 912, 797, - 913, 798, 914, 799, 800, 801, 185, 449, 828, 829, - 830, 831, 832, 833, 834, 186, 452, 843, 844, 845, - 947, 61, 79, 350, 351, 352, 509, 353, 510, 187, - 453, 852, 853, 854, 855, 856, 857, 858, 859, 188, - 442, 808, 809, 810, 927, 49, 73, 249, 250, 251, - 473, 252, 469, 253, 470, 254, 471, 255, 474, 256, - 477, 257, 476, 189, 448, 693, 259, 190, 445, 820, - 821, 822, 936, 1037, 1038, 191, 443, 55, 76, 812, - 813, 814, 930, 57, 77, 315, 316, 317, 318, 319, - 320, 321, 495, 322, 499, 323, 498, 324, 325, 500, - 326, 192, 444, 816, 817, 818, 933, 59, 78, 336, - 337, 338, 339, 340, 504, 341, 342, 343, 344, 261, - 472, 887, 888, 889, 975, 51, 74, 274, 275, 276, - 481, 193, 446, 194, 447, 195, 451, 839, 840, 841, - 944, 53, 75, 291, 292, 293, 196, 417, 197, 418, - 198, 419, 297, 491, 892, 978, 298, 485, 299, 486, - 300, 488, 301, 487, 302, 490, 303, 489, 304, 484, - 268, 478, 893, 199, 450, 836, 837, 941, 1059, 1060, - 1061, 1062, 1063, 1122, 1064, 200, 201, 455, 865, 866, - 867, 958, 868, 959, 202, 456, 875, 876, 877, 878, - 963, 879, 880, 965, 203, 457, 63, 80, 372, 373, - 374, 375, 515, 376, 377, 517, 378, 379, 380, 520, - 744, 381, 521, 382, 514, 383, 384, 385, 524, 386, - 525, 387, 526, 388, 527, 99, 405, 100, 406, 101, - 407, 204, 411, 67, 82, 394, 395, 396, 532, 397, - 102, 404, 65, 81, 389, 390, 205, 460, 883, 884, - 969, 1092, 1093, 1094, 1095, 1134, 1096, 1132, 1152, 1153, - 1154, 1162, 1163, 1164, 1170, 1165, 1166, 1167, 1168, 1174 + 691, 87, 88, 41, 68, 84, 85, 711, 901, 994, + 995, 784, 43, 70, 96, 97, 98, 405, 45, 71, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 434, 167, 168, 169, 170, 171, 172, 173, + 440, 683, 174, 441, 175, 442, 176, 461, 177, 462, + 178, 179, 180, 181, 414, 213, 214, 47, 72, 215, + 466, 216, 467, 714, 217, 468, 717, 218, 182, 422, + 183, 415, 762, 763, 764, 915, 184, 423, 185, 424, + 809, 810, 811, 940, 785, 786, 787, 918, 1133, 788, + 919, 789, 920, 790, 921, 791, 792, 499, 793, 794, + 795, 796, 797, 798, 799, 800, 927, 801, 928, 802, + 929, 803, 930, 804, 805, 806, 186, 451, 833, 834, + 835, 836, 837, 838, 839, 187, 457, 869, 870, 871, + 872, 873, 188, 454, 848, 849, 850, 963, 61, 79, + 352, 353, 354, 512, 355, 513, 189, 455, 857, 858, + 859, 860, 861, 862, 863, 864, 190, 444, 813, 814, + 815, 943, 49, 73, 251, 252, 253, 476, 254, 472, + 255, 473, 256, 474, 257, 477, 258, 480, 259, 479, + 191, 450, 697, 261, 192, 447, 825, 826, 827, 952, + 1058, 1059, 193, 445, 55, 76, 817, 818, 819, 946, + 57, 77, 317, 318, 319, 320, 321, 322, 323, 498, + 324, 502, 325, 501, 326, 327, 503, 328, 194, 446, + 821, 822, 823, 949, 59, 78, 338, 339, 340, 341, + 342, 507, 343, 344, 345, 346, 263, 475, 903, 904, + 905, 996, 51, 74, 276, 277, 278, 484, 195, 448, + 196, 449, 197, 453, 844, 845, 846, 960, 53, 75, + 293, 294, 295, 198, 419, 199, 420, 200, 421, 299, + 494, 908, 999, 300, 488, 301, 489, 302, 491, 303, + 490, 304, 493, 305, 492, 306, 487, 270, 481, 909, + 201, 452, 841, 842, 957, 1080, 1081, 1082, 1083, 1084, + 1147, 1085, 202, 203, 458, 881, 882, 883, 979, 884, + 980, 204, 459, 891, 892, 893, 894, 984, 895, 896, + 986, 205, 460, 63, 80, 374, 375, 376, 377, 518, + 378, 379, 520, 380, 381, 382, 523, 749, 383, 524, + 384, 517, 385, 386, 387, 527, 388, 528, 389, 529, + 390, 530, 99, 407, 100, 408, 101, 409, 206, 413, + 67, 82, 396, 397, 398, 535, 399, 102, 406, 65, + 81, 391, 392, 207, 463, 899, 900, 990, 1117, 1118, + 1119, 1120, 1159, 1121, 1157, 1177, 1178, 1179, 1187, 1188, + 1189, 1195, 1190, 1191, 1192, 1193, 1199 }; - const short + const unsigned short int Dhcp4Parser::yytable_[] = { - 95, 153, 210, 229, 270, 287, 391, 313, 332, 349, - 369, 264, 334, 305, 335, 217, 262, 277, 289, 802, - 327, 345, 1032, 370, 1033, 1045, 230, 89, 719, 231, - 42, 271, 742, 31, 723, 32, 136, 33, 314, 333, - 206, 207, 347, 348, 208, 83, 409, 209, 269, 138, - 139, 410, 218, 263, 278, 290, 30, 328, 346, 86, - 371, 226, 347, 348, 227, 461, 260, 273, 288, 135, - 462, 467, 232, 265, 44, 294, 468, 479, 482, 266, - 46, 295, 480, 483, 48, 267, 50, 296, 52, 233, - 511, 234, 109, 110, 111, 512, 528, 235, 138, 139, - 306, 529, 939, 236, 237, 940, 152, 238, 239, 240, - 241, 242, 530, 534, 54, 243, 399, 531, 535, 138, - 139, 244, 245, 246, 56, 247, 248, 258, 94, 272, - 58, 461, 674, 675, 676, 677, 895, 398, 530, 869, - 870, 871, 94, 896, 135, 136, 307, 534, 307, 60, - 308, 309, 897, 62, 310, 311, 312, 64, 138, 139, - 138, 139, 823, 824, 825, 826, 743, 827, 678, 66, - 1157, 1048, 1049, 1158, 1159, 1160, 1161, 90, 400, 942, - 103, 467, 943, 104, 138, 139, 898, 91, 92, 93, - 970, 872, 105, 971, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 401, 94, 900, 1032, 402, 1033, 1045, - 901, 1155, 94, 408, 1156, 34, 35, 36, 37, 921, - 921, 492, 860, 861, 922, 923, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 414, 956, 493, 135, - 136, 94, 957, 94, 846, 847, 848, 849, 850, 851, - 137, 960, 966, 138, 139, 528, 961, 967, 140, 415, - 968, 921, 1003, 141, 142, 307, 1116, 94, 479, 143, - 1120, 511, 494, 1117, 416, 1121, 1127, 138, 139, 144, - 707, 708, 145, 307, 329, 308, 309, 330, 331, 146, - 147, 392, 393, 148, 1135, 138, 139, 149, 482, 1136, - 1175, 710, 711, 1138, 423, 1176, 107, 108, 109, 110, - 111, 689, 690, 691, 692, 286, 890, 150, 151, 424, - 152, 1104, 1105, 1106, 1107, 425, 426, 427, 428, 95, - 429, 430, 431, 433, 434, 435, 436, 115, 116, 117, - 118, 119, 120, 121, 122, 1085, 94, 1086, 1087, 127, - 128, 129, 130, 131, 132, 133, 437, 219, 220, 221, - 441, 136, 454, 466, 475, 497, 536, 537, 501, 503, - 94, 502, 222, 505, 138, 139, 223, 224, 225, 140, - 506, 153, 508, 507, 513, 516, 226, 210, 94, 227, - 143, 518, 519, 522, 523, 533, 538, 228, 539, 229, - 217, 540, 270, 541, 542, 543, 545, 264, 546, 547, - 548, 549, 262, 287, 550, 277, 551, 552, 553, 554, - 555, 556, 230, 313, 557, 231, 289, 558, 332, 271, - 559, 560, 334, 561, 335, 563, 327, 218, 150, 151, - 562, 345, 564, 566, 565, 391, 572, 567, 369, 263, - 568, 569, 278, 573, 314, 574, 570, 576, 577, 333, - 578, 370, 260, 290, 571, 273, 575, 94, 232, 265, - 579, 580, 581, 328, 582, 266, 288, 583, 346, 584, - 585, 267, 586, 294, 587, 233, 588, 234, 589, 295, - 590, 591, 592, 235, 599, 296, 593, 594, 371, 236, - 237, 596, 597, 238, 239, 240, 241, 242, 661, 662, - 663, 243, 1139, 598, 601, 602, 603, 244, 245, 246, - 604, 247, 248, 258, 760, 605, 606, 272, 607, 761, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 772, 773, 774, 775, 776, 777, 778, 1, 2, 3, + 95, 154, 212, 231, 272, 289, 273, 315, 334, 351, + 371, 316, 335, 807, 1053, 267, 1054, 296, 219, 264, + 279, 291, 393, 329, 347, 724, 372, 307, 1066, 86, + 232, 728, 30, 336, 89, 262, 275, 290, 411, 337, + 42, 955, 233, 412, 956, 266, 234, 135, 31, 747, + 32, 464, 33, 153, 349, 350, 465, 44, 220, 265, + 280, 292, 470, 330, 348, 401, 373, 471, 83, 235, + 268, 236, 297, 136, 46, 482, 48, 269, 50, 298, + 483, 237, 109, 110, 111, 271, 138, 139, 485, 238, + 52, 958, 239, 486, 959, 240, 241, 54, 228, 242, + 243, 229, 244, 693, 694, 695, 696, 245, 138, 139, + 246, 138, 139, 247, 248, 249, 514, 250, 260, 56, + 274, 515, 208, 209, 94, 308, 210, 1182, 58, 211, + 1183, 1184, 1185, 1186, 60, 136, 62, 109, 110, 111, + 309, 331, 310, 311, 332, 333, 394, 395, 138, 139, + 876, 877, 138, 139, 138, 139, 885, 886, 887, 281, + 678, 679, 680, 681, 64, 282, 283, 284, 285, 286, + 287, 991, 288, 309, 992, 310, 311, 531, 66, 312, + 313, 314, 532, 94, 400, 138, 139, 748, 90, 135, + 136, 309, 865, 866, 867, 402, 682, 403, 91, 92, + 93, 138, 139, 138, 139, 94, 309, 1053, 888, 1054, + 1180, 103, 404, 1181, 104, 94, 1069, 1070, 138, 139, + 410, 1066, 416, 105, 417, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 34, 35, 36, 37, 851, 852, + 853, 854, 855, 856, 418, 94, 425, 533, 537, 94, + 464, 94, 534, 538, 426, 911, 427, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 428, 1024, 429, + 135, 136, 94, 828, 829, 830, 831, 430, 832, 431, + 1110, 137, 1111, 1112, 138, 139, 533, 537, 94, 140, + 94, 912, 913, 470, 141, 142, 916, 937, 914, 937, + 143, 917, 938, 432, 939, 94, 972, 138, 139, 977, + 144, 973, 981, 145, 978, 349, 350, 982, 987, 531, + 146, 147, 937, 988, 989, 148, 433, 1141, 149, 765, + 435, 95, 150, 436, 766, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 151, 152, 437, 153, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 482, + 712, 713, 438, 1145, 1142, 369, 370, 309, 1146, 439, + 514, 94, 1160, 485, 154, 1152, 443, 1161, 1163, 1200, + 212, 539, 540, 456, 1201, 469, 1129, 1130, 1131, 1132, + 288, 906, 231, 478, 94, 272, 219, 273, 715, 716, + 495, 496, 497, 500, 267, 504, 289, 506, 264, 508, + 505, 279, 509, 511, 510, 516, 315, 519, 296, 232, + 316, 334, 291, 521, 262, 335, 522, 275, 525, 526, + 536, 233, 329, 541, 266, 234, 220, 347, 290, 542, + 543, 371, 544, 545, 546, 548, 336, 549, 265, 550, + 551, 280, 337, 552, 393, 553, 554, 372, 235, 268, + 236, 555, 292, 556, 557, 558, 269, 559, 560, 561, + 237, 562, 330, 297, 563, 565, 94, 348, 238, 564, + 298, 239, 569, 566, 240, 241, 572, 567, 242, 243, + 568, 244, 570, 571, 575, 576, 245, 373, 573, 246, + 577, 574, 247, 248, 249, 578, 250, 260, 579, 580, + 581, 274, 582, 583, 584, 585, 586, 587, 588, 589, + 1164, 590, 591, 592, 665, 666, 667, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 608, 609, 610, 612, 614, 615, 616, 617, 618, - 619, 620, 307, 621, 623, 391, 624, 626, 627, 153, - 625, 628, 631, 629, 635, 210, 632, 636, 633, 639, - 745, 640, 642, 638, 641, 643, 644, 645, 217, 646, - 647, 648, 649, 738, 650, 107, 108, 109, 110, 111, - 651, 652, 655, 656, 109, 110, 111, 658, 659, 862, - 667, 369, 660, 664, 665, 751, 666, 668, 669, 670, - 671, 672, 863, 873, 370, 218, 115, 116, 117, 118, - 119, 120, 121, 122, 673, 680, 681, 682, 127, 128, - 129, 130, 131, 132, 133, 134, 683, 684, 685, 688, - 136, 307, 138, 139, 32, 694, 695, 136, 696, 864, - 874, 371, 697, 138, 139, 698, 224, 94, 140, 699, - 138, 139, 700, 701, 704, 226, 702, 703, 227, 705, - 713, 279, 714, 715, 716, 717, 228, 280, 281, 282, - 283, 284, 285, 721, 286, 718, 720, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 722, 724, 725, 726, 727, 728, 367, 368, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 150, 151, 739, - 740, 741, 747, 748, 750, 756, 979, 803, 807, 811, - 815, 819, 835, 838, 842, 94, 882, 886, 749, 906, - 907, 908, 909, 910, 915, 916, 94, 917, 918, 919, - 920, 950, 926, 94, 925, 929, 928, 931, 932, 934, - 935, 938, 937, 946, 972, 945, 949, 948, 951, 952, - 953, 954, 955, 962, 964, 977, 1103, 976, 981, 980, - 983, 984, 985, 986, 988, 992, 987, 993, 989, 994, - 995, 990, 991, 996, 1077, 997, 998, 999, 1078, 1001, - 1000, 1070, 1071, 1072, 1073, 1074, 1075, 1081, 1082, 1080, - 1083, 1098, 1099, 1109, 1102, 1110, 1111, 1112, 1123, 1118, - 1119, 1113, 1114, 1115, 1124, 1125, 1126, 229, 1133, 1128, - 313, 1129, 1130, 332, 1141, 264, 1011, 334, 1137, 335, - 262, 1050, 1144, 327, 287, 1145, 345, 349, 1052, 1040, - 230, 1142, 1146, 231, 1054, 1148, 1149, 289, 1150, 1012, - 862, 314, 1013, 1034, 333, 1151, 1171, 1031, 1172, 1088, - 1173, 1177, 1051, 863, 1178, 270, 1179, 263, 1180, 873, - 328, 1181, 1090, 346, 1183, 1184, 1041, 595, 277, 746, - 260, 1055, 755, 686, 290, 600, 232, 265, 1004, 1039, - 1089, 894, 271, 266, 1053, 1014, 1042, 288, 752, 267, - 864, 1056, 1043, 233, 294, 234, 874, 1057, 1044, 1091, - 295, 235, 1015, 1058, 1016, 278, 296, 236, 237, 544, - 1017, 238, 239, 240, 241, 242, 1018, 1019, 273, 243, - 1020, 1021, 1022, 1023, 1024, 244, 245, 246, 1025, 247, - 248, 258, 982, 1047, 1026, 1027, 1028, 1068, 1029, 1030, - 1036, 1035, 1002, 611, 1069, 637, 1046, 1076, 1006, 1005, - 1140, 634, 1008, 1101, 630, 613, 1007, 1100, 891, 1067, - 622, 1143, 1084, 1010, 881, 653, 1009, 1079, 754, 753, - 1147, 654, 1169, 657, 1066, 1182, 1065, 0, 0, 1097, - 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 593, 594, 595, 596, 597, 598, 600, 601, 602, + 605, 603, 606, 607, 608, 609, 610, 612, 611, 613, + 614, 616, 618, 619, 620, 621, 622, 623, 624, 625, + 627, 628, 629, 154, 630, 631, 632, 633, 635, 212, + 636, 637, 639, 640, 642, 393, 643, 644, 645, 646, + 649, 650, 647, 653, 654, 219, 655, 651, 656, 648, + 659, 662, 663, 652, 660, 664, 668, 669, 670, 671, + 674, 672, 673, 868, 878, 675, 371, 676, 677, 684, + 743, 685, 32, 686, 687, 688, 689, 698, 692, 874, + 879, 889, 372, 699, 700, 220, 701, 702, 707, 703, + 704, 705, 756, 107, 108, 109, 110, 111, 706, 708, + 709, 710, 721, 718, 750, 719, 720, 722, 723, 725, + 726, 727, 729, 730, 731, 732, 733, 734, 735, 875, + 880, 890, 373, 736, 115, 116, 117, 118, 119, 120, + 121, 122, 755, 737, 738, 739, 127, 128, 129, 130, + 131, 132, 133, 740, 221, 222, 223, 761, 136, 808, + 812, 816, 820, 824, 840, 843, 847, 741, 898, 224, + 902, 138, 139, 225, 226, 227, 140, 742, 744, 745, + 746, 752, 753, 228, 754, 922, 229, 143, 923, 924, + 925, 926, 931, 932, 230, 933, 934, 935, 936, 942, + 690, 941, 945, 944, 947, 948, 950, 951, 954, 953, + 962, 757, 961, 965, 964, 966, 967, 968, 969, 970, + 971, 974, 975, 976, 983, 985, 993, 998, 997, 1002, + 1009, 1000, 1001, 1004, 1005, 1006, 1007, 1013, 1011, 151, + 152, 1014, 1015, 1008, 1016, 1010, 1102, 1103, 1106, 1108, + 1124, 1150, 1123, 1127, 1012, 1148, 1017, 1018, 1019, 1020, + 1143, 1144, 1022, 1021, 1149, 1091, 1092, 1151, 94, 1158, + 1098, 1166, 1169, 1171, 1196, 1093, 1094, 1095, 1096, 1099, + 1174, 1176, 1197, 1198, 1202, 1206, 547, 1100, 599, 1107, + 1105, 1128, 1167, 1134, 1135, 1136, 751, 760, 604, 1137, + 1138, 1139, 1140, 1153, 1003, 1154, 1155, 1162, 1025, 1170, + 1173, 1175, 1203, 231, 1204, 1205, 315, 1208, 1209, 334, + 316, 910, 1032, 335, 1055, 267, 1052, 1071, 1101, 264, + 289, 1072, 329, 351, 1063, 347, 1023, 641, 1061, 1077, + 232, 1090, 296, 1075, 336, 262, 291, 868, 1073, 1033, + 337, 878, 233, 1068, 1060, 266, 234, 1089, 1026, 1074, + 1113, 1034, 290, 874, 1114, 1035, 272, 879, 273, 265, + 1027, 615, 330, 889, 1067, 348, 1115, 1097, 1062, 235, + 268, 236, 279, 1076, 1165, 1028, 292, 269, 1036, 1064, + 1037, 237, 1031, 1029, 1078, 1030, 1065, 297, 275, 238, + 1038, 1079, 239, 875, 298, 240, 241, 880, 1039, 242, + 243, 1040, 244, 890, 1041, 1042, 1116, 245, 1043, 1044, + 246, 1045, 280, 247, 248, 249, 1046, 250, 260, 1047, + 1125, 1126, 1048, 1049, 1050, 634, 1051, 1057, 1056, 626, + 617, 1088, 1168, 907, 897, 1109, 1104, 1087, 759, 1086, + 638, 661, 758, 1172, 1194, 1207, 0, 0, 0, 1122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1011, 0, 0, 0, 0, 1050, 0, 0, 0, 0, - 1131, 0, 1052, 1040, 0, 1088, 0, 0, 1054, 0, - 0, 0, 0, 1012, 0, 0, 1013, 1034, 1090, 0, - 0, 1031, 0, 0, 0, 0, 1051, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, - 1041, 0, 0, 0, 0, 1055, 0, 0, 0, 0, - 0, 0, 0, 1039, 0, 1091, 0, 0, 1053, 1014, - 1042, 0, 0, 0, 0, 1056, 1043, 0, 0, 0, - 0, 1057, 1044, 0, 0, 0, 1015, 1058, 1016, 0, - 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, - 1018, 1019, 0, 0, 1020, 1021, 1022, 1023, 1024, 0, - 0, 0, 1025, 0, 0, 0, 0, 0, 1026, 1027, - 1028, 0, 1029, 1030, 1036, 1035 + 0, 657, 0, 0, 658, 0, 0, 0, 0, 0, + 0, 0, 274, 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, 1032, 0, 1055, 0, 1052, + 1071, 0, 0, 0, 1072, 0, 0, 1063, 0, 0, + 1113, 1061, 1077, 0, 1114, 0, 1075, 0, 0, 0, + 0, 1073, 1033, 0, 0, 0, 1115, 1060, 1156, 0, + 0, 0, 1074, 0, 1034, 0, 0, 0, 1035, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1062, 0, 0, 0, 0, 1076, 0, 0, 0, + 0, 1036, 1064, 1037, 0, 0, 1116, 1078, 0, 1065, + 0, 0, 0, 1038, 1079, 0, 0, 0, 0, 0, + 0, 1039, 0, 0, 1040, 0, 0, 1041, 1042, 0, + 0, 1043, 1044, 0, 1045, 0, 0, 0, 0, 1046, + 0, 0, 1047, 0, 0, 1048, 1049, 1050, 0, 1051, + 1057, 1056, 107, 108, 109, 110, 111, 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, 115, 116, 117, 118, 119, 120, 121, + 122, 0, 0, 0, 0, 127, 128, 129, 130, 131, + 132, 133, 134, 0, 0, 0, 0, 136, 309, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 138, 139, 0, 226, 0, 140, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 230, 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, 151, 152, + 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, 94 }; - const short + const short int Dhcp4Parser::yycheck_[] = { - 70, 71, 72, 73, 74, 75, 81, 77, 78, 79, - 80, 73, 78, 76, 78, 72, 73, 74, 75, 671, - 77, 78, 936, 80, 936, 936, 73, 10, 608, 73, - 7, 74, 18, 5, 614, 7, 81, 9, 77, 78, - 15, 16, 121, 122, 19, 68, 3, 22, 93, 94, - 95, 8, 72, 73, 74, 75, 0, 77, 78, 187, - 80, 106, 121, 122, 109, 3, 73, 74, 75, 80, - 8, 3, 73, 73, 7, 75, 8, 3, 3, 73, - 7, 75, 8, 8, 7, 73, 7, 75, 7, 73, - 3, 73, 28, 29, 30, 8, 3, 73, 94, 95, - 34, 8, 3, 73, 73, 6, 161, 73, 73, 73, - 73, 73, 3, 3, 7, 73, 3, 8, 8, 94, - 95, 73, 73, 73, 7, 73, 73, 73, 187, 74, - 7, 3, 154, 155, 156, 157, 8, 6, 3, 135, - 136, 137, 187, 8, 80, 81, 82, 3, 82, 7, - 84, 85, 8, 7, 88, 89, 90, 7, 94, 95, - 94, 95, 111, 112, 113, 114, 152, 116, 190, 7, - 163, 107, 108, 166, 167, 168, 169, 160, 4, 3, - 11, 3, 6, 14, 94, 95, 8, 170, 171, 172, - 3, 187, 23, 6, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 8, 187, 3, 1120, 3, 1120, 1120, - 8, 3, 187, 4, 6, 187, 188, 189, 190, 3, - 3, 8, 132, 133, 8, 8, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 4, 3, 3, 80, - 81, 187, 8, 187, 124, 125, 126, 127, 128, 129, - 91, 3, 3, 94, 95, 3, 8, 8, 99, 4, - 8, 3, 924, 104, 105, 82, 8, 187, 3, 110, - 3, 3, 8, 8, 4, 8, 8, 94, 95, 120, - 17, 18, 123, 82, 83, 84, 85, 86, 87, 130, - 131, 12, 13, 134, 3, 94, 95, 138, 3, 8, - 3, 20, 21, 8, 4, 8, 26, 27, 28, 29, - 30, 100, 101, 102, 103, 118, 119, 158, 159, 4, - 161, 35, 36, 37, 38, 4, 4, 4, 4, 409, - 4, 4, 4, 4, 4, 4, 4, 57, 58, 59, - 60, 61, 62, 63, 64, 162, 187, 164, 165, 69, - 70, 71, 72, 73, 74, 75, 4, 77, 78, 79, - 4, 81, 4, 4, 4, 4, 399, 400, 4, 3, - 187, 8, 92, 4, 94, 95, 96, 97, 98, 99, - 4, 461, 3, 8, 4, 4, 106, 467, 187, 109, - 110, 4, 4, 4, 4, 4, 187, 117, 4, 479, - 467, 4, 482, 4, 4, 4, 4, 479, 4, 4, - 190, 190, 479, 493, 190, 482, 4, 4, 4, 4, - 4, 4, 479, 503, 188, 479, 493, 188, 508, 482, - 188, 188, 508, 188, 508, 189, 503, 467, 158, 159, - 190, 508, 189, 4, 188, 530, 4, 188, 528, 479, - 188, 190, 482, 4, 503, 4, 190, 4, 4, 508, - 4, 528, 479, 493, 190, 482, 190, 187, 479, 479, - 4, 4, 4, 503, 4, 479, 493, 4, 508, 4, - 4, 479, 4, 493, 4, 479, 188, 479, 4, 493, - 4, 4, 4, 479, 190, 493, 4, 4, 528, 479, - 479, 4, 4, 479, 479, 479, 479, 479, 541, 542, - 543, 479, 1102, 4, 4, 4, 4, 479, 479, 479, - 4, 479, 479, 479, 34, 4, 4, 482, 188, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 82, 4, 4, 660, 4, 4, 4, 659, - 188, 4, 4, 190, 4, 665, 190, 4, 190, 4, - 153, 4, 4, 190, 188, 188, 188, 4, 665, 4, - 190, 190, 4, 636, 4, 26, 27, 28, 29, 30, - 4, 4, 4, 188, 28, 29, 30, 4, 7, 699, - 187, 701, 7, 7, 7, 658, 7, 187, 187, 7, - 7, 5, 699, 700, 701, 665, 57, 58, 59, 60, - 61, 62, 63, 64, 187, 187, 187, 5, 69, 70, - 71, 72, 73, 74, 75, 76, 5, 5, 5, 187, - 81, 82, 94, 95, 7, 5, 5, 81, 5, 699, - 700, 701, 5, 94, 95, 7, 97, 187, 99, 7, - 94, 95, 7, 7, 5, 106, 187, 187, 109, 5, - 187, 105, 187, 187, 5, 187, 117, 111, 112, 113, - 114, 115, 116, 7, 118, 187, 187, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 187, 187, 187, 187, 187, 187, 158, 159, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 158, 159, 187, - 187, 187, 187, 187, 5, 24, 8, 7, 7, 7, - 7, 7, 7, 7, 7, 187, 7, 7, 187, 4, - 4, 4, 4, 4, 4, 4, 187, 4, 4, 4, - 4, 4, 3, 187, 6, 3, 6, 6, 3, 6, - 3, 3, 6, 3, 187, 6, 3, 6, 4, 4, - 4, 4, 4, 4, 4, 3, 187, 6, 4, 6, - 4, 4, 4, 4, 190, 4, 188, 4, 188, 4, - 4, 190, 188, 188, 4, 188, 188, 188, 4, 188, - 190, 188, 188, 188, 188, 188, 188, 4, 188, 190, - 4, 6, 3, 187, 4, 187, 187, 187, 4, 8, - 8, 187, 187, 187, 8, 3, 8, 927, 4, 187, - 930, 187, 187, 933, 4, 927, 936, 933, 187, 933, - 927, 941, 4, 930, 944, 188, 933, 947, 941, 936, - 927, 190, 4, 927, 941, 187, 5, 944, 187, 936, - 960, 930, 936, 936, 933, 7, 4, 936, 4, 969, - 4, 4, 941, 960, 190, 975, 188, 927, 188, 966, - 930, 4, 969, 933, 187, 187, 936, 461, 975, 649, - 927, 941, 665, 580, 944, 467, 927, 927, 926, 936, - 969, 750, 975, 927, 941, 936, 936, 944, 659, 927, - 960, 941, 936, 927, 944, 927, 966, 941, 936, 969, - 944, 927, 936, 941, 936, 975, 944, 927, 927, 409, - 936, 927, 927, 927, 927, 927, 936, 936, 975, 927, - 936, 936, 936, 936, 936, 927, 927, 927, 936, 927, - 927, 927, 900, 939, 936, 936, 936, 947, 936, 936, - 936, 936, 921, 479, 949, 511, 938, 956, 929, 927, - 1120, 508, 932, 977, 503, 482, 930, 975, 721, 946, - 493, 1125, 966, 935, 701, 528, 933, 960, 664, 660, - 1135, 530, 1155, 534, 944, 1175, 942, -1, -1, 970, - 975, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, 72, 73, 74, 75, 74, 77, 78, 79, + 80, 77, 78, 675, 952, 73, 952, 75, 72, 73, + 74, 75, 81, 77, 78, 612, 80, 76, 952, 191, + 73, 618, 0, 78, 10, 73, 74, 75, 3, 78, + 7, 3, 73, 8, 6, 73, 73, 80, 5, 18, + 7, 3, 9, 165, 121, 122, 8, 7, 72, 73, + 74, 75, 3, 77, 78, 3, 80, 8, 68, 73, + 73, 73, 75, 81, 7, 3, 7, 73, 7, 75, + 8, 73, 28, 29, 30, 93, 94, 95, 3, 73, + 7, 3, 73, 8, 6, 73, 73, 7, 106, 73, + 73, 109, 73, 100, 101, 102, 103, 73, 94, 95, + 73, 94, 95, 73, 73, 73, 3, 73, 73, 7, + 74, 8, 15, 16, 191, 34, 19, 167, 7, 22, + 170, 171, 172, 173, 7, 81, 7, 28, 29, 30, + 82, 83, 84, 85, 86, 87, 12, 13, 94, 95, + 136, 137, 94, 95, 94, 95, 139, 140, 141, 105, + 158, 159, 160, 161, 7, 111, 112, 113, 114, 115, + 116, 3, 118, 82, 6, 84, 85, 3, 7, 88, + 89, 90, 8, 191, 6, 94, 95, 156, 164, 80, + 81, 82, 132, 133, 134, 4, 194, 8, 174, 175, + 176, 94, 95, 94, 95, 191, 82, 1145, 191, 1145, + 3, 11, 3, 6, 14, 191, 107, 108, 94, 95, + 4, 1145, 4, 23, 4, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 191, 192, 193, 194, 124, 125, + 126, 127, 128, 129, 4, 191, 4, 3, 3, 191, + 3, 191, 8, 8, 4, 8, 4, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 4, 940, 4, + 80, 81, 191, 111, 112, 113, 114, 4, 116, 4, + 166, 91, 168, 169, 94, 95, 3, 3, 191, 99, + 191, 8, 8, 3, 104, 105, 3, 3, 8, 3, + 110, 8, 8, 4, 8, 191, 3, 94, 95, 3, + 120, 8, 3, 123, 8, 121, 122, 8, 3, 3, + 130, 131, 3, 8, 8, 135, 4, 8, 138, 34, + 4, 411, 142, 4, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 162, 163, 4, 165, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 3, + 17, 18, 4, 3, 8, 162, 163, 82, 8, 4, + 3, 191, 3, 3, 464, 8, 4, 8, 8, 3, + 470, 401, 402, 4, 8, 4, 35, 36, 37, 38, + 118, 119, 482, 4, 191, 485, 470, 485, 20, 21, + 8, 3, 8, 4, 482, 4, 496, 3, 482, 4, + 8, 485, 4, 3, 8, 4, 506, 4, 496, 482, + 506, 511, 496, 4, 482, 511, 4, 485, 4, 4, + 4, 482, 506, 191, 482, 482, 470, 511, 496, 4, + 4, 531, 4, 4, 4, 4, 511, 4, 482, 4, + 194, 485, 511, 194, 533, 194, 4, 531, 482, 482, + 482, 4, 496, 4, 4, 4, 482, 4, 192, 192, + 482, 192, 506, 496, 192, 194, 191, 511, 482, 192, + 496, 482, 4, 193, 482, 482, 194, 193, 482, 482, + 192, 482, 192, 192, 4, 4, 482, 531, 194, 482, + 4, 194, 482, 482, 482, 194, 482, 482, 4, 4, + 4, 485, 4, 4, 4, 4, 4, 4, 4, 4, + 1127, 4, 192, 4, 544, 545, 546, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 194, 4, 4, 4, 4, 4, 4, 192, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 192, 663, 4, 4, 4, 194, 4, 669, + 194, 194, 4, 4, 194, 664, 4, 4, 192, 4, + 4, 4, 192, 4, 4, 669, 4, 194, 4, 192, + 4, 4, 7, 194, 192, 7, 7, 7, 7, 191, + 7, 191, 191, 703, 704, 7, 706, 5, 191, 191, + 640, 191, 7, 5, 5, 5, 5, 5, 191, 703, + 704, 705, 706, 5, 5, 669, 5, 7, 191, 7, + 7, 7, 662, 26, 27, 28, 29, 30, 7, 191, + 5, 5, 5, 191, 157, 191, 191, 191, 191, 191, + 7, 191, 191, 191, 191, 191, 191, 191, 191, 703, + 704, 705, 706, 191, 57, 58, 59, 60, 61, 62, + 63, 64, 5, 191, 191, 191, 69, 70, 71, 72, + 73, 74, 75, 191, 77, 78, 79, 24, 81, 7, + 7, 7, 7, 7, 7, 7, 7, 191, 7, 92, + 7, 94, 95, 96, 97, 98, 99, 191, 191, 191, + 191, 191, 191, 106, 191, 4, 109, 110, 4, 4, + 4, 4, 4, 4, 117, 4, 4, 4, 4, 3, + 583, 6, 3, 6, 6, 3, 6, 3, 3, 6, + 3, 663, 6, 3, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 191, 3, 6, 4, + 194, 8, 6, 4, 4, 4, 4, 4, 194, 162, + 163, 4, 4, 192, 4, 192, 4, 4, 4, 4, + 3, 3, 6, 4, 192, 4, 192, 192, 192, 192, + 8, 8, 192, 194, 8, 192, 192, 8, 191, 4, + 194, 4, 4, 4, 4, 192, 192, 192, 192, 192, + 5, 7, 4, 4, 4, 4, 411, 192, 464, 192, + 194, 191, 194, 191, 191, 191, 653, 669, 470, 191, + 191, 191, 191, 191, 916, 191, 191, 191, 942, 192, + 191, 191, 194, 943, 192, 192, 946, 191, 191, 949, + 946, 755, 952, 949, 952, 943, 952, 957, 977, 943, + 960, 957, 946, 963, 952, 949, 937, 514, 952, 957, + 943, 965, 960, 957, 949, 943, 960, 977, 957, 952, + 949, 981, 943, 955, 952, 943, 943, 963, 943, 957, + 990, 952, 960, 977, 990, 952, 996, 981, 996, 943, + 945, 482, 946, 987, 954, 949, 990, 972, 952, 943, + 943, 943, 996, 957, 1145, 946, 960, 943, 952, 952, + 952, 943, 951, 948, 957, 949, 952, 960, 996, 943, + 952, 957, 943, 977, 960, 943, 943, 981, 952, 943, + 943, 952, 943, 987, 952, 952, 990, 943, 952, 952, + 943, 952, 996, 943, 943, 943, 952, 943, 943, 952, + 996, 998, 952, 952, 952, 506, 952, 952, 952, 496, + 485, 962, 1150, 726, 706, 987, 981, 960, 668, 958, + 511, 537, 664, 1160, 1180, 1200, -1, -1, -1, 991, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1120, -1, -1, -1, -1, 1125, -1, -1, -1, -1, - 1083, -1, 1125, 1120, -1, 1135, -1, -1, 1125, -1, - -1, -1, -1, 1120, -1, -1, 1120, 1120, 1135, -1, - -1, 1120, -1, -1, -1, -1, 1125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1135, -1, -1, -1, - 1120, -1, -1, -1, -1, 1125, -1, -1, -1, -1, - -1, -1, -1, 1120, -1, 1135, -1, -1, 1125, 1120, - 1120, -1, -1, -1, -1, 1125, 1120, -1, -1, -1, - -1, 1125, 1120, -1, -1, -1, 1120, 1125, 1120, -1, - -1, -1, -1, -1, 1120, -1, -1, -1, -1, -1, - 1120, 1120, -1, -1, 1120, 1120, 1120, 1120, 1120, -1, - -1, -1, 1120, -1, -1, -1, -1, -1, 1120, 1120, - 1120, -1, 1120, 1120, 1120, 1120 + -1, 531, -1, -1, 533, -1, -1, -1, -1, -1, + -1, -1, 996, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1145, -1, 1145, -1, 1145, + 1150, -1, -1, -1, 1150, -1, -1, 1145, -1, -1, + 1160, 1145, 1150, -1, 1160, -1, 1150, -1, -1, -1, + -1, 1150, 1145, -1, -1, -1, 1160, 1145, 1108, -1, + -1, -1, 1150, -1, 1145, -1, -1, -1, 1145, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1145, -1, -1, -1, -1, 1150, -1, -1, -1, + -1, 1145, 1145, 1145, -1, -1, 1160, 1150, -1, 1145, + -1, -1, -1, 1145, 1150, -1, -1, -1, -1, -1, + -1, 1145, -1, -1, 1145, -1, -1, 1145, 1145, -1, + -1, 1145, 1145, -1, 1145, -1, -1, -1, -1, 1145, + -1, -1, 1145, -1, -1, 1145, 1145, 1145, -1, 1145, + 1145, 1145, 26, 27, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 57, 58, 59, 60, 61, 62, 63, + 64, -1, -1, -1, -1, 69, 70, 71, 72, 73, + 74, 75, 76, -1, -1, -1, -1, 81, 82, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 94, 95, -1, 97, -1, 99, -1, -1, -1, -1, + -1, -1, 106, -1, -1, 109, -1, -1, -1, -1, + -1, -1, -1, 117, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 162, 163, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 191 }; - const short + const unsigned short int Dhcp4Parser::yystos_[] = { - 0, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 0, 5, 7, 9, 187, 188, 189, 190, 207, 208, - 209, 214, 7, 223, 7, 229, 7, 268, 7, 366, - 7, 446, 7, 462, 7, 398, 7, 404, 7, 428, - 7, 342, 7, 527, 7, 573, 7, 564, 215, 210, - 224, 230, 269, 367, 447, 463, 399, 405, 429, 343, - 528, 574, 565, 207, 216, 217, 187, 212, 213, 10, - 160, 170, 171, 172, 187, 222, 225, 226, 227, 556, - 558, 560, 571, 11, 14, 23, 25, 26, 27, 28, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 0, 5, 7, 9, 191, 192, 193, 194, 211, 212, + 213, 218, 7, 227, 7, 233, 7, 272, 7, 377, + 7, 457, 7, 473, 7, 409, 7, 415, 7, 439, + 7, 353, 7, 538, 7, 584, 7, 575, 219, 214, + 228, 234, 273, 378, 458, 474, 410, 416, 440, 354, + 539, 585, 576, 211, 220, 221, 191, 216, 217, 10, + 164, 174, 175, 176, 191, 226, 229, 230, 231, 567, + 569, 571, 582, 11, 14, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 80, 81, 91, 94, 95, - 99, 104, 105, 110, 120, 123, 130, 131, 134, 138, - 158, 159, 161, 222, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, - 248, 249, 250, 253, 255, 257, 259, 261, 262, 263, - 264, 279, 281, 287, 289, 327, 336, 350, 360, 384, - 388, 396, 422, 452, 454, 456, 467, 469, 471, 494, - 506, 507, 515, 525, 562, 577, 15, 16, 19, 22, - 222, 266, 267, 270, 272, 275, 278, 452, 454, 77, - 78, 79, 92, 96, 97, 98, 106, 109, 117, 222, - 233, 234, 235, 236, 237, 238, 239, 240, 245, 246, - 247, 248, 249, 250, 253, 255, 257, 259, 261, 368, - 369, 370, 372, 374, 376, 378, 380, 382, 384, 387, - 422, 440, 452, 454, 456, 467, 469, 471, 491, 93, - 222, 380, 382, 422, 448, 449, 450, 452, 454, 105, - 111, 112, 113, 114, 115, 116, 118, 222, 422, 452, - 454, 464, 465, 466, 467, 469, 471, 473, 477, 479, - 481, 483, 485, 487, 489, 396, 34, 82, 84, 85, - 88, 89, 90, 222, 307, 406, 407, 408, 409, 410, - 411, 412, 414, 416, 418, 419, 421, 452, 454, 83, - 86, 87, 222, 307, 410, 416, 430, 431, 432, 433, - 434, 436, 437, 438, 439, 452, 454, 121, 122, 222, - 344, 345, 346, 348, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 158, 159, 222, - 452, 454, 529, 530, 531, 532, 534, 535, 537, 538, - 539, 542, 544, 546, 547, 548, 550, 552, 554, 575, - 576, 577, 12, 13, 566, 567, 568, 570, 6, 3, - 4, 8, 3, 228, 572, 557, 559, 561, 4, 3, - 8, 563, 265, 282, 4, 4, 4, 468, 470, 472, - 280, 288, 290, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 243, 4, 4, 4, 4, 4, 251, 254, - 256, 4, 361, 397, 423, 389, 453, 455, 385, 328, - 495, 457, 337, 351, 4, 508, 516, 526, 258, 260, - 578, 3, 8, 271, 273, 276, 4, 3, 8, 373, - 375, 377, 441, 371, 379, 4, 383, 381, 492, 3, - 8, 451, 3, 8, 490, 478, 480, 484, 482, 488, - 486, 474, 8, 3, 8, 413, 308, 4, 417, 415, - 420, 4, 8, 3, 435, 4, 4, 8, 3, 347, - 349, 3, 8, 4, 545, 533, 4, 536, 4, 4, - 540, 543, 4, 4, 549, 551, 553, 555, 3, 8, - 3, 8, 569, 4, 3, 8, 207, 207, 187, 4, - 4, 4, 4, 4, 226, 4, 4, 4, 190, 190, - 190, 4, 4, 4, 4, 4, 4, 188, 188, 188, - 188, 188, 190, 189, 189, 188, 4, 188, 188, 190, - 190, 190, 4, 4, 4, 190, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 188, 4, - 4, 4, 4, 4, 4, 232, 4, 4, 4, 190, - 267, 4, 4, 4, 4, 4, 4, 188, 4, 4, - 4, 369, 4, 449, 4, 4, 4, 4, 4, 4, - 4, 4, 466, 4, 4, 188, 4, 4, 4, 190, - 408, 4, 190, 190, 432, 4, 4, 345, 190, 4, - 4, 188, 4, 188, 188, 4, 4, 190, 190, 4, - 4, 4, 4, 530, 576, 4, 188, 567, 4, 7, - 7, 207, 207, 207, 7, 7, 7, 187, 187, 187, - 7, 7, 5, 187, 154, 155, 156, 157, 190, 252, - 187, 187, 5, 5, 5, 5, 209, 211, 187, 100, - 101, 102, 103, 386, 5, 5, 5, 5, 7, 7, - 7, 7, 187, 187, 5, 5, 218, 17, 18, 274, - 20, 21, 277, 187, 187, 187, 5, 187, 187, 218, - 187, 7, 187, 218, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 207, 187, - 187, 187, 18, 152, 541, 153, 252, 187, 187, 187, - 5, 207, 231, 575, 566, 266, 24, 283, 284, 285, - 34, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 222, - 295, 296, 297, 300, 302, 304, 306, 307, 309, 310, - 311, 312, 313, 314, 315, 316, 318, 320, 322, 324, - 325, 326, 295, 7, 291, 292, 293, 7, 362, 363, - 364, 7, 400, 401, 402, 7, 424, 425, 426, 7, - 390, 391, 392, 111, 112, 113, 114, 116, 329, 330, - 331, 332, 333, 334, 335, 7, 496, 497, 7, 458, - 459, 460, 7, 338, 339, 340, 124, 125, 126, 127, - 128, 129, 352, 353, 354, 355, 356, 357, 358, 359, - 132, 133, 222, 452, 454, 509, 510, 511, 513, 135, - 136, 137, 187, 452, 454, 517, 518, 519, 520, 522, - 523, 529, 7, 579, 580, 219, 7, 442, 443, 444, - 119, 473, 475, 493, 291, 8, 8, 8, 8, 286, - 3, 8, 298, 301, 303, 305, 4, 4, 4, 4, - 4, 317, 319, 321, 323, 4, 4, 4, 4, 4, - 4, 3, 8, 8, 294, 6, 3, 365, 6, 3, - 403, 6, 3, 427, 6, 3, 393, 6, 3, 3, - 6, 498, 3, 6, 461, 6, 3, 341, 6, 3, - 4, 4, 4, 4, 4, 4, 3, 8, 512, 514, - 3, 8, 4, 521, 4, 524, 3, 8, 8, 581, - 3, 6, 187, 220, 221, 445, 6, 3, 476, 8, - 6, 4, 284, 4, 4, 4, 4, 188, 190, 188, - 190, 188, 4, 4, 4, 4, 188, 188, 188, 188, - 190, 188, 296, 295, 293, 368, 364, 406, 402, 430, - 426, 222, 233, 234, 235, 236, 237, 238, 239, 240, - 245, 246, 247, 248, 249, 250, 253, 255, 257, 259, - 261, 307, 360, 378, 380, 382, 384, 394, 395, 422, - 452, 454, 467, 469, 471, 491, 392, 330, 107, 108, - 222, 307, 396, 422, 452, 454, 467, 469, 471, 499, - 500, 501, 502, 503, 505, 497, 464, 460, 344, 340, - 188, 188, 188, 188, 188, 188, 353, 4, 4, 510, - 190, 4, 188, 4, 518, 162, 164, 165, 222, 307, - 452, 454, 582, 583, 584, 585, 587, 580, 6, 3, - 448, 444, 4, 187, 35, 36, 37, 38, 299, 187, - 187, 187, 187, 187, 187, 187, 8, 8, 8, 8, - 3, 8, 504, 4, 8, 3, 8, 8, 187, 187, - 187, 207, 588, 4, 586, 3, 8, 187, 8, 218, - 395, 4, 190, 501, 4, 188, 4, 583, 187, 5, - 187, 7, 589, 590, 591, 3, 6, 163, 166, 167, - 168, 169, 592, 593, 594, 596, 597, 598, 599, 590, - 595, 4, 4, 4, 600, 3, 8, 4, 190, 188, - 188, 4, 593, 187, 187 + 99, 104, 105, 110, 120, 123, 130, 131, 135, 138, + 142, 162, 163, 165, 226, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, + 251, 252, 253, 254, 257, 259, 261, 263, 265, 266, + 267, 268, 283, 285, 291, 293, 331, 340, 347, 361, + 371, 395, 399, 407, 433, 463, 465, 467, 478, 480, + 482, 505, 517, 518, 526, 536, 573, 588, 15, 16, + 19, 22, 226, 270, 271, 274, 276, 279, 282, 463, + 465, 77, 78, 79, 92, 96, 97, 98, 106, 109, + 117, 226, 237, 238, 239, 240, 241, 242, 243, 244, + 249, 250, 251, 252, 253, 254, 257, 259, 261, 263, + 265, 379, 380, 381, 383, 385, 387, 389, 391, 393, + 395, 398, 433, 451, 463, 465, 467, 478, 480, 482, + 502, 93, 226, 391, 393, 433, 459, 460, 461, 463, + 465, 105, 111, 112, 113, 114, 115, 116, 118, 226, + 433, 463, 465, 475, 476, 477, 478, 480, 482, 484, + 488, 490, 492, 494, 496, 498, 500, 407, 34, 82, + 84, 85, 88, 89, 90, 226, 311, 417, 418, 419, + 420, 421, 422, 423, 425, 427, 429, 430, 432, 463, + 465, 83, 86, 87, 226, 311, 421, 427, 441, 442, + 443, 444, 445, 447, 448, 449, 450, 463, 465, 121, + 122, 226, 355, 356, 357, 359, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 162, + 163, 226, 463, 465, 540, 541, 542, 543, 545, 546, + 548, 549, 550, 553, 555, 557, 558, 559, 561, 563, + 565, 586, 587, 588, 12, 13, 577, 578, 579, 581, + 6, 3, 4, 8, 3, 232, 583, 568, 570, 572, + 4, 3, 8, 574, 269, 286, 4, 4, 4, 479, + 481, 483, 284, 292, 294, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 247, 4, 4, 4, 4, 4, + 255, 258, 260, 4, 372, 408, 434, 400, 464, 466, + 396, 332, 506, 468, 348, 362, 4, 341, 519, 527, + 537, 262, 264, 589, 3, 8, 275, 277, 280, 4, + 3, 8, 384, 386, 388, 452, 382, 390, 4, 394, + 392, 503, 3, 8, 462, 3, 8, 501, 489, 491, + 495, 493, 499, 497, 485, 8, 3, 8, 424, 312, + 4, 428, 426, 431, 4, 8, 3, 446, 4, 4, + 8, 3, 358, 360, 3, 8, 4, 556, 544, 4, + 547, 4, 4, 551, 554, 4, 4, 560, 562, 564, + 566, 3, 8, 3, 8, 580, 4, 3, 8, 211, + 211, 191, 4, 4, 4, 4, 4, 230, 4, 4, + 4, 194, 194, 194, 4, 4, 4, 4, 4, 4, + 192, 192, 192, 192, 192, 194, 193, 193, 192, 4, + 192, 192, 194, 194, 194, 4, 4, 4, 194, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 192, 4, 4, 4, 4, 4, 4, 4, 236, + 4, 4, 4, 194, 271, 4, 4, 4, 4, 4, + 4, 192, 4, 4, 4, 380, 4, 460, 4, 4, + 4, 4, 4, 4, 4, 4, 477, 4, 4, 192, + 4, 4, 4, 194, 419, 4, 194, 194, 443, 4, + 4, 356, 194, 4, 4, 192, 4, 192, 192, 4, + 4, 194, 194, 4, 4, 4, 4, 541, 587, 4, + 192, 578, 4, 7, 7, 211, 211, 211, 7, 7, + 7, 191, 191, 191, 7, 7, 5, 191, 158, 159, + 160, 161, 194, 256, 191, 191, 5, 5, 5, 5, + 213, 215, 191, 100, 101, 102, 103, 397, 5, 5, + 5, 5, 7, 7, 7, 7, 7, 191, 191, 5, + 5, 222, 17, 18, 278, 20, 21, 281, 191, 191, + 191, 5, 191, 191, 222, 191, 7, 191, 222, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 211, 191, 191, 191, 18, 156, 552, + 157, 256, 191, 191, 191, 5, 211, 235, 586, 577, + 270, 24, 287, 288, 289, 34, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 226, 299, 300, 301, 304, 306, + 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, + 320, 322, 324, 326, 328, 329, 330, 299, 7, 295, + 296, 297, 7, 373, 374, 375, 7, 411, 412, 413, + 7, 435, 436, 437, 7, 401, 402, 403, 111, 112, + 113, 114, 116, 333, 334, 335, 336, 337, 338, 339, + 7, 507, 508, 7, 469, 470, 471, 7, 349, 350, + 351, 124, 125, 126, 127, 128, 129, 363, 364, 365, + 366, 367, 368, 369, 370, 132, 133, 134, 226, 342, + 343, 344, 345, 346, 463, 465, 136, 137, 226, 463, + 465, 520, 521, 522, 524, 139, 140, 141, 191, 463, + 465, 528, 529, 530, 531, 533, 534, 540, 7, 590, + 591, 223, 7, 453, 454, 455, 119, 484, 486, 504, + 295, 8, 8, 8, 8, 290, 3, 8, 302, 305, + 307, 309, 4, 4, 4, 4, 4, 321, 323, 325, + 327, 4, 4, 4, 4, 4, 4, 3, 8, 8, + 298, 6, 3, 376, 6, 3, 414, 6, 3, 438, + 6, 3, 404, 6, 3, 3, 6, 509, 3, 6, + 472, 6, 3, 352, 6, 3, 4, 4, 4, 4, + 4, 4, 3, 8, 4, 4, 4, 3, 8, 523, + 525, 3, 8, 4, 532, 4, 535, 3, 8, 8, + 592, 3, 6, 191, 224, 225, 456, 6, 3, 487, + 8, 6, 4, 288, 4, 4, 4, 4, 192, 194, + 192, 194, 192, 4, 4, 4, 4, 192, 192, 192, + 192, 194, 192, 300, 299, 297, 379, 375, 417, 413, + 441, 437, 226, 237, 238, 239, 240, 241, 242, 243, + 244, 249, 250, 251, 252, 253, 254, 257, 259, 261, + 263, 265, 311, 371, 389, 391, 393, 395, 405, 406, + 433, 463, 465, 478, 480, 482, 502, 403, 334, 107, + 108, 226, 311, 407, 433, 463, 465, 478, 480, 482, + 510, 511, 512, 513, 514, 516, 508, 475, 471, 355, + 351, 192, 192, 192, 192, 192, 192, 364, 194, 192, + 192, 343, 4, 4, 521, 194, 4, 192, 4, 529, + 166, 168, 169, 226, 311, 463, 465, 593, 594, 595, + 596, 598, 591, 6, 3, 459, 455, 4, 191, 35, + 36, 37, 38, 303, 191, 191, 191, 191, 191, 191, + 191, 8, 8, 8, 8, 3, 8, 515, 4, 8, + 3, 8, 8, 191, 191, 191, 211, 599, 4, 597, + 3, 8, 191, 8, 222, 406, 4, 194, 512, 4, + 192, 4, 594, 191, 5, 191, 7, 600, 601, 602, + 3, 6, 167, 170, 171, 172, 173, 603, 604, 605, + 607, 608, 609, 610, 601, 606, 4, 4, 4, 611, + 3, 8, 4, 194, 192, 192, 4, 604, 191, 191 }; - const short + const unsigned short int Dhcp4Parser::yyr1_[] = { - 0, 191, 193, 192, 194, 192, 195, 192, 196, 192, - 197, 192, 198, 192, 199, 192, 200, 192, 201, 192, - 202, 192, 203, 192, 204, 192, 205, 192, 206, 192, - 207, 207, 207, 207, 207, 207, 207, 208, 210, 209, - 211, 212, 212, 213, 213, 215, 214, 216, 216, 217, - 217, 219, 218, 220, 220, 221, 221, 222, 224, 223, - 225, 225, 226, 226, 226, 226, 226, 226, 228, 227, - 230, 229, 231, 231, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 243, 242, 244, 245, 246, 247, - 248, 249, 251, 250, 252, 252, 252, 252, 252, 254, - 253, 256, 255, 258, 257, 260, 259, 261, 262, 263, - 265, 264, 266, 266, 267, 267, 267, 267, 267, 267, - 267, 269, 268, 271, 270, 273, 272, 274, 274, 276, - 275, 277, 277, 278, 280, 279, 282, 281, 283, 283, - 284, 286, 285, 288, 287, 290, 289, 291, 291, 292, - 292, 294, 293, 295, 295, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 298, 297, 299, 299, - 299, 299, 301, 300, 303, 302, 305, 304, 306, 308, - 307, 309, 310, 311, 312, 313, 314, 315, 317, 316, - 319, 318, 321, 320, 323, 322, 324, 325, 326, 328, - 327, 329, 329, 330, 330, 330, 330, 330, 331, 332, - 333, 334, 335, 337, 336, 338, 338, 339, 339, 341, - 340, 343, 342, 344, 344, 344, 345, 345, 347, 346, - 349, 348, 351, 350, 352, 352, 353, 353, 353, 353, - 353, 353, 354, 355, 356, 357, 358, 359, 361, 360, - 362, 362, 363, 363, 365, 364, 367, 366, 368, 368, - 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 371, 370, - 373, 372, 375, 374, 377, 376, 379, 378, 381, 380, - 383, 382, 385, 384, 386, 386, 386, 386, 387, 389, - 388, 390, 390, 391, 391, 393, 392, 394, 394, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 397, 396, 399, 398, 400, 400, 401, 401, - 403, 402, 405, 404, 406, 406, 407, 407, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 408, 409, 410, - 411, 413, 412, 415, 414, 417, 416, 418, 420, 419, - 421, 423, 422, 424, 424, 425, 425, 427, 426, 429, - 428, 430, 430, 431, 431, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 433, 435, 434, 436, 437, 438, - 439, 441, 440, 442, 442, 443, 443, 445, 444, 447, - 446, 448, 448, 449, 449, 449, 449, 449, 449, 449, - 451, 450, 453, 452, 455, 454, 457, 456, 458, 458, - 459, 459, 461, 460, 463, 462, 464, 464, 465, 465, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 468, 467, 470, 469, 472, - 471, 474, 473, 476, 475, 478, 477, 480, 479, 482, - 481, 484, 483, 486, 485, 488, 487, 490, 489, 492, - 491, 493, 493, 495, 494, 496, 496, 498, 497, 499, - 499, 500, 500, 501, 501, 501, 501, 501, 501, 501, - 501, 501, 501, 501, 502, 504, 503, 505, 506, 508, - 507, 509, 509, 510, 510, 510, 510, 510, 512, 511, - 514, 513, 516, 515, 517, 517, 518, 518, 518, 518, - 518, 518, 519, 521, 520, 522, 524, 523, 526, 525, - 528, 527, 529, 529, 530, 530, 530, 530, 530, 530, - 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, - 530, 530, 531, 533, 532, 534, 536, 535, 537, 538, - 540, 539, 541, 541, 543, 542, 545, 544, 546, 547, - 549, 548, 551, 550, 553, 552, 555, 554, 557, 556, - 559, 558, 561, 560, 563, 562, 565, 564, 566, 566, - 567, 567, 569, 568, 570, 572, 571, 574, 573, 575, - 575, 576, 578, 577, 579, 579, 581, 580, 582, 582, - 583, 583, 583, 583, 583, 583, 583, 584, 586, 585, - 588, 587, 589, 589, 591, 590, 592, 592, 593, 593, - 593, 593, 593, 595, 594, 596, 597, 598, 600, 599 + 0, 195, 197, 196, 198, 196, 199, 196, 200, 196, + 201, 196, 202, 196, 203, 196, 204, 196, 205, 196, + 206, 196, 207, 196, 208, 196, 209, 196, 210, 196, + 211, 211, 211, 211, 211, 211, 211, 212, 214, 213, + 215, 216, 216, 217, 217, 219, 218, 220, 220, 221, + 221, 223, 222, 224, 224, 225, 225, 226, 228, 227, + 229, 229, 230, 230, 230, 230, 230, 230, 232, 231, + 234, 233, 235, 235, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 247, 246, 248, 249, 250, + 251, 252, 253, 255, 254, 256, 256, 256, 256, 256, + 258, 257, 260, 259, 262, 261, 264, 263, 265, 266, + 267, 269, 268, 270, 270, 271, 271, 271, 271, 271, + 271, 271, 273, 272, 275, 274, 277, 276, 278, 278, + 280, 279, 281, 281, 282, 284, 283, 286, 285, 287, + 287, 288, 290, 289, 292, 291, 294, 293, 295, 295, + 296, 296, 298, 297, 299, 299, 300, 300, 300, 300, + 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, + 300, 300, 300, 300, 300, 300, 300, 302, 301, 303, + 303, 303, 303, 305, 304, 307, 306, 309, 308, 310, + 312, 311, 313, 314, 315, 316, 317, 318, 319, 321, + 320, 323, 322, 325, 324, 327, 326, 328, 329, 330, + 332, 331, 333, 333, 334, 334, 334, 334, 334, 335, + 336, 337, 338, 339, 341, 340, 342, 342, 343, 343, + 343, 343, 343, 343, 344, 345, 346, 348, 347, 349, + 349, 350, 350, 352, 351, 354, 353, 355, 355, 355, + 356, 356, 358, 357, 360, 359, 362, 361, 363, 363, + 364, 364, 364, 364, 364, 364, 365, 366, 367, 368, + 369, 370, 372, 371, 373, 373, 374, 374, 376, 375, + 378, 377, 379, 379, 380, 380, 380, 380, 380, 380, + 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, + 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, + 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, + 380, 380, 382, 381, 384, 383, 386, 385, 388, 387, + 390, 389, 392, 391, 394, 393, 396, 395, 397, 397, + 397, 397, 398, 400, 399, 401, 401, 402, 402, 404, + 403, 405, 405, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 408, 407, 410, 409, + 411, 411, 412, 412, 414, 413, 416, 415, 417, 417, + 418, 418, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, 420, 421, 422, 424, 423, 426, 425, 428, + 427, 429, 431, 430, 432, 434, 433, 435, 435, 436, + 436, 438, 437, 440, 439, 441, 441, 442, 442, 443, + 443, 443, 443, 443, 443, 443, 443, 443, 444, 446, + 445, 447, 448, 449, 450, 452, 451, 453, 453, 454, + 454, 456, 455, 458, 457, 459, 459, 460, 460, 460, + 460, 460, 460, 460, 462, 461, 464, 463, 466, 465, + 468, 467, 469, 469, 470, 470, 472, 471, 474, 473, + 475, 475, 476, 476, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 479, + 478, 481, 480, 483, 482, 485, 484, 487, 486, 489, + 488, 491, 490, 493, 492, 495, 494, 497, 496, 499, + 498, 501, 500, 503, 502, 504, 504, 506, 505, 507, + 507, 509, 508, 510, 510, 511, 511, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 512, 512, 513, 515, + 514, 516, 517, 519, 518, 520, 520, 521, 521, 521, + 521, 521, 523, 522, 525, 524, 527, 526, 528, 528, + 529, 529, 529, 529, 529, 529, 530, 532, 531, 533, + 535, 534, 537, 536, 539, 538, 540, 540, 541, 541, + 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, + 541, 541, 541, 541, 541, 541, 542, 544, 543, 545, + 547, 546, 548, 549, 551, 550, 552, 552, 554, 553, + 556, 555, 557, 558, 560, 559, 562, 561, 564, 563, + 566, 565, 568, 567, 570, 569, 572, 571, 574, 573, + 576, 575, 577, 577, 578, 578, 580, 579, 581, 583, + 582, 585, 584, 586, 586, 587, 589, 588, 590, 590, + 592, 591, 593, 593, 594, 594, 594, 594, 594, 594, + 594, 595, 597, 596, 599, 598, 600, 600, 602, 601, + 603, 603, 604, 604, 604, 604, 604, 606, 605, 607, + 608, 609, 611, 610 }; - const signed char + const unsigned char Dhcp4Parser::yyr2_[] = { 0, 2, 0, 3, 0, 3, 0, 3, 0, 3, @@ -5078,68 +5066,70 @@ namespace isc { namespace dhcp { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 0, 4, 3, 3, 3, 3, - 3, 3, 0, 4, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 0, 4, 3, 3, 3, + 3, 3, 3, 0, 4, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 3, 3, + 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 1, 1, + 0, 4, 1, 1, 3, 0, 6, 0, 6, 1, + 3, 1, 0, 4, 0, 6, 0, 6, 0, 1, + 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 3, + 0, 4, 3, 3, 3, 3, 3, 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, 3, 3, 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 1, 1, 0, - 4, 1, 1, 3, 0, 6, 0, 6, 1, 3, - 1, 0, 4, 0, 6, 0, 6, 0, 1, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 3, 0, - 4, 3, 3, 3, 3, 3, 3, 3, 0, 4, - 0, 4, 0, 4, 0, 4, 3, 3, 3, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 1, 3, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, - 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 1, 1, 1, 1, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 6, 0, 4, 0, 1, 1, 3, - 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 0, 4, 0, 4, 0, 4, 1, 0, 4, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 3, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 6, 1, 1, 0, 6, 1, 3, 0, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 3, 3, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 3, 0, 4, 0, 6, + 1, 1, 1, 1, 0, 6, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 3, 0, 4, 3, 3, - 0, 4, 1, 1, 0, 4, 0, 4, 3, 3, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 0, 4, 1, 3, - 1, 1, 0, 6, 3, 0, 6, 0, 4, 1, - 3, 1, 0, 6, 1, 3, 0, 4, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 3, 0, 4, - 0, 6, 1, 3, 0, 4, 1, 3, 1, 1, - 1, 1, 1, 0, 4, 3, 3, 3, 0, 4 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 1, 1, + 1, 1, 3, 0, 6, 0, 1, 1, 3, 0, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, + 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 0, 4, 0, 4, 0, + 4, 1, 0, 4, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 1, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 6, 1, 1, 0, 6, 1, + 3, 0, 4, 0, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 3, 3, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, + 0, 4, 0, 6, 0, 4, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, + 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, + 0, 4, 3, 3, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 0, 4, 1, 3, 1, 1, 0, 6, 3, 0, + 6, 0, 4, 1, 3, 1, 0, 6, 1, 3, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 0, 4, 3, + 3, 3, 0, 4 }; @@ -5189,15 +5179,16 @@ namespace isc { namespace dhcp { "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"", "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"", "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", - "\"dhcp4o6-port\"", "\"control-socket\"", "\"socket-type\"", - "\"socket-name\"", "\"dhcp-queue-control\"", "\"enable-queue\"", - "\"queue-type\"", "\"capacity\"", "\"dhcp-ddns\"", "\"enable-updates\"", - "\"qualifying-suffix\"", "\"server-ip\"", "\"server-port\"", - "\"sender-ip\"", "\"sender-port\"", "\"max-queue-size\"", - "\"ncr-protocol\"", "\"ncr-format\"", "\"override-no-update\"", - "\"override-client-update\"", "\"replace-client-name\"", - "\"generated-prefix\"", "\"tcp\"", "\"JSON\"", "\"when-present\"", - "\"never\"", "\"always\"", "\"when-not-present\"", + "\"dhcp4o6-port\"", "\"multi-threading\"", "\"enable-multi-threading\"", + "\"thread-pool-size\"", "\"packet-queue-size\"", "\"control-socket\"", + "\"socket-type\"", "\"socket-name\"", "\"dhcp-queue-control\"", + "\"enable-queue\"", "\"queue-type\"", "\"capacity\"", "\"dhcp-ddns\"", + "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"", + "\"server-port\"", "\"sender-ip\"", "\"sender-port\"", + "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"", + "\"override-no-update\"", "\"override-client-update\"", + "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"", + "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"", "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"Logging\"", "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", @@ -5240,151 +5231,155 @@ namespace isc { namespace dhcp { "host_reservation_identifiers", "$@47", "host_reservation_identifiers_list", "host_reservation_identifier", "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id", - "hooks_libraries", "$@48", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@49", - "sub_hooks_library", "$@50", "hooks_params", "hooks_param", "library", - "$@51", "parameters", "$@52", "expired_leases_processing", "$@53", + "dhcp_multi_threading", "$@48", "multi_threading_params", + "multi_threading_param", "enable_multi_threading", "thread_pool_size", + "packet_queue_size", "hooks_libraries", "$@49", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@50", + "sub_hooks_library", "$@51", "hooks_params", "hooks_param", "library", + "$@52", "parameters", "$@53", "expired_leases_processing", "$@54", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet4_list", "$@54", - "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@55", - "sub_subnet4", "$@56", "subnet4_params", "subnet4_param", "subnet", - "$@57", "subnet_4o6_interface", "$@58", "subnet_4o6_interface_id", - "$@59", "subnet_4o6_subnet", "$@60", "interface", "$@61", "client_class", - "$@62", "require_client_classes", "$@63", "reservation_mode", "$@64", - "hr_mode", "id", "shared_networks", "$@65", "shared_networks_content", - "shared_networks_list", "shared_network", "$@66", + "unwarned_reclaim_cycles", "subnet4_list", "$@55", + "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@56", + "sub_subnet4", "$@57", "subnet4_params", "subnet4_param", "subnet", + "$@58", "subnet_4o6_interface", "$@59", "subnet_4o6_interface_id", + "$@60", "subnet_4o6_subnet", "$@61", "interface", "$@62", "client_class", + "$@63", "require_client_classes", "$@64", "reservation_mode", "$@65", + "hr_mode", "id", "shared_networks", "$@66", "shared_networks_content", + "shared_networks_list", "shared_network", "$@67", "shared_network_params", "shared_network_param", "option_def_list", - "$@67", "sub_option_def_list", "$@68", "option_def_list_content", - "not_empty_option_def_list", "option_def_entry", "$@69", - "sub_option_def", "$@70", "option_def_params", + "$@68", "sub_option_def_list", "$@69", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@70", + "sub_option_def", "$@71", "option_def_params", "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "$@71", - "option_def_record_types", "$@72", "space", "$@73", "option_def_space", - "option_def_encapsulate", "$@74", "option_def_array", "option_data_list", - "$@75", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@76", "sub_option_data", "$@77", + "code", "option_def_code", "option_def_type", "$@72", + "option_def_record_types", "$@73", "space", "$@74", "option_def_space", + "option_def_encapsulate", "$@75", "option_def_array", "option_data_list", + "$@76", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@77", "sub_option_data", "$@78", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@78", + "option_data_param", "option_data_name", "option_data_data", "$@79", "option_data_code", "option_data_space", "option_data_csv_format", - "option_data_always_send", "pools_list", "$@79", "pools_list_content", - "not_empty_pools_list", "pool_list_entry", "$@80", "sub_pool4", "$@81", - "pool_params", "pool_param", "pool_entry", "$@82", "user_context", - "$@83", "comment", "$@84", "reservations", "$@85", "reservations_list", - "not_empty_reservations_list", "reservation", "$@86", "sub_reservation", - "$@87", "reservation_params", "not_empty_reservation_params", - "reservation_param", "next_server", "$@88", "server_hostname", "$@89", - "boot_file_name", "$@90", "ip_address", "$@91", "ip_addresses", "$@92", - "duid", "$@93", "hw_address", "$@94", "client_id_value", "$@95", - "circuit_id_value", "$@96", "flex_id_value", "$@97", "hostname", "$@98", - "reservation_client_classes", "$@99", "relay", "$@100", "relay_map", - "client_classes", "$@101", "client_classes_list", "client_class_entry", - "$@102", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@103", - "only_if_required", "dhcp4o6_port", "control_socket", "$@104", + "option_data_always_send", "pools_list", "$@80", "pools_list_content", + "not_empty_pools_list", "pool_list_entry", "$@81", "sub_pool4", "$@82", + "pool_params", "pool_param", "pool_entry", "$@83", "user_context", + "$@84", "comment", "$@85", "reservations", "$@86", "reservations_list", + "not_empty_reservations_list", "reservation", "$@87", "sub_reservation", + "$@88", "reservation_params", "not_empty_reservation_params", + "reservation_param", "next_server", "$@89", "server_hostname", "$@90", + "boot_file_name", "$@91", "ip_address", "$@92", "ip_addresses", "$@93", + "duid", "$@94", "hw_address", "$@95", "client_id_value", "$@96", + "circuit_id_value", "$@97", "flex_id_value", "$@98", "hostname", "$@99", + "reservation_client_classes", "$@100", "relay", "$@101", "relay_map", + "client_classes", "$@102", "client_classes_list", "client_class_entry", + "$@103", "client_class_params", "not_empty_client_class_params", + "client_class_param", "client_class_name", "client_class_test", "$@104", + "only_if_required", "dhcp4o6_port", "control_socket", "$@105", "control_socket_params", "control_socket_param", "control_socket_type", - "$@105", "control_socket_name", "$@106", "dhcp_queue_control", "$@107", + "$@106", "control_socket_name", "$@107", "dhcp_queue_control", "$@108", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@108", "capacity", "arbitrary_map_entry", "$@109", - "dhcp_ddns", "$@110", "sub_dhcp_ddns", "$@111", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@112", "server_port", - "sender_ip", "$@113", "sender_port", "max_queue_size", "ncr_protocol", - "$@114", "ncr_protocol_value", "ncr_format", "$@115", - "dep_qualifying_suffix", "$@116", "dep_override_no_update", - "dep_override_client_update", "dep_replace_client_name", "$@117", - "dep_generated_prefix", "$@118", "dep_hostname_char_set", "$@119", - "dep_hostname_char_replacement", "$@120", "dhcp6_json_object", "$@121", - "dhcpddns_json_object", "$@122", "control_agent_json_object", "$@123", - "config_control", "$@124", "sub_config_control", "$@125", + "queue_type", "$@109", "capacity", "arbitrary_map_entry", "$@110", + "dhcp_ddns", "$@111", "sub_dhcp_ddns", "$@112", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@113", "server_port", + "sender_ip", "$@114", "sender_port", "max_queue_size", "ncr_protocol", + "$@115", "ncr_protocol_value", "ncr_format", "$@116", + "dep_qualifying_suffix", "$@117", "dep_override_no_update", + "dep_override_client_update", "dep_replace_client_name", "$@118", + "dep_generated_prefix", "$@119", "dep_hostname_char_set", "$@120", + "dep_hostname_char_replacement", "$@121", "dhcp6_json_object", "$@122", + "dhcpddns_json_object", "$@123", "control_agent_json_object", "$@124", + "config_control", "$@125", "sub_config_control", "$@126", "config_control_params", "config_control_param", "config_databases", - "$@126", "config_fetch_wait_time", "logging_object", "$@127", - "sub_logging", "$@128", "logging_params", "logging_param", "loggers", - "$@129", "loggers_entries", "logger_entry", "$@130", "logger_params", - "logger_param", "debuglevel", "severity", "$@131", "output_options_list", - "$@132", "output_options_list_content", "output_entry", "$@133", - "output_params_list", "output_params", "output", "$@134", "flush", - "maxsize", "maxver", "pattern", "$@135", YY_NULLPTR + "$@127", "config_fetch_wait_time", "logging_object", "$@128", + "sub_logging", "$@129", "logging_params", "logging_param", "loggers", + "$@130", "loggers_entries", "logger_entry", "$@131", "logger_params", + "logger_param", "debuglevel", "severity", "$@132", "output_options_list", + "$@133", "output_options_list_content", "output_entry", "$@134", + "output_params_list", "output_params", "output", "$@135", "flush", + "maxsize", "maxver", "pattern", "$@136", YY_NULLPTR }; #if PARSER4_DEBUG - const short + const unsigned short int Dhcp4Parser::yyrline_[] = { - 0, 278, 278, 278, 279, 279, 280, 280, 281, 281, - 282, 282, 283, 283, 284, 284, 285, 285, 286, 286, + 0, 283, 283, 283, 284, 284, 285, 285, 286, 286, 287, 287, 288, 288, 289, 289, 290, 290, 291, 291, - 299, 300, 301, 302, 303, 304, 305, 308, 313, 313, - 324, 327, 328, 331, 335, 342, 342, 349, 350, 353, - 357, 364, 364, 371, 372, 375, 379, 390, 400, 400, - 416, 417, 421, 422, 423, 424, 425, 426, 429, 429, - 444, 444, 453, 454, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 512, 517, 522, 527, 532, - 537, 542, 547, 552, 557, 557, 565, 570, 575, 580, - 585, 590, 595, 595, 603, 606, 609, 612, 615, 621, - 621, 629, 629, 637, 637, 645, 645, 653, 658, 663, - 668, 668, 679, 680, 683, 684, 685, 686, 687, 688, - 689, 692, 692, 701, 701, 711, 711, 718, 719, 722, - 722, 729, 731, 735, 741, 741, 753, 753, 763, 764, - 766, 768, 768, 786, 786, 798, 798, 808, 809, 812, - 813, 816, 816, 826, 827, 830, 831, 832, 833, 834, - 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 853, 853, 860, 861, - 862, 863, 866, 866, 874, 874, 882, 882, 890, 895, - 895, 903, 908, 913, 918, 923, 928, 933, 938, 938, - 946, 946, 954, 954, 962, 962, 970, 975, 980, 986, - 986, 996, 997, 1000, 1001, 1002, 1003, 1004, 1007, 1012, - 1017, 1022, 1027, 1032, 1032, 1042, 1043, 1046, 1047, 1050, - 1050, 1060, 1060, 1070, 1071, 1072, 1075, 1076, 1079, 1079, - 1087, 1087, 1095, 1095, 1106, 1107, 1110, 1111, 1112, 1113, - 1114, 1115, 1118, 1123, 1128, 1133, 1138, 1143, 1151, 1151, - 1164, 1165, 1168, 1169, 1176, 1176, 1202, 1202, 1213, 1214, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1258, 1258, - 1266, 1266, 1274, 1274, 1282, 1282, 1290, 1290, 1298, 1298, - 1306, 1306, 1316, 1316, 1323, 1324, 1325, 1326, 1329, 1336, - 1336, 1347, 1348, 1352, 1353, 1356, 1356, 1364, 1365, 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, 1407, 1407, 1420, 1420, 1429, 1430, 1433, 1434, - 1439, 1439, 1454, 1454, 1468, 1469, 1472, 1473, 1476, 1477, - 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1488, 1490, - 1495, 1497, 1497, 1505, 1505, 1513, 1513, 1521, 1523, 1523, - 1531, 1540, 1540, 1552, 1553, 1558, 1559, 1564, 1564, 1576, - 1576, 1588, 1589, 1594, 1595, 1600, 1601, 1602, 1603, 1604, - 1605, 1606, 1607, 1608, 1611, 1613, 1613, 1621, 1623, 1625, - 1630, 1638, 1638, 1650, 1651, 1654, 1655, 1658, 1658, 1668, - 1668, 1678, 1679, 1682, 1683, 1684, 1685, 1686, 1687, 1688, - 1691, 1691, 1699, 1699, 1724, 1724, 1754, 1754, 1764, 1765, - 1768, 1769, 1772, 1772, 1781, 1781, 1790, 1791, 1794, 1795, - 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, - 1809, 1810, 1811, 1812, 1813, 1816, 1816, 1824, 1824, 1832, - 1832, 1840, 1840, 1848, 1848, 1858, 1858, 1866, 1866, 1874, - 1874, 1882, 1882, 1890, 1890, 1898, 1898, 1906, 1906, 1919, - 1919, 1929, 1930, 1936, 1936, 1946, 1947, 1950, 1950, 1960, - 1961, 1964, 1965, 1968, 1969, 1970, 1971, 1972, 1973, 1974, - 1975, 1976, 1977, 1978, 1981, 1983, 1983, 1991, 2000, 2007, - 2007, 2017, 2018, 2021, 2022, 2023, 2024, 2025, 2028, 2028, - 2036, 2036, 2047, 2047, 2059, 2060, 2063, 2064, 2065, 2066, - 2067, 2068, 2071, 2076, 2076, 2084, 2089, 2089, 2098, 2098, - 2110, 2110, 2120, 2121, 2124, 2125, 2126, 2127, 2128, 2129, - 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, - 2140, 2141, 2144, 2149, 2149, 2157, 2162, 2162, 2170, 2175, - 2180, 2180, 2188, 2189, 2192, 2192, 2201, 2201, 2210, 2216, - 2222, 2222, 2230, 2230, 2239, 2239, 2248, 2248, 2259, 2259, - 2266, 2266, 2273, 2273, 2280, 2280, 2291, 2291, 2301, 2302, - 2306, 2307, 2310, 2310, 2320, 2330, 2330, 2340, 2340, 2351, - 2352, 2356, 2360, 2360, 2372, 2373, 2377, 2377, 2385, 2386, - 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2398, 2403, 2403, - 2411, 2411, 2421, 2422, 2425, 2425, 2433, 2434, 2437, 2438, - 2439, 2440, 2441, 2444, 2444, 2452, 2457, 2462, 2467, 2467 + 292, 292, 293, 293, 294, 294, 295, 295, 296, 296, + 304, 305, 306, 307, 308, 309, 310, 313, 318, 318, + 329, 332, 333, 336, 340, 347, 347, 354, 355, 358, + 362, 369, 369, 376, 377, 380, 384, 395, 405, 405, + 421, 422, 426, 427, 428, 429, 430, 431, 434, 434, + 449, 449, 458, 459, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 518, 523, 528, 533, + 538, 543, 548, 553, 558, 563, 563, 571, 576, 581, + 586, 591, 596, 601, 601, 609, 612, 615, 618, 621, + 627, 627, 635, 635, 643, 643, 651, 651, 659, 664, + 669, 674, 674, 685, 686, 689, 690, 691, 692, 693, + 694, 695, 698, 698, 707, 707, 717, 717, 724, 725, + 728, 728, 735, 737, 741, 747, 747, 759, 759, 769, + 770, 772, 774, 774, 792, 792, 804, 804, 814, 815, + 818, 819, 822, 822, 832, 833, 836, 837, 838, 839, + 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, + 850, 851, 852, 853, 854, 855, 856, 859, 859, 866, + 867, 868, 869, 872, 872, 880, 880, 888, 888, 896, + 901, 901, 909, 914, 919, 924, 929, 934, 939, 944, + 944, 952, 952, 960, 960, 968, 968, 976, 981, 986, + 992, 992, 1002, 1003, 1006, 1007, 1008, 1009, 1010, 1013, + 1018, 1023, 1028, 1033, 1040, 1040, 1052, 1053, 1056, 1057, + 1058, 1059, 1060, 1061, 1064, 1069, 1074, 1079, 1079, 1089, + 1090, 1093, 1094, 1097, 1097, 1107, 1107, 1117, 1118, 1119, + 1122, 1123, 1126, 1126, 1134, 1134, 1142, 1142, 1153, 1154, + 1157, 1158, 1159, 1160, 1161, 1162, 1165, 1170, 1175, 1180, + 1185, 1190, 1198, 1198, 1211, 1212, 1215, 1216, 1223, 1223, + 1249, 1249, 1260, 1261, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, + 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, + 1301, 1302, 1305, 1305, 1313, 1313, 1321, 1321, 1329, 1329, + 1337, 1337, 1345, 1345, 1353, 1353, 1363, 1363, 1370, 1371, + 1372, 1373, 1376, 1383, 1383, 1394, 1395, 1399, 1400, 1403, + 1403, 1411, 1412, 1415, 1416, 1417, 1418, 1419, 1420, 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, 1454, 1454, 1467, 1467, + 1476, 1477, 1480, 1481, 1486, 1486, 1501, 1501, 1515, 1516, + 1519, 1520, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, + 1531, 1532, 1535, 1537, 1542, 1544, 1544, 1552, 1552, 1560, + 1560, 1568, 1570, 1570, 1578, 1587, 1587, 1599, 1600, 1605, + 1606, 1611, 1611, 1623, 1623, 1635, 1636, 1641, 1642, 1647, + 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1658, 1660, + 1660, 1668, 1670, 1672, 1677, 1685, 1685, 1697, 1698, 1701, + 1702, 1705, 1705, 1715, 1715, 1725, 1726, 1729, 1730, 1731, + 1732, 1733, 1734, 1735, 1738, 1738, 1746, 1746, 1771, 1771, + 1801, 1801, 1811, 1812, 1815, 1816, 1819, 1819, 1828, 1828, + 1837, 1838, 1841, 1842, 1846, 1847, 1848, 1849, 1850, 1851, + 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1863, + 1863, 1871, 1871, 1879, 1879, 1887, 1887, 1895, 1895, 1905, + 1905, 1913, 1913, 1921, 1921, 1929, 1929, 1937, 1937, 1945, + 1945, 1953, 1953, 1966, 1966, 1976, 1977, 1983, 1983, 1993, + 1994, 1997, 1997, 2007, 2008, 2011, 2012, 2015, 2016, 2017, + 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2028, 2030, + 2030, 2038, 2045, 2052, 2052, 2062, 2063, 2066, 2067, 2068, + 2069, 2070, 2073, 2073, 2081, 2081, 2092, 2092, 2104, 2105, + 2108, 2109, 2110, 2111, 2112, 2113, 2116, 2121, 2121, 2129, + 2134, 2134, 2143, 2143, 2155, 2155, 2165, 2166, 2169, 2170, + 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, + 2181, 2182, 2183, 2184, 2185, 2186, 2189, 2194, 2194, 2202, + 2207, 2207, 2215, 2220, 2225, 2225, 2233, 2234, 2237, 2237, + 2246, 2246, 2255, 2261, 2267, 2267, 2275, 2275, 2284, 2284, + 2293, 2293, 2304, 2304, 2311, 2311, 2318, 2318, 2327, 2327, + 2338, 2338, 2348, 2349, 2353, 2354, 2357, 2357, 2367, 2377, + 2377, 2387, 2387, 2398, 2399, 2403, 2407, 2407, 2419, 2420, + 2424, 2424, 2432, 2433, 2436, 2437, 2438, 2439, 2440, 2441, + 2442, 2445, 2450, 2450, 2458, 2458, 2468, 2469, 2472, 2472, + 2480, 2481, 2484, 2485, 2486, 2487, 2488, 2491, 2491, 2499, + 2504, 2509, 2514, 2514 }; // Print the state stack on the debug stream. @@ -5396,19 +5391,19 @@ namespace isc { namespace dhcp { i = yystack_.begin (), i_end = yystack_.end (); i != i_end; ++i) - *yycdebug_ << ' ' << int (i->state); - *yycdebug_ << '\n'; + *yycdebug_ << ' ' << i->state; + *yycdebug_ << std::endl; } // Report on the debug stream that the rule \a yyrule is going to be reduced. void Dhcp4Parser::yy_reduce_print_ (int yyrule) { - int yylno = yyrline_[yyrule]; + unsigned int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):\n"; + << " (line " << yylno << "):" << std::endl; // The symbols being reduced. for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", @@ -5417,11 +5412,10 @@ namespace isc { namespace dhcp { #endif // PARSER4_DEBUG -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 5423 "dhcp4_parser.cc" - -#line 2476 "dhcp4_parser.yy" +#line 5418 "dhcp4_parser.cc" // lalr1.cc:1167 +#line 2522 "dhcp4_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index fa160e7188..160f418d3f 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.5.3. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -30,7 +30,6 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. - /** ** \file dhcp4_parser.h ** Define the isc::dhcp::parser class. @@ -38,13 +37,10 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - #ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED # define YY_PARSER4_DHCP4_PARSER_H_INCLUDED -// "%code requires" blocks. -#line 17 "dhcp4_parser.yy" +// // "%code requires" blocks. +#line 17 "dhcp4_parser.yy" // lalr1.cc:377 #include #include @@ -56,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 60 "dhcp4_parser.h" +#line 56 "dhcp4_parser.h" // lalr1.cc:377 # include # include // std::abort @@ -64,64 +60,39 @@ using namespace std; # include # include # include - -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - -// Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_MOVE std::move -# define YY_MOVE_OR_COPY move -# define YY_MOVE_REF(Type) Type&& -# define YY_RVREF(Type) Type&& -# define YY_COPY(Type) Type -#else -# define YY_MOVE -# define YY_MOVE_OR_COPY copy -# define YY_MOVE_REF(Type) Type& -# define YY_RVREF(Type) const Type& -# define YY_COPY(Type) const Type& -#endif - -// Support noexcept when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_NOEXCEPT noexcept -# define YY_NOTHROW -#else -# define YY_NOEXCEPT -# define YY_NOTHROW throw () -#endif - -// Support constexpr when possible. -#if 201703 <= YY_CPLUSPLUS -# define YY_CONSTEXPR constexpr -#else -# define YY_CONSTEXPR -#endif +# include "stack.hh" # include "location.hh" #include -#ifndef YY_ASSERT +#ifndef YYASSERT # include -# define YY_ASSERT assert +# define YYASSERT assert #endif -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else -# define YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + #ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) # else -# define YY_ATTRIBUTE_UNUSED +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif @@ -132,13 +103,13 @@ using namespace std; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -151,39 +122,6 @@ using namespace std; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - /* Debug traces. */ #ifndef PARSER4_DEBUG # if defined YYDEBUG @@ -197,175 +135,120 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER4_DEBUG */ -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // lalr1.cc:377 namespace isc { namespace dhcp { -#line 203 "dhcp4_parser.h" +#line 141 "dhcp4_parser.h" // lalr1.cc:377 - - /// A Bison parser. - class Dhcp4Parser - { - public: -#ifndef PARSER4_STYPE - /// A buffer to store and retrieve objects. + /// A char[S] 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 + /// via the current state. + template + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) + variant () + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template - semantic_type (YY_RVREF (T) t) + variant (const T& t) : yytypeid_ (&typeid (T)) { - YY_ASSERT (sizeof (T) <= size); - new (yyas_ ()) T (YY_MOVE (t)); + YYASSERT (sizeof (T) <= S); + new (yyas_ ()) T (t); } /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~variant () { - YY_ASSERT (!yytypeid_); + YYASSERT (!yytypeid_); } -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template - T& - emplace (U&&... u) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (std::forward (u)...); - } -# else - /// Instantiate an empty \a T in here. - template - T& - emplace () - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (); - } - - /// Instantiate a \a T in here from \a t. - template - T& - emplace (const T& t) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (t); - } -# endif - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. template T& build () { - return emplace (); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); + yytypeid_ = & typeid (T); + return *new (yyas_ ()) T; } /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. template T& build (const T& t) { - return emplace (t); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); + yytypeid_ = & typeid (T); + return *new (yyas_ ()) T (t); } /// Accessor to a built \a T. template T& - as () YY_NOEXCEPT + as () { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } /// Const accessor to a built \a T (for %printer). template const T& - as () const YY_NOEXCEPT + as () const { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } - /// Swap the content with \a that, of same type. + /// Swap the content with \a other, of same type. /// /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsibility. + /// should not be the variant's responsability. /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). + /// variant::move (). template void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as (), that.as ()); + YYASSERT (yytypeid_); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as (), other.as ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. + /// Destroys \a other. template void - move (self_type& that) + move (self_type& other) { -# if 201103L <= YY_CPLUSPLUS - emplace (std::move (that.as ())); -# else - emplace (); - swap (that); -# endif - that.destroy (); + build (); + swap (other); + other.destroy (); } -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. + /// Copy the content of \a other to this. template void - move (self_type&& that) + copy (const self_type& other) { - emplace (std::move (that.as ())); - that.destroy (); - } -#endif - - /// Copy the content of \a that to this. - template - void - copy (const self_type& that) - { - emplace (that.as ()); + build (other.as ()); } /// Destroy the stored \a T. @@ -379,13 +262,13 @@ namespace isc { namespace dhcp { private: /// Prohibit blind copies. - self_type& operator= (const self_type&); - semantic_type (const self_type&); + self_type& operator=(const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast (yyp); @@ -394,12 +277,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast (yyp); } + union + { + /// Strongest alignment constraints. + long double yyalign_me; + /// A buffer large enough to store any of the semantic values. + char yyraw[S]; + } yybuffer_; + + /// Whether the content is built: if defined, the name of the stored type. + const std::type_info *yytypeid_; + }; + + + /// A Bison parser. + class Dhcp4Parser + { + public: +#ifndef PARSER4_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -411,37 +312,23 @@ namespace isc { namespace dhcp { // db_type // hr_mode // ncr_protocol_value - char dummy1[sizeof (ElementPtr)]; + char dummy1[sizeof(ElementPtr)]; // "boolean" - char dummy2[sizeof (bool)]; + char dummy2[sizeof(bool)]; // "floating point" - char dummy3[sizeof (double)]; + char dummy3[sizeof(double)]; // "integer" - char dummy4[sizeof (int64_t)]; + char dummy4[sizeof(int64_t)]; // "constant string" - char dummy5[sizeof (std::string)]; - }; - - /// The size of the largest semantic type. - enum { size = sizeof (union_type) }; - - /// A buffer to store semantic values. - union - { - /// Strongest alignment constraints. - long double yyalign_me; - /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; - - /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; - }; + char dummy5[sizeof(std::string)]; +}; + /// Symbol semantic values. + typedef variant semantic_type; #else typedef PARSER4_STYPE semantic_type; #endif @@ -451,18 +338,7 @@ namespace isc { namespace dhcp { /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - + syntax_error (const location_type& l, const std::string& m); location_type location; }; @@ -600,66 +476,70 @@ namespace isc { namespace dhcp { TOKEN_MAX_RECLAIM_TIME = 383, TOKEN_UNWARNED_RECLAIM_CYCLES = 384, TOKEN_DHCP4O6_PORT = 385, - TOKEN_CONTROL_SOCKET = 386, - TOKEN_SOCKET_TYPE = 387, - TOKEN_SOCKET_NAME = 388, - TOKEN_DHCP_QUEUE_CONTROL = 389, - TOKEN_ENABLE_QUEUE = 390, - TOKEN_QUEUE_TYPE = 391, - TOKEN_CAPACITY = 392, - TOKEN_DHCP_DDNS = 393, - TOKEN_ENABLE_UPDATES = 394, - TOKEN_QUALIFYING_SUFFIX = 395, - TOKEN_SERVER_IP = 396, - TOKEN_SERVER_PORT = 397, - TOKEN_SENDER_IP = 398, - TOKEN_SENDER_PORT = 399, - TOKEN_MAX_QUEUE_SIZE = 400, - TOKEN_NCR_PROTOCOL = 401, - TOKEN_NCR_FORMAT = 402, - TOKEN_OVERRIDE_NO_UPDATE = 403, - TOKEN_OVERRIDE_CLIENT_UPDATE = 404, - TOKEN_REPLACE_CLIENT_NAME = 405, - TOKEN_GENERATED_PREFIX = 406, - TOKEN_TCP = 407, - TOKEN_JSON = 408, - TOKEN_WHEN_PRESENT = 409, - TOKEN_NEVER = 410, - TOKEN_ALWAYS = 411, - TOKEN_WHEN_NOT_PRESENT = 412, - TOKEN_HOSTNAME_CHAR_SET = 413, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 414, - TOKEN_LOGGING = 415, - TOKEN_LOGGERS = 416, - TOKEN_OUTPUT_OPTIONS = 417, - TOKEN_OUTPUT = 418, - TOKEN_DEBUGLEVEL = 419, - TOKEN_SEVERITY = 420, - TOKEN_FLUSH = 421, - TOKEN_MAXSIZE = 422, - TOKEN_MAXVER = 423, - TOKEN_PATTERN = 424, - TOKEN_DHCP6 = 425, - TOKEN_DHCPDDNS = 426, - TOKEN_CONTROL_AGENT = 427, - TOKEN_TOPLEVEL_JSON = 428, - TOKEN_TOPLEVEL_DHCP4 = 429, - TOKEN_SUB_DHCP4 = 430, - TOKEN_SUB_INTERFACES4 = 431, - TOKEN_SUB_SUBNET4 = 432, - TOKEN_SUB_POOL4 = 433, - TOKEN_SUB_RESERVATION = 434, - TOKEN_SUB_OPTION_DEFS = 435, - TOKEN_SUB_OPTION_DEF = 436, - TOKEN_SUB_OPTION_DATA = 437, - TOKEN_SUB_HOOKS_LIBRARY = 438, - TOKEN_SUB_DHCP_DDNS = 439, - TOKEN_SUB_LOGGING = 440, - TOKEN_SUB_CONFIG_CONTROL = 441, - TOKEN_STRING = 442, - TOKEN_INTEGER = 443, - TOKEN_FLOAT = 444, - TOKEN_BOOLEAN = 445 + TOKEN_DHCP_MULTI_THREADING = 386, + TOKEN_ENABLE_MULTI_THREADING = 387, + TOKEN_THREAD_POOL_SIZE = 388, + TOKEN_PACKET_QUEUE_SIZE = 389, + TOKEN_CONTROL_SOCKET = 390, + TOKEN_SOCKET_TYPE = 391, + TOKEN_SOCKET_NAME = 392, + TOKEN_DHCP_QUEUE_CONTROL = 393, + TOKEN_ENABLE_QUEUE = 394, + TOKEN_QUEUE_TYPE = 395, + TOKEN_CAPACITY = 396, + TOKEN_DHCP_DDNS = 397, + TOKEN_ENABLE_UPDATES = 398, + TOKEN_QUALIFYING_SUFFIX = 399, + TOKEN_SERVER_IP = 400, + TOKEN_SERVER_PORT = 401, + TOKEN_SENDER_IP = 402, + TOKEN_SENDER_PORT = 403, + TOKEN_MAX_QUEUE_SIZE = 404, + TOKEN_NCR_PROTOCOL = 405, + TOKEN_NCR_FORMAT = 406, + TOKEN_OVERRIDE_NO_UPDATE = 407, + TOKEN_OVERRIDE_CLIENT_UPDATE = 408, + TOKEN_REPLACE_CLIENT_NAME = 409, + TOKEN_GENERATED_PREFIX = 410, + TOKEN_TCP = 411, + TOKEN_JSON = 412, + TOKEN_WHEN_PRESENT = 413, + TOKEN_NEVER = 414, + TOKEN_ALWAYS = 415, + TOKEN_WHEN_NOT_PRESENT = 416, + TOKEN_HOSTNAME_CHAR_SET = 417, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 418, + TOKEN_LOGGING = 419, + TOKEN_LOGGERS = 420, + TOKEN_OUTPUT_OPTIONS = 421, + TOKEN_OUTPUT = 422, + TOKEN_DEBUGLEVEL = 423, + TOKEN_SEVERITY = 424, + TOKEN_FLUSH = 425, + TOKEN_MAXSIZE = 426, + TOKEN_MAXVER = 427, + TOKEN_PATTERN = 428, + TOKEN_DHCP6 = 429, + TOKEN_DHCPDDNS = 430, + TOKEN_CONTROL_AGENT = 431, + TOKEN_TOPLEVEL_JSON = 432, + TOKEN_TOPLEVEL_DHCP4 = 433, + TOKEN_SUB_DHCP4 = 434, + TOKEN_SUB_INTERFACES4 = 435, + TOKEN_SUB_SUBNET4 = 436, + TOKEN_SUB_POOL4 = 437, + TOKEN_SUB_RESERVATION = 438, + TOKEN_SUB_OPTION_DEFS = 439, + TOKEN_SUB_OPTION_DEF = 440, + TOKEN_SUB_OPTION_DATA = 441, + TOKEN_SUB_HOOKS_LIBRARY = 442, + TOKEN_SUB_DHCP_DDNS = 443, + TOKEN_SUB_LOGGING = 444, + TOKEN_SUB_CONFIG_CONTROL = 445, + TOKEN_STRING = 446, + TOKEN_INTEGER = 447, + TOKEN_FLOAT = 448, + TOKEN_BOOLEAN = 449 }; }; @@ -678,7 +558,7 @@ namespace isc { namespace dhcp { /// A complete symbol. /// /// Expects its Base type to provide access to the symbol type - /// via type_get (). + /// via type_get(). /// /// Provide access to semantic value and location. template @@ -688,155 +568,39 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that); -#endif + basic_symbol (); /// Copy constructor. - basic_symbol (const basic_symbol& that); + basic_symbol (const basic_symbol& other); /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif + + basic_symbol (typename Base::kind_type t, const location_type& l); + + basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const double v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); + + + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + const semantic_type& v, + const location_type& l); /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + ~basic_symbol (); /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. -switch (yytype) - { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; - - case 190: // "boolean" - value.template destroy< bool > (); - break; - - case 189: // "floating point" - value.template destroy< double > (); - break; - - case 188: // "integer" - value.template destroy< int64_t > (); - break; - - case 187: // "constant string" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); - } + void clear (); /// Whether empty. - bool empty () const YY_NOEXCEPT; + bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -848,10 +612,8 @@ switch (yytype) location_type location; private: -#if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); -#endif + basic_symbol& operator= (const basic_symbol& other); }; /// Type access provider for token (enum) based symbols. @@ -860,13 +622,8 @@ switch (yytype) /// Default constructor. by_type (); -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_type (by_type&& that); -#endif - /// Copy constructor. - by_type (const by_type& that); + by_type (const by_type& other); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -882,7 +639,10 @@ switch (yytype) /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const; + + /// The token. + token_type token () const; /// The symbol type. /// \a empty_symbol when empty. @@ -891,90 +651,786 @@ switch (yytype) }; /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol - { - /// Superclass. - typedef basic_symbol super_type; + typedef basic_symbol symbol_type; - /// Empty symbol. - symbol_type () {} + // Symbol constructors declarations. + static inline + symbol_type + make_END (const location_type& l); + + static inline + symbol_type + make_COMMA (const location_type& l); + + static inline + symbol_type + make_COLON (const location_type& l); + + static inline + symbol_type + make_LSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_RSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_LCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_RCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_NULL_TYPE (const location_type& l); + + static inline + symbol_type + make_DHCP4 (const location_type& l); + + static inline + symbol_type + make_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_CONFIG_DATABASES (const location_type& l); + + static inline + symbol_type + make_CONFIG_FETCH_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_INTERFACES_CONFIG (const location_type& l); + + static inline + symbol_type + make_INTERFACES (const location_type& l); + + static inline + symbol_type + make_DHCP_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_RAW (const location_type& l); + + static inline + symbol_type + make_UDP (const location_type& l); + + static inline + symbol_type + make_OUTBOUND_INTERFACE (const location_type& l); + + static inline + symbol_type + make_SAME_AS_INBOUND (const location_type& l); + + static inline + symbol_type + make_USE_ROUTING (const location_type& l); + + static inline + symbol_type + make_RE_DETECT (const location_type& l); + + static inline + symbol_type + make_SANITY_CHECKS (const location_type& l); + + static inline + symbol_type + make_LEASE_CHECKS (const location_type& l); + + static inline + symbol_type + make_ECHO_CLIENT_ID (const location_type& l); + + static inline + symbol_type + make_MATCH_CLIENT_ID (const location_type& l); + + static inline + symbol_type + make_AUTHORITATIVE (const location_type& l); + + static inline + symbol_type + make_NEXT_SERVER (const location_type& l); + + static inline + symbol_type + make_SERVER_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_BOOT_FILE_NAME (const location_type& l); + + static inline + symbol_type + make_LEASE_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASES (const location_type& l); + + static inline + symbol_type + make_TYPE (const location_type& l); + + static inline + symbol_type + make_MEMFILE (const location_type& l); + + static inline + symbol_type + make_MYSQL (const location_type& l); + + static inline + symbol_type + make_POSTGRESQL (const location_type& l); + + static inline + symbol_type + make_CQL (const location_type& l); + + static inline + symbol_type + make_USER (const location_type& l); + + static inline + symbol_type + make_PASSWORD (const location_type& l); + + static inline + symbol_type + make_HOST (const location_type& l); + + static inline + symbol_type + make_PORT (const location_type& l); + + static inline + symbol_type + make_PERSIST (const location_type& l); + + static inline + symbol_type + make_LFC_INTERVAL (const location_type& l); + + static inline + symbol_type + make_READONLY (const location_type& l); + + static inline + symbol_type + make_CONNECT_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + + static inline + symbol_type + make_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_SERIAL_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_MAX_RECONNECT_TRIES (const location_type& l); + + static inline + symbol_type + make_RECONNECT_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_REQUEST_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_TCP_KEEPALIVE (const location_type& l); + + static inline + symbol_type + make_TCP_NODELAY (const location_type& l); + + static inline + symbol_type + make_MAX_ROW_ERRORS (const location_type& l); + + static inline + symbol_type + make_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_RENEW_TIMER (const location_type& l); + + static inline + symbol_type + make_REBIND_TIMER (const location_type& l); + + static inline + symbol_type + make_CALCULATE_TEE_TIMES (const location_type& l); + + static inline + symbol_type + make_T1_PERCENT (const location_type& l); + + static inline + symbol_type + make_T2_PERCENT (const location_type& l); + + static inline + symbol_type + make_DECLINE_PROBATION_PERIOD (const location_type& l); + + static inline + symbol_type + make_SERVER_TAG (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l); + + static inline + symbol_type + make_DDNS_SEND_UPDATES (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_DDNS_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_DDNS_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_STORE_EXTENDED_INFO (const location_type& l); + + static inline + symbol_type + make_SUBNET4 (const location_type& l); + + static inline + symbol_type + make_SUBNET_4O6_INTERFACE (const location_type& l); + + static inline + symbol_type + make_SUBNET_4O6_INTERFACE_ID (const location_type& l); + + static inline + symbol_type + make_SUBNET_4O6_SUBNET (const location_type& l); + + static inline + symbol_type + make_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_NAME (const location_type& l); + + static inline + symbol_type + make_DATA (const location_type& l); + + static inline + symbol_type + make_CODE (const location_type& l); + + static inline + symbol_type + make_SPACE (const location_type& l); + + static inline + symbol_type + make_CSV_FORMAT (const location_type& l); + + static inline + symbol_type + make_ALWAYS_SEND (const location_type& l); + + static inline + symbol_type + make_RECORD_TYPES (const location_type& l); + + static inline + symbol_type + make_ENCAPSULATE (const location_type& l); + + static inline + symbol_type + make_ARRAY (const location_type& l); + + static inline + symbol_type + make_SHARED_NETWORKS (const location_type& l); + + static inline + symbol_type + make_POOLS (const location_type& l); + + static inline + symbol_type + make_POOL (const location_type& l); + + static inline + symbol_type + make_USER_CONTEXT (const location_type& l); + + static inline + symbol_type + make_COMMENT (const location_type& l); + + static inline + symbol_type + make_SUBNET (const location_type& l); + + static inline + symbol_type + make_INTERFACE (const location_type& l); + + static inline + symbol_type + make_ID (const location_type& l); + + static inline + symbol_type + make_RESERVATION_MODE (const location_type& l); + + static inline + symbol_type + make_DISABLED (const location_type& l); + + static inline + symbol_type + make_OUT_OF_POOL (const location_type& l); + + static inline + symbol_type + make_GLOBAL (const location_type& l); + + static inline + symbol_type + make_ALL (const location_type& l); + + static inline + symbol_type + make_HOST_RESERVATION_IDENTIFIERS (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_REQUIRE_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_TEST (const location_type& l); + + static inline + symbol_type + make_ONLY_IF_REQUIRED (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASS (const location_type& l); + + static inline + symbol_type + make_RESERVATIONS (const location_type& l); + + static inline + symbol_type + make_DUID (const location_type& l); + + static inline + symbol_type + make_HW_ADDRESS (const location_type& l); + + static inline + symbol_type + make_CIRCUIT_ID (const location_type& l); + + static inline + symbol_type + make_CLIENT_ID (const location_type& l); + + static inline + symbol_type + make_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_FLEX_ID (const location_type& l); + + static inline + symbol_type + make_RELAY (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESS (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESSES (const location_type& l); + + static inline + symbol_type + make_HOOKS_LIBRARIES (const location_type& l); + + static inline + symbol_type + make_LIBRARY (const location_type& l); + + static inline + symbol_type + make_PARAMETERS (const location_type& l); + + static inline + symbol_type + make_EXPIRED_LEASES_PROCESSING (const location_type& l); + + static inline + symbol_type + make_RECLAIM_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_HOLD_RECLAIMED_TIME (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_LEASES (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_TIME (const location_type& l); + + static inline + symbol_type + make_UNWARNED_RECLAIM_CYCLES (const location_type& l); + + static inline + symbol_type + make_DHCP4O6_PORT (const location_type& l); + + static inline + symbol_type + make_DHCP_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_ENABLE_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_THREAD_POOL_SIZE (const location_type& l); + + static inline + symbol_type + make_PACKET_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_CONTROL_SOCKET (const location_type& l); + + static inline + symbol_type + make_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_SOCKET_NAME (const location_type& l); + + static inline + symbol_type + make_DHCP_QUEUE_CONTROL (const location_type& l); + + static inline + symbol_type + make_ENABLE_QUEUE (const location_type& l); + + static inline + symbol_type + make_QUEUE_TYPE (const location_type& l); + + static inline + symbol_type + make_CAPACITY (const location_type& l); + + static inline + symbol_type + make_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_ENABLE_UPDATES (const location_type& l); + + static inline + symbol_type + make_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_SERVER_IP (const location_type& l); + + static inline + symbol_type + make_SERVER_PORT (const location_type& l); + + static inline + symbol_type + make_SENDER_IP (const location_type& l); + + static inline + symbol_type + make_SENDER_PORT (const location_type& l); + + static inline + symbol_type + make_MAX_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_NCR_PROTOCOL (const location_type& l); + + static inline + symbol_type + make_NCR_FORMAT (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_TCP (const location_type& l); + + static inline + symbol_type + make_JSON (const location_type& l); + + static inline + symbol_type + make_WHEN_PRESENT (const location_type& l); + + static inline + symbol_type + make_NEVER (const location_type& l); + + static inline + symbol_type + make_ALWAYS (const location_type& l); + + static inline + symbol_type + make_WHEN_NOT_PRESENT (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_SET (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l); + + static inline + symbol_type + make_LOGGING (const location_type& l); + + static inline + symbol_type + make_LOGGERS (const location_type& l); + + static inline + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); + + static inline + symbol_type + make_OUTPUT (const location_type& l); + + static inline + symbol_type + make_DEBUGLEVEL (const location_type& l); + + static inline + symbol_type + make_SEVERITY (const location_type& l); + + static inline + symbol_type + make_FLUSH (const location_type& l); + + static inline + symbol_type + make_MAXSIZE (const location_type& l); + + static inline + symbol_type + make_MAXVER (const location_type& l); + + static inline + symbol_type + make_PATTERN (const location_type& l); + + static inline + symbol_type + make_DHCP6 (const location_type& l); + + static inline + symbol_type + make_DHCPDDNS (const location_type& l); + + static inline + symbol_type + make_CONTROL_AGENT (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_JSON (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_DHCP4 (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP4 (const location_type& l); + + static inline + symbol_type + make_SUB_INTERFACES4 (const location_type& l); + + static inline + symbol_type + make_SUB_SUBNET4 (const location_type& l); + + static inline + symbol_type + make_SUB_POOL4 (const location_type& l); + + static inline + symbol_type + make_SUB_RESERVATION (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEFS (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_SUB_HOOKS_LIBRARY (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_SUB_LOGGING (const location_type& l); + + static inline + symbol_type + make_SUB_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_STRING (const std::string& v, const location_type& l); + + static inline + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); + + static inline + symbol_type + make_FLOAT (const double& v, const location_type& l); + + static inline + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); - /// 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_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_SANITY_CHECKS || tok == token::TOKEN_LEASE_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_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_CQL || 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_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || 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_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_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_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || 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_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_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_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_LOGGING || 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_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || 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_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - YY_ASSERT (tok == token::TOKEN_END || 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_SANITY_CHECKS || tok == token::TOKEN_LEASE_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_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_CQL || 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_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || 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_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_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_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || 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_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_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_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_LOGGING || 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_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || 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_LOGGING || 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); - } -#else - symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_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); - } -#else - symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_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); - } -#else - symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_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); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } -#endif - }; /// Build a parser object. Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg); virtual ~Dhcp4Parser (); - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); - /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -1001,2851 +1457,13 @@ switch (yytype) /// Report a syntax error. void error (const syntax_error& err); - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOKEN_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMA (location_type l) - { - return symbol_type (token::TOKEN_COMMA, std::move (l)); - } -#else - static - symbol_type - make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COLON (location_type l) - { - return symbol_type (token::TOKEN_COLON, std::move (l)); - } -#else - static - symbol_type - make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NULL_TYPE (location_type l) - { - return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); - } -#else - static - symbol_type - make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES_CONFIG (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_DHCP_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RAW (location_type l) - { - return symbol_type (token::TOKEN_RAW, std::move (l)); - } -#else - static - symbol_type - make_RAW (const location_type& l) - { - return symbol_type (token::TOKEN_RAW, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UDP (location_type l) - { - return symbol_type (token::TOKEN_UDP, std::move (l)); - } -#else - static - symbol_type - make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTBOUND_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_OUTBOUND_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SAME_AS_INBOUND (location_type l) - { - return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l)); - } -#else - static - symbol_type - make_SAME_AS_INBOUND (const location_type& l) - { - return symbol_type (token::TOKEN_SAME_AS_INBOUND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USE_ROUTING (location_type l) - { - return symbol_type (token::TOKEN_USE_ROUTING, std::move (l)); - } -#else - static - symbol_type - make_USE_ROUTING (const location_type& l) - { - return symbol_type (token::TOKEN_USE_ROUTING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RE_DETECT (location_type l) - { - return symbol_type (token::TOKEN_RE_DETECT, std::move (l)); - } -#else - static - symbol_type - make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SANITY_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ECHO_CLIENT_ID (location_type l) - { - return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l)); - } -#else - static - symbol_type - make_ECHO_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MATCH_CLIENT_ID (location_type l) - { - return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l)); - } -#else - static - symbol_type - make_MATCH_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_AUTHORITATIVE (location_type l) - { - return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l)); - } -#else - static - symbol_type - make_AUTHORITATIVE (const location_type& l) - { - return symbol_type (token::TOKEN_AUTHORITATIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEXT_SERVER (location_type l) - { - return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l)); - } -#else - static - symbol_type - make_NEXT_SERVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEXT_SERVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_SERVER_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOT_FILE_NAME (location_type l) - { - return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l)); - } -#else - static - symbol_type - make_BOOT_FILE_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_BOOT_FILE_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TYPE (location_type l) - { - return symbol_type (token::TOKEN_TYPE, std::move (l)); - } -#else - static - symbol_type - make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MEMFILE (location_type l) - { - return symbol_type (token::TOKEN_MEMFILE, std::move (l)); - } -#else - static - symbol_type - make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MYSQL (location_type l) - { - return symbol_type (token::TOKEN_MYSQL, std::move (l)); - } -#else - static - symbol_type - make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POSTGRESQL (location_type l) - { - return symbol_type (token::TOKEN_POSTGRESQL, std::move (l)); - } -#else - static - symbol_type - make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CQL (location_type l) - { - return symbol_type (token::TOKEN_CQL, std::move (l)); - } -#else - static - symbol_type - make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER (location_type l) - { - return symbol_type (token::TOKEN_USER, std::move (l)); - } -#else - static - symbol_type - make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PASSWORD (location_type l) - { - return symbol_type (token::TOKEN_PASSWORD, std::move (l)); - } -#else - static - symbol_type - make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST (location_type l) - { - return symbol_type (token::TOKEN_HOST, std::move (l)); - } -#else - static - symbol_type - make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PORT (location_type l) - { - return symbol_type (token::TOKEN_PORT, std::move (l)); - } -#else - static - symbol_type - make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PERSIST (location_type l) - { - return symbol_type (token::TOKEN_PERSIST, std::move (l)); - } -#else - static - symbol_type - make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LFC_INTERVAL (location_type l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l)); - } -#else - static - symbol_type - make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_READONLY (location_type l) - { - return symbol_type (token::TOKEN_READONLY, std::move (l)); - } -#else - static - symbol_type - make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONNECT_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_KEYSPACE (location_type l) - { - return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); - } -#else - static - symbol_type - make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERIAL_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_SERIAL_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECONNECT_TRIES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECONNECT_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUEST_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_KEEPALIVE (location_type l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l)); - } -#else - static - symbol_type - make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_NODELAY (location_type l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l)); - } -#else - static - symbol_type - make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_ROW_ERRORS (location_type l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l)); - } -#else - static - symbol_type - make_MAX_ROW_ERRORS (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RENEW_TIMER (location_type l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l)); - } -#else - static - symbol_type - make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REBIND_TIMER (location_type l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l)); - } -#else - static - symbol_type - make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CALCULATE_TEE_TIMES (location_type l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l)); - } -#else - static - symbol_type - make_CALCULATE_TEE_TIMES (const location_type& l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T1_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T1_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T1_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T1_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T2_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T2_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T2_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T2_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DECLINE_PROBATION_PERIOD (location_type l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l)); - } -#else - static - symbol_type - make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_TAG (location_type l) - { - return symbol_type (token::TOKEN_SERVER_TAG, std::move (l)); - } -#else - static - symbol_type - make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_SEND_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_DDNS_SEND_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STORE_EXTENDED_INFO (location_type l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l)); - } -#else - static - symbol_type - make_STORE_EXTENDED_INFO (const location_type& l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET4 (location_type l) - { - return symbol_type (token::TOKEN_SUBNET4, std::move (l)); - } -#else - static - symbol_type - make_SUBNET4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET_4O6_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_SUBNET_4O6_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET_4O6_INTERFACE_ID (location_type l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l)); - } -#else - static - symbol_type - make_SUBNET_4O6_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET_4O6_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET_4O6_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NAME (location_type l) - { - return symbol_type (token::TOKEN_NAME, std::move (l)); - } -#else - static - symbol_type - make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA (location_type l) - { - return symbol_type (token::TOKEN_DATA, std::move (l)); - } -#else - static - symbol_type - make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CODE (location_type l) - { - return symbol_type (token::TOKEN_CODE, std::move (l)); - } -#else - static - symbol_type - make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SPACE (location_type l) - { - return symbol_type (token::TOKEN_SPACE, std::move (l)); - } -#else - static - symbol_type - make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CSV_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS_SEND (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECORD_TYPES (location_type l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l)); - } -#else - static - symbol_type - make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENCAPSULATE (location_type l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l)); - } -#else - static - symbol_type - make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ARRAY (location_type l) - { - return symbol_type (token::TOKEN_ARRAY, std::move (l)); - } -#else - static - symbol_type - make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SHARED_NETWORKS (location_type l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l)); - } -#else - static - symbol_type - make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOLS (location_type l) - { - return symbol_type (token::TOKEN_POOLS, std::move (l)); - } -#else - static - symbol_type - make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOL (location_type l) - { - return symbol_type (token::TOKEN_POOL, std::move (l)); - } -#else - static - symbol_type - make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER_CONTEXT (location_type l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); - } -#else - static - symbol_type - make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMENT (location_type l) - { - return symbol_type (token::TOKEN_COMMENT, std::move (l)); - } -#else - static - symbol_type - make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ID (location_type l) - { - return symbol_type (token::TOKEN_ID, std::move (l)); - } -#else - static - symbol_type - make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATION_MODE (location_type l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l)); - } -#else - static - symbol_type - make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DISABLED (location_type l) - { - return symbol_type (token::TOKEN_DISABLED, std::move (l)); - } -#else - static - symbol_type - make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUT_OF_POOL (location_type l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l)); - } -#else - static - symbol_type - make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GLOBAL (location_type l) - { - return symbol_type (token::TOKEN_GLOBAL, std::move (l)); - } -#else - static - symbol_type - make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALL (location_type l) - { - return symbol_type (token::TOKEN_ALL, std::move (l)); - } -#else - static - symbol_type - make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (location_type l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l)); - } -#else - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TEST (location_type l) - { - return symbol_type (token::TOKEN_TEST, std::move (l)); - } -#else - static - symbol_type - make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ONLY_IF_REQUIRED (location_type l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l)); - } -#else - static - symbol_type - make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASS (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATIONS (location_type l) - { - return symbol_type (token::TOKEN_RESERVATIONS, std::move (l)); - } -#else - static - symbol_type - make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DUID (location_type l) - { - return symbol_type (token::TOKEN_DUID, std::move (l)); - } -#else - static - symbol_type - make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HW_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CIRCUIT_ID (location_type l) - { - return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l)); - } -#else - static - symbol_type - make_CIRCUIT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_CIRCUIT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_ID (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_ID, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLEX_ID (location_type l) - { - return symbol_type (token::TOKEN_FLEX_ID, std::move (l)); - } -#else - static - symbol_type - make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY (location_type l) - { - return symbol_type (token::TOKEN_RELAY, std::move (l)); - } -#else - static - symbol_type - make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESSES (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOOKS_LIBRARIES (location_type l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l)); - } -#else - static - symbol_type - make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARAMETERS (location_type l) - { - return symbol_type (token::TOKEN_PARAMETERS, std::move (l)); - } -#else - static - symbol_type - make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (location_type l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l)); - } -#else - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOLD_RECLAIMED_TIME (location_type l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l)); - } -#else - static - symbol_type - make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_LEASES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_TIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (location_type l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l)); - } -#else - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4O6_PORT (location_type l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l)); - } -#else - static - symbol_type - make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_SOCKET (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_NAME (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_QUEUE_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_QUEUE (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_QUEUE (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUEUE_TYPE (location_type l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l)); - } -#else - static - symbol_type - make_QUEUE_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CAPACITY (location_type l) - { - return symbol_type (token::TOKEN_CAPACITY, std::move (l)); - } -#else - static - symbol_type - make_CAPACITY (const location_type& l) - { - return symbol_type (token::TOKEN_CAPACITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_IP (location_type l) - { - return symbol_type (token::TOKEN_SERVER_IP, std::move (l)); - } -#else - static - symbol_type - make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SERVER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_IP (location_type l) - { - return symbol_type (token::TOKEN_SENDER_IP, std::move (l)); - } -#else - static - symbol_type - make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SENDER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_PROTOCOL (location_type l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); - } -#else - static - symbol_type - make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP (location_type l) - { - return symbol_type (token::TOKEN_TCP, std::move (l)); - } -#else - static - symbol_type - make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_JSON (location_type l) - { - return symbol_type (token::TOKEN_JSON, std::move (l)); - } -#else - static - symbol_type - make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEVER (location_type l) - { - return symbol_type (token::TOKEN_NEVER, std::move (l)); - } -#else - static - symbol_type - make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_NOT_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_SET (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGERS (location_type l) - { - return symbol_type (token::TOKEN_LOGGERS, std::move (l)); - } -#else - static - symbol_type - make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DEBUGLEVEL (location_type l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); - } -#else - static - symbol_type - make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SEVERITY (location_type l) - { - return symbol_type (token::TOKEN_SEVERITY, std::move (l)); - } -#else - static - symbol_type - make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH (location_type l) - { - return symbol_type (token::TOKEN_FLUSH, std::move (l)); - } -#else - static - symbol_type - make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXSIZE (location_type l) - { - return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); - } -#else - static - symbol_type - make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXVER (location_type l) - { - return symbol_type (token::TOKEN_MAXVER, std::move (l)); - } -#else - static - symbol_type - make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PATTERN (location_type l) - { - return symbol_type (token::TOKEN_PATTERN, std::move (l)); - } -#else - static - symbol_type - make_PATTERN (const location_type& l) - { - return symbol_type (token::TOKEN_PATTERN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCPDDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCPDDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCPDDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCPDDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_AGENT (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_AGENT (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_JSON (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_INTERFACES4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l)); - } -#else - static - symbol_type - make_SUB_INTERFACES4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_SUBNET4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l)); - } -#else - static - symbol_type - make_SUB_SUBNET4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_POOL4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_POOL4, std::move (l)); - } -#else - static - symbol_type - make_SUB_POOL4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_RESERVATION (location_type l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l)); - } -#else - static - symbol_type - make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEFS (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_HOOKS_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_SUB_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STRING (std::string v, location_type l) - { - return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTEGER (int64_t v, location_type l) - { - return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLOAT (double v, location_type l) - { - return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOLEAN (bool v, location_type l) - { - return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_BOOLEAN (const bool& v, const location_type& l) - { - return symbol_type (token::TOKEN_BOOLEAN, v, l); - } -#endif - - private: /// This class is not copyable. Dhcp4Parser (const Dhcp4Parser&); Dhcp4Parser& operator= (const Dhcp4Parser&); - /// Stored state numbers (used for stacks). - typedef short state_type; + /// State numbers. + typedef int state_type; /// Generate an error message. /// \param yystate the state where the error occurred. @@ -3856,7 +1474,7 @@ switch (yytype) /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack - static state_type yy_lr_goto_state_ (state_type yystate, int yysym); + state_type yy_lr_goto_state_ (state_type yystate, int yysym); /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check @@ -3866,46 +1484,44 @@ switch (yytype) /// \param yyvalue the value to check static bool yy_table_value_is_error_ (int yyvalue); - static const short yypact_ninf_; + static const short int yypact_ninf_; static const signed char yytable_ninf_; /// Convert a scanner token number \a t to a symbol number. - /// In theory \a t should be a token_type, but character literals - /// are valid, yet not members of the token_type enum. - static token_number_type yytranslate_ (int t); + static token_number_type yytranslate_ (token_type t); // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short int yypact_[]; - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const short yydefact_[]; + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned short int yydefact_[]; - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + // YYPGOTO[NTERM-NUM]. + static const short int yypgoto_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short int yydefgoto_[]; - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const short yytable_[]; + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short int yytable_[]; - static const short yycheck_[]; + static const short int yycheck_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const short yystos_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short int yystos_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const short yyr1_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short int yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const signed char yyr2_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; /// Convert the symbol name \a n to a form suitable for a diagnostic. @@ -3915,16 +1531,15 @@ switch (yytype) /// For a symbol, its name in clear. static const char* const yytname_[]; #if PARSER4_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const short yyrline_[]; + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short int yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. virtual void yystack_print_ (); - /// Debugging level. + // Debugging. int yydebug_; - /// Debug stream. std::ostream* yycdebug_; /// \brief Display a symbol type, value and location. @@ -3946,30 +1561,29 @@ switch (yytype) struct by_state { /// Default constructor. - by_state () YY_NOEXCEPT; + by_state (); /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; + by_state (kind_type s); /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; + by_state (const by_state& other); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); /// Steal the symbol type from \a that. void move (by_state& that); /// The (internal) type number (corresponding to \a state). /// \a empty_symbol when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const; /// The state number used to denote an empty symbol. - /// We use the initial state, as it does not have a value. - enum { empty_state = 0 }; + enum { empty_state = -1 }; /// The state. /// \a empty when empty. @@ -3983,134 +1597,12 @@ switch (yytype) typedef basic_symbol super_type; /// Construct an empty symbol. stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); - - /// Assignment, needed by push_back by other implementations. - /// Needed by some other old implementations. + stack_symbol_type (state_type s, symbol_type& sym); + /// Assignment, needed by push_back. stack_symbol_type& operator= (const stack_symbol_type& that); -#endif }; - /// A stack with random access from its top. - template > - class stack - { - public: - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - typedef typename S::size_type size_type; - typedef typename std::ptrdiff_t index_type; - - stack (size_type n = 200) - : seq_ (n) - {} - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (index_type i) const - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (index_type i) - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (YY_MOVE_REF (T) t) - { - seq_.push_back (T ()); - operator[] (0).move (t); - } - - /// Pop elements from the stack. - void - pop (std::ptrdiff_t n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } - - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } - - /// Number of elements on the stack. - index_type - size () const YY_NOEXCEPT - { - return index_type (seq_.size ()); - } - - std::ptrdiff_t - ssize () const YY_NOEXCEPT - { - return std::ptrdiff_t (size ()); - } - - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.rbegin (); - } - - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.rend (); - } - - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, index_type range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (index_type i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - index_type range_; - }; - - private: - stack (const stack&); - stack& operator= (const stack&); - /// The wrapped container. - S seq_; - }; - - /// Stack type. typedef stack stack_type; @@ -4120,33 +1612,31 @@ switch (yytype) /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. - /// \param sym the symbol + /// \param s the symbol /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + void yypush_ (const char* m, stack_symbol_type& s); /// Push a new look ahead token on the state on the stack. /// \param m a debug message to display /// if null, no trace is output. /// \param s the state /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, state_type s, symbol_type& sym); - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); - - /// Some specific tokens. - static const token_number_type yy_error_token_ = 1; - static const token_number_type yy_undef_token_ = 2; + /// Pop \a n symbols the three stacks. + void yypop_ (unsigned int n = 1); /// Constants. enum { yyeof_ = 0, - yylast_ = 1175, ///< Last index in yytable_. - yynnts_ = 410, ///< Number of nonterminal symbols. + yylast_ = 1357, ///< Last index in yytable_. + yynnts_ = 417, ///< Number of nonterminal symbols. yyfinal_ = 30, ///< Termination state number. - yyntokens_ = 191 ///< Number of tokens. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 195 ///< Number of tokens. }; @@ -4154,17 +1644,16 @@ switch (yytype) isc::dhcp::Parser4Context& ctx; }; + // Symbol number corresponding to token number t. inline Dhcp4Parser::token_number_type - Dhcp4Parser::yytranslate_ (int t) + Dhcp4Parser::yytranslate_ (token_type t) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. static const token_number_type translate_table[] = { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4208,95 +1697,66 @@ switch (yytype) 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190 + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194 }; - const int user_token_number_max_ = 445; + const unsigned int user_token_number_max_ = 449; + const token_number_type undef_token_ = 2; - if (t <= 0) + if (static_cast(t) <= yyeof_) return yyeof_; - else if (t <= user_token_number_max_) + else if (static_cast (t) <= user_token_number_max_) return translate_table[t]; else - return yy_undef_token_; + return undef_token_; } + inline + Dhcp4Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + // basic_symbol. -#if 201103L <= YY_CPLUSPLUS template - Dhcp4Parser::basic_symbol::basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->type_get ()) - { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case 190: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case 189: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case 188: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case 187: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } -#endif + inline + Dhcp4Parser::basic_symbol::basic_symbol () + : value () + {} template - Dhcp4Parser::basic_symbol::basic_symbol (const basic_symbol& that) - : Base (that) + inline + Dhcp4Parser::basic_symbol::basic_symbol (const basic_symbol& other) + : Base (other) , value () - , location (that.location) + , location (other.location) { - switch (this->type_get ()) + switch (other.type_get ()) { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.copy< ElementPtr > (YY_MOVE (that.value)); + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + value.copy< ElementPtr > (other.value); break; - case 190: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); + case 194: // "boolean" + value.copy< bool > (other.value); break; - case 189: // "floating point" - value.copy< double > (YY_MOVE (that.value)); + case 193: // "floating point" + value.copy< double > (other.value); break; - case 188: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); + case 192: // "integer" + value.copy< int64_t > (other.value); break; - case 187: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); + case 191: // "constant string" + value.copy< std::string > (other.value); break; default: @@ -4306,53 +1766,201 @@ switch (yytype) } + template + inline + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) + : Base (t) + , value () + , location (l) + { + (void) v; + switch (this->type_get ()) + { + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + value.copy< ElementPtr > (v); + break; + + case 194: // "boolean" + value.copy< bool > (v); + break; + + case 193: // "floating point" + value.copy< double > (v); + break; + + case 192: // "integer" + value.copy< int64_t > (v); + break; + + case 191: // "constant string" + value.copy< std::string > (v); + break; + + default: + break; + } +} + + + // Implementation of basic_symbol constructor for each type. template + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , value () + , location (l) + {} + + template + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + + template + inline + Dhcp4Parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + inline + void + Dhcp4Parser::basic_symbol::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; + + case 194: // "boolean" + value.template destroy< bool > (); + break; + + case 193: // "floating point" + value.template destroy< double > (); + break; + + case 192: // "integer" + value.template destroy< int64_t > (); + break; + + case 191: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template + inline bool - Dhcp4Parser::basic_symbol::empty () const YY_NOEXCEPT + Dhcp4Parser::basic_symbol::empty () const { return Base::type_get () == empty_symbol; } template + inline void Dhcp4Parser::basic_symbol::move (basic_symbol& s) { - super_type::move (s); - switch (this->type_get ()) + super_type::move(s); + switch (this->type_get ()) { - case 207: // value - case 211: // map_value - case 252: // ddns_replace_client_name_value - case 274: // socket_type - case 277: // outbound_interface_value - case 299: // db_type - case 386: // hr_mode - case 541: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + value.move< ElementPtr > (s.value); break; - case 190: // "boolean" - value.move< bool > (YY_MOVE (s.value)); + case 194: // "boolean" + value.move< bool > (s.value); break; - case 189: // "floating point" - value.move< double > (YY_MOVE (s.value)); + case 193: // "floating point" + value.move< double > (s.value); break; - case 188: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); + case 192: // "integer" + value.move< int64_t > (s.value); break; - case 187: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); + case 191: // "constant string" + value.move< std::string > (s.value); break; default: break; } - location = YY_MOVE (s.location); + location = s.location; } // by_type. @@ -4361,18 +1969,9 @@ switch (yytype) : type (empty_symbol) {} -#if 201103L <= YY_CPLUSPLUS inline - Dhcp4Parser::by_type::by_type (by_type&& that) - : type (that.type) - { - that.clear (); - } -#endif - - inline - Dhcp4Parser::by_type::by_type (const by_type& that) - : type (that.type) + Dhcp4Parser::by_type::by_type (const by_type& other) + : type (other.type) {} inline @@ -4397,15 +1996,1207 @@ switch (yytype) inline int - Dhcp4Parser::by_type::type_get () const YY_NOEXCEPT + Dhcp4Parser::by_type::type_get () const { return type; } -#line 14 "dhcp4_parser.yy" -} } // isc::dhcp -#line 4408 "dhcp4_parser.h" + inline + Dhcp4Parser::token_type + Dhcp4Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short int + yytoken_number_[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449 + }; + return static_cast (yytoken_number_[type]); + } + // Implementation of make_symbol for each symbol type. + Dhcp4Parser::symbol_type + Dhcp4Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } + Dhcp4Parser::symbol_type + Dhcp4Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_CONTROL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONFIG_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_DATABASES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONFIG_FETCH_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTERFACES_CONFIG (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTERFACES (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RAW (const location_type& l) + { + return symbol_type (token::TOKEN_RAW, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_UDP (const location_type& l) + { + return symbol_type (token::TOKEN_UDP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUTBOUND_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SAME_AS_INBOUND (const location_type& l) + { + return symbol_type (token::TOKEN_SAME_AS_INBOUND, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_USE_ROUTING (const location_type& l) + { + return symbol_type (token::TOKEN_USE_ROUTING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RE_DETECT (const location_type& l) + { + return symbol_type (token::TOKEN_RE_DETECT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SANITY_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_SANITY_CHECKS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LEASE_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_CHECKS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ECHO_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MATCH_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_AUTHORITATIVE (const location_type& l) + { + return symbol_type (token::TOKEN_AUTHORITATIVE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NEXT_SERVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEXT_SERVER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_HOSTNAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_BOOT_FILE_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_BOOT_FILE_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LEASE_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_DATABASE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTS_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTS_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MEMFILE (const location_type& l) + { + return symbol_type (token::TOKEN_MEMFILE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MYSQL (const location_type& l) + { + return symbol_type (token::TOKEN_MYSQL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_POSTGRESQL (const location_type& l) + { + return symbol_type (token::TOKEN_POSTGRESQL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CQL (const location_type& l) + { + return symbol_type (token::TOKEN_CQL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOST (const location_type& l) + { + return symbol_type (token::TOKEN_HOST, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PERSIST (const location_type& l) + { + return symbol_type (token::TOKEN_PERSIST, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LFC_INTERVAL (const location_type& l) + { + return symbol_type (token::TOKEN_LFC_INTERVAL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_READONLY (const location_type& l) + { + return symbol_type (token::TOKEN_READONLY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONNECT_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_CONSISTENCY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERIAL_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_RECONNECT_TRIES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RECONNECT_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REQUEST_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TCP_KEEPALIVE (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TCP_NODELAY (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_NODELAY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_ROW_ERRORS (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_VALID_LIFETIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RENEW_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_RENEW_TIMER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REBIND_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_REBIND_TIMER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CALCULATE_TEE_TIMES (const location_type& l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_T1_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T1_PERCENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_T2_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T2_PERCENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DECLINE_PROBATION_PERIOD (const location_type& l) + { + return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_TAG (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_TAG, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_SEND_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STORE_EXTENDED_INFO (const location_type& l) + { + return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET_4O6_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET_4O6_INTERFACE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET_4O6_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DEF, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DATA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_DATA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CODE (const location_type& l) + { + return symbol_type (token::TOKEN_CODE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SPACE (const location_type& l) + { + return symbol_type (token::TOKEN_SPACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CSV_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_CSV_FORMAT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ALWAYS_SEND (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS_SEND, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RECORD_TYPES (const location_type& l) + { + return symbol_type (token::TOKEN_RECORD_TYPES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENCAPSULATE (const location_type& l) + { + return symbol_type (token::TOKEN_ENCAPSULATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ARRAY (const location_type& l) + { + return symbol_type (token::TOKEN_ARRAY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SHARED_NETWORKS (const location_type& l) + { + return symbol_type (token::TOKEN_SHARED_NETWORKS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_POOLS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_POOL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RESERVATION_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATION_MODE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DISABLED (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLED, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUT_OF_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_OUT_OF_POOL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_GLOBAL (const location_type& l) + { + return symbol_type (token::TOKEN_GLOBAL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ALL (const location_type& l) + { + return symbol_type (token::TOKEN_ALL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) + { + return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASSES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REQUIRE_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TEST (const location_type& l) + { + return symbol_type (token::TOKEN_TEST, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ONLY_IF_REQUIRED (const location_type& l) + { + return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CLIENT_CLASS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RESERVATIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATIONS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DUID (const location_type& l) + { + return symbol_type (token::TOKEN_DUID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HW_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_HW_ADDRESS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CIRCUIT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_CIRCUIT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLEX_ID (const location_type& l) + { + return symbol_type (token::TOKEN_FLEX_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RELAY (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_IP_ADDRESSES (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESSES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOOKS_LIBRARIES (const location_type& l) + { + return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_LIBRARY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PARAMETERS (const location_type& l) + { + return symbol_type (token::TOKEN_PARAMETERS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_EXPIRED_LEASES_PROCESSING (const location_type& l) + { + return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_RECLAIM_LEASES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_RECLAIM_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP4O6_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4O6_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENABLE_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_THREAD_POOL_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PACKET_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONTROL_SOCKET (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SOCKET_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_QUEUE_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENABLE_QUEUE (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_QUEUE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_QUEUE_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_QUEUE_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CAPACITY (const location_type& l) + { + return symbol_type (token::TOKEN_CAPACITY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_DDNS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENABLE_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_UPDATES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_IP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SENDER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_IP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SENDER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_GENERATED_PREFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_WHEN_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_PRESENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NEVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEVER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ALWAYS (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_WHEN_NOT_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTNAME_CHAR_SET (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LOGGING (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LOGGERS (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGERS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUTPUT_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUTPUT (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DEBUGLEVEL (const location_type& l) + { + return symbol_type (token::TOKEN_DEBUGLEVEL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SEVERITY (const location_type& l) + { + return symbol_type (token::TOKEN_SEVERITY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLUSH (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAXSIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAXSIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAXVER (const location_type& l) + { + return symbol_type (token::TOKEN_MAXVER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PATTERN (const location_type& l) + { + return symbol_type (token::TOKEN_PATTERN, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP6, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCPDDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCPDDNS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONTROL_AGENT (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TOPLEVEL_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TOPLEVEL_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_INTERFACES4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_INTERFACES4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_SUBNET4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_SUBNET4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_POOL4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_POOL4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_RESERVATION (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_RESERVATION, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_OPTION_DEFS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_HOOKS_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_LOGGING (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_LOGGING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STRING (const std::string& v, const location_type& l) + { + return symbol_type (token::TOKEN_STRING, v, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTEGER (const int64_t& v, const location_type& l) + { + return symbol_type (token::TOKEN_INTEGER, v, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLOAT (const double& v, const location_type& l) + { + return symbol_type (token::TOKEN_FLOAT, v, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_BOOLEAN (const bool& v, const location_type& l) + { + return symbol_type (token::TOKEN_BOOLEAN, v, l); + } + + +#line 14 "dhcp4_parser.yy" // lalr1.cc:377 +} } // isc::dhcp +#line 3200 "dhcp4_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 8587a1aaf6..7e23a2ccac 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,9 +1,8 @@ -// Generated 202004050938 -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -39,178 +38,44 @@ #ifndef YY_PARSER4_LOCATION_HH_INCLUDED # define YY_PARSER4_LOCATION_HH_INCLUDED -# include -# include +# include "position.hh" -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // location.cc:296 namespace isc { namespace dhcp { -#line 59 "location.hh" - - /// A point in a source file. - class position - { - public: - /// Type for line and column numbers. - typedef int counter_type; - - /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - { - filename = fn; - line = l; - column = c; - } - - /** \name Line and Column related manipulators - ** \{ */ - /// (line related) Advance to the COUNT next lines. - void lines (counter_type count = 1) - { - if (count) - { - column = 1; - line = add_ (line, count, 1); - } - } - - /// (column related) Advance to the COUNT next columns. - void columns (counter_type count = 1) - { - column = add_ (column, count, 1); - } - /** \} */ - - /// File name to which this position refers. - std::string* filename; - /// Current line number. - counter_type line; - /// Current column number. - counter_type column; - - private: - /// Compute max (min, lhs+rhs). - static counter_type add_ (counter_type lhs, counter_type rhs, counter_type min) - { - return lhs + rhs < min ? min : lhs + rhs; - } - }; - - /// Add \a width columns, in place. - inline position& - operator+= (position& res, position::counter_type width) - { - res.columns (width); - return res; - } - - /// Add \a width columns. - inline position - operator+ (position res, position::counter_type width) - { - return res += width; - } - - /// Subtract \a width columns, in place. - inline position& - operator-= (position& res, position::counter_type width) - { - return res += -width; - } - - /// Subtract \a width columns. - inline position - operator- (position res, position::counter_type width) - { - return res -= width; - } - - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template - std::basic_ostream& - operator<< (std::basic_ostream& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - - /// Two points in a source file. +#line 46 "location.hh" // location.cc:296 + /// Abstract a location. class location { public: - /// Type for line and column numbers. - typedef position::counter_type counter_type; /// Construct a location from \a b to \a e. location (const position& b, const position& e) : begin (b) , end (e) - {} + { + } /// Construct a 0-width location in \a p. explicit location (const position& p = position ()) : begin (p) , end (p) - {} + { + } /// Construct a 0-width location in \a f, \a l, \a c. explicit location (std::string* f, - counter_type l = 1, - counter_type c = 1) + unsigned int l = 1u, + unsigned int c = 1u) : begin (f, l, c) , end (f, l, c) - {} + { + } /// Initialization. void initialize (std::string* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) + unsigned int l = 1u, + unsigned int c = 1u) { begin.initialize (f, l, c); end = begin; @@ -226,13 +91,13 @@ namespace isc { namespace dhcp { } /// Extend the current location to the COUNT next columns. - void columns (counter_type count = 1) + void columns (int count = 1) { end += count; } /// Extend the current location to the COUNT next lines. - void lines (counter_type count = 1) + void lines (int count = 1) { end.lines (count); } @@ -247,45 +112,39 @@ namespace isc { namespace dhcp { }; /// Join two locations, in place. - inline location& - operator+= (location& res, const location& end) + inline location& operator+= (location& res, const location& end) { res.end = end.end; return res; } /// Join two locations. - inline location - operator+ (location res, const location& end) + inline location operator+ (location res, const location& end) { return res += end; } /// Add \a width columns to the end position, in place. - inline location& - operator+= (location& res, location::counter_type width) + inline location& operator+= (location& res, int width) { res.columns (width); return res; } /// Add \a width columns to the end position. - inline location - operator+ (location res, location::counter_type width) + inline location operator+ (location res, int width) { return res += width; } /// Subtract \a width columns to the end position, in place. - inline location& - operator-= (location& res, location::counter_type width) + inline location& operator-= (location& res, int width) { return res += -width; } /// Subtract \a width columns to the end position. - inline location - operator- (location res, location::counter_type width) + inline location operator- (location res, int width) { return res -= width; } @@ -311,11 +170,10 @@ namespace isc { namespace dhcp { ** Avoid duplicate information. */ template - std::basic_ostream& + inline std::basic_ostream& operator<< (std::basic_ostream& ostr, const location& loc) { - location::counter_type end_col - = 0 < loc.end.column ? loc.end.column - 1 : 0; + unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -328,8 +186,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // location.cc:296 } } // isc::dhcp -#line 333 "location.hh" - +#line 192 "location.hh" // location.cc:296 #endif // !YY_PARSER4_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index ed7d4f974b..c60fabbdf8 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,12 +1,180 @@ -// Generated 202004050938 -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined in "location.hh". -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system -// 3. if you used to include it, include "location.hh" instead. +// Positions for Bison parsers in C++ -#include "location.hh" +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 . + +// As a special exception, you may create a larger work that contains +// part or all of the Bison parser skeleton and distribute that work +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file position.hh + ** Define the isc::dhcp::position class. + */ + +#ifndef YY_PARSER4_POSITION_HH_INCLUDED +# define YY_PARSER4_POSITION_HH_INCLUDED + +# include // std::max +# include +# include + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +#line 14 "dhcp4_parser.yy" // location.cc:296 +namespace isc { namespace dhcp { +#line 56 "position.hh" // location.cc:296 + /// Abstract a position. + class position + { + public: + /// Construct a position. + explicit position (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + : filename (f) + , line (l) + , column (c) + { + } + + + /// Initialization. + void initialize (std::string* fn = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + { + filename = fn; + line = l; + column = c; + } + + /** \name Line and Column related manipulators + ** \{ */ + /// (line related) Advance to the COUNT next lines. + void lines (int count = 1) + { + if (count) + { + column = 1u; + line = add_ (line, count, 1); + } + } + + /// (column related) Advance to the COUNT next columns. + void columns (int count = 1) + { + column = add_ (column, count, 1); + } + /** \} */ + + /// File name to which this position refers. + std::string* filename; + /// Current line number. + unsigned int line; + /// Current column number. + unsigned int column; + + private: + /// Compute max(min, lhs+rhs) (provided min <= lhs). + static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) + { + return (0 < rhs || -static_cast(rhs) < lhs + ? rhs + lhs + : min); + } + }; + + /// Add \a width columns, in place. + inline position& + operator+= (position& res, int width) + { + res.columns (width); + return res; + } + + /// Add \a width columns. + inline position + operator+ (position res, int width) + { + return res += width; + } + + /// Subtract \a width columns, in place. + inline position& + operator-= (position& res, int width) + { + return res += -width; + } + + /// Subtract \a width columns. + inline position + operator- (position res, int width) + { + return res -= width; + } + + /// Compare two position objects. + inline bool + operator== (const position& pos1, const position& pos2) + { + return (pos1.line == pos2.line + && pos1.column == pos2.column + && (pos1.filename == pos2.filename + || (pos1.filename && pos2.filename + && *pos1.filename == *pos2.filename))); + } + + /// Compare two position objects. + inline bool + operator!= (const position& pos1, const position& pos2) + { + return !(pos1 == pos2); + } + + /** \brief Intercept output stream redirection. + ** \param ostr the destination output stream + ** \param pos a reference to the position to redirect + */ + template + inline std::basic_ostream& + operator<< (std::basic_ostream& ostr, const position& pos) + { + if (pos.filename) + ostr << *pos.filename << ':'; + return ostr << pos.line << '.' << pos.column; + } + +#line 14 "dhcp4_parser.yy" // location.cc:296 +} } // isc::dhcp +#line 180 "position.hh" // location.cc:296 +#endif // !YY_PARSER4_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index 921089ba45..3dd2a2a393 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,9 +1,157 @@ -// Generated 202004050938 -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined with the parser itself. -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system. +// Stack handling for Bison parsers in C++ + +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 . + +// As a special exception, you may create a larger work that contains +// part or all of the Bison parser skeleton and distribute that work +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file stack.hh + ** Define the isc::dhcp::stack class. + */ + +#ifndef YY_PARSER4_STACK_HH_INCLUDED +# define YY_PARSER4_STACK_HH_INCLUDED + +# include + +#line 14 "dhcp4_parser.yy" // stack.hh:132 +namespace isc { namespace dhcp { +#line 46 "stack.hh" // stack.hh:132 + template > + class stack + { + public: + // Hide our reversed order. + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; + + stack () + : seq_ () + { + seq_.reserve (200); + } + + stack (unsigned int n) + : seq_ (n) + {} + + inline + T& + operator[] (unsigned int i) + { + return seq_[seq_.size () - 1 - i]; + } + + inline + const T& + operator[] (unsigned int i) const + { + return seq_[seq_.size () - 1 - i]; + } + + /// Steal the contents of \a t. + /// + /// Close to move-semantics. + inline + void + push (T& t) + { + seq_.push_back (T()); + operator[](0).move (t); + } + + inline + void + pop (unsigned int n = 1) + { + for (; n; --n) + seq_.pop_back (); + } + + void + clear () + { + seq_.clear (); + } + + inline + typename S::size_type + size () const + { + return seq_.size (); + } + + inline + const_iterator + begin () const + { + return seq_.rbegin (); + } + + inline + const_iterator + end () const + { + return seq_.rend (); + } + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Present a slice of the top of a stack. + template > + class slice + { + public: + slice (const S& stack, unsigned int range) + : stack_ (stack) + , range_ (range) + {} + + inline + const T& + operator [] (unsigned int i) const + { + return stack_[range_ - i]; + } + + private: + const S& stack_; + unsigned int range_; + }; + +#line 14 "dhcp4_parser.yy" // stack.hh:132 +} } // isc::dhcp +#line 156 "stack.hh" // stack.hh:132 + +#endif // !YY_PARSER4_STACK_HH_INCLUDED diff --git a/src/bin/dhcp4/tests/config_parser_unittest.cc b/src/bin/dhcp4/tests/config_parser_unittest.cc index bbc3f856b4..23b8c86c9c 100644 --- a/src/bin/dhcp4/tests/config_parser_unittest.cc +++ b/src/bin/dhcp4/tests/config_parser_unittest.cc @@ -7181,7 +7181,7 @@ TEST_F(Dhcp4ParserTest, multiThreadingDefaultSettings) { "{" " \"enable-multi-threading\": false,\n" " \"thread-pool-size\": 0,\n" - " \"packet-queue-size\": 0\n" + " \"packet-queue-size\": 64\n" "}"; ConstElementPtr param; ASSERT_NO_THROW(param = Element::fromJSON(content_json)) @@ -7201,7 +7201,7 @@ TEST_F(Dhcp4ParserTest, multiThreadingSettings) { "}"; std::string config = "{ " + genIfaceConfig() + "," + "\"subnet4\": [ ], " - "\"multi-threading\": " + content_json; + "\"multi-threading\": " + content_json + "}"; ConstElementPtr json; ASSERT_NO_THROW(json = parseDHCP4(config)); diff --git a/src/bin/dhcp4/tests/get_config_unittest.cc b/src/bin/dhcp4/tests/get_config_unittest.cc index babf221fa3..258f70be25 100644 --- a/src/bin/dhcp4/tests/get_config_unittest.cc +++ b/src/bin/dhcp4/tests/get_config_unittest.cc @@ -2198,10 +2198,30 @@ const char* EXTRACTED_CONFIGS[] = { " \"interfaces\": [ \"*\" ],\n" " \"re-detect\": false\n" " },\n" +" \"rebind-timer\": 2000,\n" +" \"renew-timer\": 1000,\n" +" \"statistic-default-sample-age\": 5,\n" +" \"statistic-default-sample-count\": 10,\n" +" \"valid-lifetime\": 4000\n" +" }\n", + // CONFIGURATION 73 +"{\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" +" \"subnet4\": [ ]\n" +" }\n", + // CONFIGURATION 74 +"{\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" " \"multi-threading\": {\n" -" \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 0,\n" -" \"thread-pool-size\": 0\n" +" \"enable-multi-threading\": true,\n" +" \"packet-queue-size\": 1024,\n" +" \"thread-pool-size\": 48\n" " },\n" " \"subnet4\": [ ]\n" " }\n" @@ -2260,7 +2280,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -2275,6 +2295,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -2332,7 +2354,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -2346,6 +2368,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -2428,7 +2452,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -2442,6 +2466,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -2526,7 +2552,7 @@ const char* UNPARSED_CONFIGS[] = { " \"min-valid-lifetime\": 3000,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -2541,6 +2567,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -2626,7 +2654,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -2641,6 +2669,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -2799,7 +2829,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -2814,6 +2844,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -2972,7 +3004,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"1.2.3.4\",\n" @@ -2987,6 +3019,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"foo\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3070,7 +3104,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3085,6 +3119,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3171,7 +3207,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"192.0.0.1\",\n" @@ -3186,6 +3222,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"nohost\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3272,7 +3310,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3287,6 +3325,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3370,7 +3410,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3385,6 +3425,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3468,7 +3510,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3483,6 +3525,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3593,7 +3637,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3608,6 +3652,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3717,7 +3763,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3732,6 +3778,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3842,7 +3890,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3857,6 +3905,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -3968,7 +4018,7 @@ const char* UNPARSED_CONFIGS[] = { " \"min-valid-lifetime\": 3000,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -3983,6 +4033,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -4068,7 +4120,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4083,6 +4135,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -4199,7 +4253,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4214,6 +4268,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -4297,7 +4353,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4320,6 +4376,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4377,7 +4435,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4400,6 +4458,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4457,7 +4517,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4489,6 +4549,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4546,7 +4608,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4569,6 +4631,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4626,7 +4690,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4649,6 +4713,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4706,7 +4772,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4729,6 +4795,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4786,7 +4854,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4809,6 +4877,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4866,7 +4936,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4898,6 +4968,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -4981,7 +5053,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -4996,6 +5068,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5096,7 +5170,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5138,6 +5212,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5221,7 +5297,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5272,6 +5348,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -5329,7 +5407,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5397,6 +5475,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5480,7 +5560,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5504,6 +5584,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5604,7 +5686,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5619,6 +5701,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5745,7 +5829,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5760,6 +5844,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5860,7 +5946,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -5875,6 +5961,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -5980,7 +6068,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6012,6 +6100,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -6095,7 +6185,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6146,6 +6236,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -6203,7 +6295,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6262,6 +6354,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -6345,7 +6439,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6375,6 +6469,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -6458,7 +6554,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6492,6 +6588,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -6575,7 +6673,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6590,6 +6688,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -6647,7 +6747,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6662,6 +6762,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -6719,7 +6821,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6734,6 +6836,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -6817,7 +6921,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6832,6 +6936,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -6915,7 +7021,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -6930,6 +7036,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7013,7 +7121,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7028,6 +7136,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7111,7 +7221,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7126,6 +7236,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7209,7 +7321,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7224,6 +7336,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7385,7 +7499,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7400,6 +7514,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7498,7 +7614,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7513,6 +7629,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7749,7 +7867,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7774,6 +7892,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -7877,7 +7997,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -7892,6 +8012,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8053,7 +8175,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8068,6 +8190,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8177,7 +8301,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8190,6 +8314,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -8247,7 +8373,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8260,6 +8386,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -8317,7 +8445,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8330,6 +8458,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -8387,7 +8517,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8400,6 +8530,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -8457,7 +8589,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8472,6 +8604,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8555,7 +8689,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8570,6 +8704,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8653,7 +8789,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8668,6 +8804,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8751,7 +8889,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8766,6 +8904,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8849,7 +8989,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8864,6 +9004,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -8973,7 +9115,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -8988,6 +9130,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -9071,7 +9215,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9086,6 +9230,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -9169,7 +9315,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9184,6 +9330,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -9268,7 +9416,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9283,6 +9431,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -9371,7 +9521,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9386,6 +9536,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -9488,7 +9640,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9503,6 +9655,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -9600,7 +9754,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9696,6 +9850,8 @@ const char* UNPARSED_CONFIGS[] = { " \"valid-lifetime\": 7200\n" " }\n" " ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -9753,7 +9909,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -9823,6 +9979,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -9931,7 +10089,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -10005,6 +10163,8 @@ const char* UNPARSED_CONFIGS[] = { " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -10086,7 +10246,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -10101,6 +10261,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [\n" " {\n" @@ -10209,7 +10371,7 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -10224,6 +10386,8 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": true,\n" " \"subnet4\": [\n" " {\n" @@ -10332,7 +10496,81 @@ const char* UNPARSED_CONFIGS[] = { " \"match-client-id\": true,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 0,\n" +" \"packet-queue-size\": 64,\n" +" \"thread-pool-size\": 0\n" +" },\n" +" \"next-server\": \"0.0.0.0\",\n" +" \"option-data\": [ ],\n" +" \"option-def\": [ ],\n" +" \"rebind-timer\": 2000,\n" +" \"renew-timer\": 1000,\n" +" \"reservation-mode\": \"all\",\n" +" \"sanity-checks\": {\n" +" \"lease-checks\": \"warn\"\n" +" },\n" +" \"server-hostname\": \"\",\n" +" \"server-tag\": \"\",\n" +" \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 5,\n" +" \"statistic-default-sample-count\": 10,\n" +" \"store-extended-info\": false,\n" +" \"subnet4\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.875,\n" +" \"valid-lifetime\": 4000\n" +" }\n", + // CONFIGURATION 73 +"{\n" +" \"authoritative\": false,\n" +" \"boot-file-name\": \"\",\n" +" \"calculate-tee-times\": false,\n" +" \"ddns-generated-prefix\": \"myhost\",\n" +" \"ddns-override-client-update\": false,\n" +" \"ddns-override-no-update\": false,\n" +" \"ddns-qualifying-suffix\": \"\",\n" +" \"ddns-replace-client-name\": \"never\",\n" +" \"ddns-send-updates\": true,\n" +" \"decline-probation-period\": 86400,\n" +" \"dhcp-ddns\": {\n" +" \"enable-updates\": false,\n" +" \"max-queue-size\": 1024,\n" +" \"ncr-format\": \"JSON\",\n" +" \"ncr-protocol\": \"UDP\",\n" +" \"sender-ip\": \"0.0.0.0\",\n" +" \"sender-port\": 0,\n" +" \"server-ip\": \"127.0.0.1\",\n" +" \"server-port\": 53001\n" +" },\n" +" \"dhcp-queue-control\": {\n" +" \"capacity\": 500,\n" +" \"enable-queue\": false,\n" +" \"queue-type\": \"kea-ring4\"\n" +" },\n" +" \"dhcp4o6-port\": 0,\n" +" \"echo-client-id\": true,\n" +" \"expired-leases-processing\": {\n" +" \"flush-reclaimed-timer-wait-time\": 25,\n" +" \"hold-reclaimed-time\": 3600,\n" +" \"max-reclaim-leases\": 100,\n" +" \"max-reclaim-time\": 250,\n" +" \"reclaim-timer-wait-time\": 10,\n" +" \"unwarned-reclaim-cycles\": 5\n" +" },\n" +" \"hooks-libraries\": [ ],\n" +" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\", \"circuit-id\", \"client-id\" ],\n" +" \"hostname-char-replacement\": \"\",\n" +" \"hostname-char-set\": \"[^A-Za-z0-9.-]\",\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" +" \"lease-database\": {\n" +" \"type\": \"memfile\"\n" +" },\n" +" \"match-client-id\": true,\n" +" \"multi-threading\": {\n" +" \"enable-multi-threading\": false,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"next-server\": \"0.0.0.0\",\n" @@ -10345,6 +10583,80 @@ const char* UNPARSED_CONFIGS[] = { " \"server-hostname\": \"\",\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" +" \"store-extended-info\": false,\n" +" \"subnet4\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.875,\n" +" \"valid-lifetime\": 7200\n" +" }\n", + // CONFIGURATION 74 +"{\n" +" \"authoritative\": false,\n" +" \"boot-file-name\": \"\",\n" +" \"calculate-tee-times\": false,\n" +" \"ddns-generated-prefix\": \"myhost\",\n" +" \"ddns-override-client-update\": false,\n" +" \"ddns-override-no-update\": false,\n" +" \"ddns-qualifying-suffix\": \"\",\n" +" \"ddns-replace-client-name\": \"never\",\n" +" \"ddns-send-updates\": true,\n" +" \"decline-probation-period\": 86400,\n" +" \"dhcp-ddns\": {\n" +" \"enable-updates\": false,\n" +" \"max-queue-size\": 1024,\n" +" \"ncr-format\": \"JSON\",\n" +" \"ncr-protocol\": \"UDP\",\n" +" \"sender-ip\": \"0.0.0.0\",\n" +" \"sender-port\": 0,\n" +" \"server-ip\": \"127.0.0.1\",\n" +" \"server-port\": 53001\n" +" },\n" +" \"dhcp-queue-control\": {\n" +" \"capacity\": 500,\n" +" \"enable-queue\": false,\n" +" \"queue-type\": \"kea-ring4\"\n" +" },\n" +" \"dhcp4o6-port\": 0,\n" +" \"echo-client-id\": true,\n" +" \"expired-leases-processing\": {\n" +" \"flush-reclaimed-timer-wait-time\": 25,\n" +" \"hold-reclaimed-time\": 3600,\n" +" \"max-reclaim-leases\": 100,\n" +" \"max-reclaim-time\": 250,\n" +" \"reclaim-timer-wait-time\": 10,\n" +" \"unwarned-reclaim-cycles\": 5\n" +" },\n" +" \"hooks-libraries\": [ ],\n" +" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\", \"circuit-id\", \"client-id\" ],\n" +" \"hostname-char-replacement\": \"\",\n" +" \"hostname-char-set\": \"[^A-Za-z0-9.-]\",\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" +" \"lease-database\": {\n" +" \"type\": \"memfile\"\n" +" },\n" +" \"match-client-id\": true,\n" +" \"multi-threading\": {\n" +" \"enable-multi-threading\": true,\n" +" \"packet-queue-size\": 1024,\n" +" \"thread-pool-size\": 48\n" +" },\n" +" \"next-server\": \"0.0.0.0\",\n" +" \"option-data\": [ ],\n" +" \"option-def\": [ ],\n" +" \"reservation-mode\": \"all\",\n" +" \"sanity-checks\": {\n" +" \"lease-checks\": \"warn\"\n" +" },\n" +" \"server-hostname\": \"\",\n" +" \"server-tag\": \"\",\n" +" \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet4\": [ ],\n" " \"t1-percent\": 0.5,\n" diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index c8804486c3..2c65e19427 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp6_lexer.cc" +#line 2 "dhcp6_lexer.cc" -#line 3 "dhcp6_lexer.cc" +#line 4 "dhcp6_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 204 -#define YY_END_OF_BUFFER 205 +#define YY_NUM_RULES 208 +#define YY_END_OF_BUFFER 209 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,207 +700,214 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1810] = +static const flex_int16_t yy_accept[1873] = { 0, - 197, 197, 0, 0, 0, 0, 0, 0, 0, 0, - 205, 203, 10, 11, 203, 1, 197, 194, 197, 197, - 203, 196, 195, 203, 203, 203, 203, 203, 190, 191, - 203, 203, 203, 192, 193, 5, 5, 5, 203, 203, - 203, 10, 11, 0, 0, 186, 0, 0, 0, 0, + 201, 201, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 207, 10, 11, 207, 1, 201, 198, 201, 201, + 207, 200, 199, 207, 207, 207, 207, 207, 194, 195, + 207, 207, 207, 196, 197, 5, 5, 5, 207, 207, + 207, 10, 11, 0, 0, 190, 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, 197, - 197, 0, 196, 197, 3, 2, 6, 0, 197, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 201, + 201, 0, 200, 201, 3, 2, 6, 0, 201, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 193, 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, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 0, 161, 0, 0, 162, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 161, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, + 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 192, 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, 112, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 112, 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, 202, 200, 0, 199, - 198, 0, 0, 0, 0, 0, 0, 0, 160, 0, - 0, 28, 0, 27, 0, 0, 119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 206, 204, 0, 203, 202, 0, 0, 0, 0, + 0, 0, 0, 160, 0, 0, 28, 0, 27, 0, + 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 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, - 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 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, 201, 198, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 0, 31, 0, 0, 0, 0, 0, 0, 0, 120, - 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, - 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, 205, 202, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 31, + 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, + 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 0, 0, 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, 96, 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, 0, 0, 0, 0, 106, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 140, 165, 51, 0, 56, 0, 0, - 0, 0, 0, 0, 183, 37, 0, 34, 0, 33, - 0, 0, 0, 153, 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, 131, 0, 0, 0, 0, 0, 0, - 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 35, 0, 0, 0, + 0, 0, 0, 140, 0, 165, 51, 0, 56, 0, + 0, 0, 0, 0, 0, 187, 37, 0, 34, 0, + 33, 0, 0, 0, 153, 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, 131, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 101, 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, 109, 0, 0, 0, 0, 0, 0, + 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, - 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 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, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 128, 0, 0, 0, - 0, 0, 0, 0, 132, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 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, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 0, 0, 0, 0, 0, 108, 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, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 128, 0, 0, 0, 0, 0, + 0, 0, 132, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 60, - 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, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 0, 0, 0, 0, 181, 0, 0, 0, + 0, 0, 188, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 147, 0, 0, 0, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, - 100, 0, 0, 0, 144, 0, 0, 0, 0, 50, - - 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, 0, 0, 0, - 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 0, 159, - 14, 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, 150, 0, - 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 0, 0, 0, 57, 100, 0, 0, 0, 144, 0, + 0, 0, 0, 50, 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, 0, 0, 0, 0, 0, 0, 0, 0, 186, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 110, 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, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 159, 14, 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, 150, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 163, 0, 40, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 20, 0, 0, 0, 94, 0, 0, + 0, 0, 0, 157, 54, 0, 102, 0, 184, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, + 125, 126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, - 0, 157, 54, 0, 102, 0, 180, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 0, 0, 0, 0, 0, 125, 126, - 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, - 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 95, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 95, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, + 0, 0, 0, 0, 17, 0, 15, 0, 181, 180, + 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, + 30, 0, 139, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, + 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 111, 0, 143, 43, 0, 61, 0, - 0, 79, 0, 0, 0, 0, 0, 0, 17, 0, - 15, 0, 177, 176, 0, 0, 0, 69, 0, 0, - 0, 0, 0, 30, 0, 139, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 174, 179, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 111, 0, 143, 43, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 113, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 0, 113, 80, 0, 0, 151, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 107, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 107, 0, 189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 0, 0, 166, + 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, 42, 0, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 137, 47, 0, 0, + 0, 70, 179, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 0, 0, 44, 0, 18, 0, + 0, 0, 72, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 166, 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, 42, 0, 0, 0, 0, 68, 0, 0, 0, - 0, 137, 47, 0, 0, 0, 70, 175, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, - 44, 0, 18, 0, 0, 0, 72, 0, 0, 0, - - 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 156, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 93, 0, 0, 0, 36, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, - 0, 172, 0, 0, 0, 0, 141, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, - 0, 0, 0, 0, 0, 0, 0, 25, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, + 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 0, 0, 0, 93, 0, 0, 0, + 0, 36, 0, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 114, 0, 0, 0, 177, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 178, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 78, 0, 77, 0, - 21, 73, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 124, 0, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 78, 0, 77, 0, 21, + 73, 0, 0, 0, 0, 0, 65, 0, 0, 0, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 170, 0, 0, 0, 71, 0, 0, 0, - 66, 0, 23, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 90, 0, - 0, 0, 0, 0, 0, 75, 74, 22, 0, 122, - 138, 0, 0, 0, 86, 0, 0, 0, 0, 0, - 0, 168, 0, 173, 0, 88, 81, 0, 0, 0, - 0, 0, 0, 167, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, - 123, 84, 0, 0, 0, 0, 83, 169, 0 + 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, + 90, 0, 0, 176, 0, 0, 0, 0, 75, 74, + 22, 0, 122, 138, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 168, 0, 173, 0, 88, 81, + 0, 0, 0, 0, 0, 0, 167, 0, 0, 26, + 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, + 0, 0, 0, 123, 84, 0, 0, 0, 0, 83, + 169, 0 } ; static const YY_CHAR yy_ec[256] = @@ -947,434 +954,446 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1822] = +static const flex_int16_t yy_base[1885] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2211, 2212, 34, 2207, 145, 0, 207, 2212, 214, 221, - 13, 228, 2212, 2187, 118, 25, 2, 6, 2212, 2212, - 73, 11, 17, 2212, 2212, 2212, 104, 2195, 2148, 0, - 2185, 108, 2202, 24, 256, 2212, 67, 2144, 2150, 2170, + 2274, 2275, 34, 2270, 145, 0, 207, 2275, 214, 221, + 13, 228, 2275, 2250, 118, 25, 2, 6, 2275, 2275, + 73, 11, 17, 2275, 2275, 2275, 104, 2258, 2211, 0, + 2248, 108, 2265, 24, 256, 2275, 67, 2207, 2213, 2233, 84, 75, 189, 88, 226, 91, 89, 284, 196, 206, - 279, 191, 210, 197, 60, 216, 2151, 241, 284, 309, - 297, 316, 2134, 212, 321, 345, 326, 2153, 0, 386, - 402, 416, 423, 428, 2212, 0, 2212, 442, 447, 241, - 242, 302, 269, 315, 303, 2212, 2150, 2191, 2212, 345, + 279, 191, 210, 197, 60, 216, 2214, 241, 288, 309, + 301, 315, 2197, 212, 320, 367, 320, 2216, 0, 373, + 381, 395, 424, 429, 2275, 0, 2275, 410, 443, 241, + 242, 306, 269, 299, 310, 2275, 2213, 2254, 2275, 297, - 2212, 441, 337, 2137, 2147, 2188, 352, 10, 336, 2141, - 339, 242, 346, 360, 399, 2186, 0, 494, 411, 2128, - 335, 2136, 417, 2132, 2121, 2122, 2127, 350, 2137, 2120, - 2129, 421, 362, 219, 2123, 2121, 417, 2110, 2168, 422, - 2113, 2166, 2106, 2129, 2126, 2126, 2120, 422, 2113, 2111, - 2105, 2110, 2104, 432, 2115, 2108, 2099, 2098, 2112, 430, - 2150, 2097, 438, 2109, 437, 2097, 502, 2098, 464, 2110, - 2107, 2108, 293, 2106, 2141, 2140, 419, 2086, 2091, 2087, - 2079, 2096, 2088, 0, 460, 391, 455, 461, 458, 476, - 2087, 2212, 0, 491, 2078, 2081, 2212, 492, 498, 2212, + 2275, 442, 337, 2200, 2210, 2251, 306, 10, 395, 2204, + 355, 373, 397, 415, 324, 2249, 0, 495, 410, 2191, + 219, 2199, 413, 2195, 2184, 2185, 2190, 418, 2200, 2183, + 2192, 368, 416, 219, 2186, 2184, 423, 2173, 2231, 423, + 2176, 2229, 2169, 2192, 2189, 2189, 2183, 421, 2176, 2174, + 2175, 2167, 2172, 2166, 414, 2177, 2170, 2161, 2160, 2174, + 434, 2212, 2159, 428, 2171, 450, 2159, 491, 2160, 465, + 2172, 2169, 2170, 293, 2168, 2203, 2202, 434, 2148, 2148, + 2152, 2148, 2140, 2157, 2149, 0, 450, 472, 467, 470, + 473, 499, 2148, 2275, 0, 508, 2139, 2142, 2275, 497, - 2135, 2088, 489, 2133, 502, 2132, 501, 2131, 2212, 553, - 2130, 509, 2089, 2086, 2087, 2082, 2081, 2072, 523, 2123, - 2117, 2081, 2062, 2059, 2067, 2073, 2061, 2075, 2071, 2072, - 2072, 2067, 2059, 2061, 2045, 2049, 2062, 2064, 2061, 2053, - 2043, 2046, 2060, 2212, 2046, 2054, 2057, 2038, 2037, 2089, - 2036, 2046, 2086, 525, 2045, 2084, 2032, 2043, 2081, 508, - 2085, 2020, 2035, 523, 2025, 2041, 2022, 2020, 2023, 2019, - 2025, 2016, 2015, 2028, 2021, 2011, 2022, 2026, 2025, 2019, - 494, 2026, 2021, 2013, 2003, 2018, 2013, 2017, 357, 2015, - 2001, 2007, 2014, 1996, 1997, 2000, 1997, 1996, 479, 1991, + 503, 2275, 2196, 2149, 509, 2194, 513, 2193, 515, 2192, + 2275, 561, 2191, 534, 2150, 2147, 2148, 2143, 2142, 2133, + 505, 2184, 2178, 2142, 2123, 2120, 2128, 2134, 2122, 2136, + 2132, 2133, 2133, 2128, 2120, 2122, 2106, 2110, 2123, 2125, + 2122, 2114, 2104, 2107, 2121, 2275, 2107, 2115, 2118, 2099, + 2098, 2150, 2097, 2107, 2147, 504, 2106, 2145, 2090, 2092, + 2103, 2141, 531, 2145, 2080, 2095, 505, 2085, 2091, 2100, + 2081, 2079, 2082, 2078, 2084, 2075, 2074, 2087, 2080, 2070, + 2081, 2085, 2084, 2078, 533, 2085, 2080, 2072, 2062, 2077, + 2072, 2076, 506, 2074, 2060, 2066, 2073, 2055, 2056, 2059, - 2005, 2004, 2007, 1989, 1997, 535, 2212, 2212, 545, 2212, - 2212, 1984, 0, 505, 1986, 579, 556, 2042, 2212, 1993, - 530, 2212, 2040, 2212, 2034, 593, 2212, 545, 1974, 1977, - 1994, 1982, 2034, 1989, 1984, 1987, 1982, 80, 2212, 1984, - 616, 2023, 1981, 1978, 1979, 536, 1983, 2023, 1971, 1966, - 1963, 1959, 1961, 2012, 1969, 1958, 1974, 2008, 1954, 617, - 1967, 1967, 1950, 1951, 1964, 1951, 1961, 1956, 1963, 1958, - 1943, 563, 1952, 1955, 1950, 568, 1946, 1996, 585, 596, - 2212, 1990, 1940, 1939, 1932, 1934, 1938, 1927, 1944, 1933, - 1938, 584, 1985, 1938, 544, 1935, 1938, 1938, 1936, 1925, + 2056, 2055, 561, 2050, 2064, 2063, 2062, 2065, 2047, 2055, + 555, 2275, 2275, 556, 2275, 2275, 2042, 0, 524, 2044, + 574, 568, 2100, 2275, 2051, 561, 2275, 2098, 2275, 2092, + 611, 2275, 560, 2032, 2035, 2052, 2040, 2092, 2047, 2042, + 2045, 2040, 80, 2275, 2042, 591, 2081, 2039, 2036, 2037, + 587, 2041, 2081, 2029, 2024, 2021, 2017, 2019, 2070, 2027, + 2016, 2032, 2066, 2012, 608, 2025, 2025, 2008, 2009, 2022, + 2009, 2019, 2014, 2021, 2016, 2001, 554, 2010, 2013, 2008, + 579, 2007, 2003, 2053, 552, 585, 2275, 2047, 1997, 1996, + 1989, 1991, 2003, 1994, 1983, 2000, 1989, 1994, 616, 2041, - 1925, 1937, 574, 1912, 1913, 1934, 584, 1916, 1913, 1927, - 1930, 1925, 1911, 1923, 1922, 1921, 1916, 1919, 1918, 1917, - 1916, 591, 1959, 1958, 1957, 1899, 643, 1912, 2212, 2212, - 1911, 0, 596, 1899, 1952, 1951, 1907, 1949, 2212, 1895, - 1947, 2212, 619, 668, 609, 1946, 1894, 1896, 1884, 2212, - 1889, 1895, 1898, 1881, 1896, 1883, 1882, 2212, 1892, 603, - 1883, 1880, 1892, 607, 1877, 1879, 2212, 1885, 1870, 1872, - 1883, 1881, 1876, 646, 1883, 1871, 1864, 1915, 2212, 1862, - 1878, 1912, 1916, 1872, 1866, 1868, 1869, 1871, 1905, 1856, - 1851, 1850, 1852, 1848, 1844, 608, 1863, 1837, 1844, 1849, + 1994, 591, 1991, 1994, 1994, 1992, 1981, 1981, 1993, 584, + 1968, 1969, 1990, 599, 1972, 1969, 1983, 1986, 1981, 1967, + 1979, 1978, 1977, 1972, 1975, 1974, 1973, 1972, 595, 2015, + 1974, 2013, 2012, 1954, 644, 1967, 2275, 2275, 1966, 0, + 606, 1954, 2007, 2006, 1962, 2004, 2275, 1950, 2002, 2275, + 631, 679, 620, 2001, 1949, 1951, 1939, 2275, 1944, 1950, + 1953, 1936, 1951, 1938, 1937, 2275, 1947, 614, 1938, 1935, + 1947, 582, 1932, 1934, 2275, 1940, 1925, 1927, 1938, 1936, + 1931, 658, 1938, 1926, 1919, 1970, 2275, 1917, 1933, 1967, + 1971, 1927, 1921, 1923, 1924, 1926, 1960, 1911, 1906, 1905, - 1842, 1858, 1897, 2212, 1842, 1838, 1894, 1845, 1839, 1846, - 1831, 1841, 1844, 1833, 1829, 1831, 1826, 2212, 1883, 2212, - 1825, 1824, 1817, 1834, 1873, 1872, 1817, 1822, 1831, 1825, - 1819, 1828, 664, 1865, 1827, 1810, 1810, 1805, 1801, 1807, - 1812, 1805, 1813, 1817, 1800, 1858, 1799, 1851, 1796, 1797, - 1796, 1808, 1797, 2212, 2212, 2212, 1797, 2212, 1807, 1843, - 1803, 0, 1846, 1794, 2212, 2212, 1791, 2212, 1797, 2212, - 628, 627, 666, 2212, 1802, 1782, 1835, 1780, 1833, 1778, - 1777, 1776, 1783, 1776, 1784, 1787, 1769, 1769, 1784, 1783, - 1782, 1781, 1765, 1780, 1762, 1809, 1776, 1814, 1758, 1760, + 1907, 1903, 1899, 573, 1918, 1892, 1899, 1904, 1897, 1913, + 1947, 1951, 2275, 1896, 1892, 1948, 1899, 1893, 1900, 1885, + 1895, 1883, 1897, 1886, 1882, 1884, 1879, 2275, 1936, 2275, + 1878, 1877, 1870, 1887, 1926, 1925, 1870, 1875, 1884, 1878, + 1872, 1881, 662, 1918, 1880, 1863, 1863, 1858, 1854, 1860, + 1865, 1858, 1866, 1870, 1853, 1911, 1852, 1904, 1849, 1850, + 1849, 1861, 1850, 2275, 1860, 2275, 2275, 1849, 2275, 1859, + 1895, 1855, 0, 1898, 1846, 2275, 2275, 1843, 2275, 1849, + 2275, 619, 636, 675, 2275, 1854, 1834, 1887, 1832, 1885, + 1830, 1829, 1828, 1835, 1828, 1836, 1839, 1821, 1821, 1836, - 1772, 1772, 1771, 2212, 1756, 1753, 1811, 1766, 1758, 1764, - 1755, 1763, 2212, 1748, 1759, 1763, 1745, 1759, 564, 1741, - 1735, 1740, 1737, 1752, 1751, 1752, 1731, 1741, 1747, 1790, - 1745, 1744, 1736, 2212, 1729, 1731, 2212, 1739, 1778, 1777, - 16, 1738, 1721, 1722, 1725, 1726, 1717, 2212, 1731, 1717, - 691, 1709, 1713, 1729, 1726, 1718, 1763, 1715, 1722, 1760, - 2212, 1706, 1704, 1718, 1702, 1716, 1719, 1753, 1752, 1751, - 1750, 1695, 1748, 1747, 2212, 1692, 1706, 681, 1707, 1706, - 1703, 1703, 1701, 1690, 1692, 2212, 2212, 1737, 1683, 1740, - 642, 564, 1681, 1679, 1673, 1694, 1735, 652, 1729, 1689, + 1835, 1834, 1833, 1817, 1832, 1814, 1861, 1828, 1866, 1810, + 1812, 1824, 1824, 1823, 2275, 1808, 1805, 1863, 1818, 1810, + 1816, 1807, 1815, 2275, 1800, 1811, 1815, 1797, 1811, 370, + 1793, 1787, 1792, 1789, 1804, 1803, 1804, 1783, 1793, 1799, + 1842, 1797, 1796, 1788, 1779, 2275, 1780, 1782, 2275, 1790, + 1829, 1828, 16, 1789, 1826, 1771, 1772, 1775, 1776, 1767, + 2275, 1781, 1767, 702, 1759, 1763, 1779, 1776, 1768, 1813, + 1765, 1772, 1810, 2275, 1756, 1754, 1768, 1752, 1766, 1769, + 1803, 1802, 1801, 1800, 1745, 1798, 1797, 2275, 1742, 1756, + 669, 1757, 1756, 1753, 1753, 1790, 1750, 1739, 1741, 2275, - 1727, 1726, 1678, 1672, 1675, 1683, 1686, 1670, 1671, 1662, - 1717, 1677, 1667, 1675, 1713, 1674, 642, 1665, 1667, 1671, - 1708, 1712, 1667, 1666, 2212, 1667, 1660, 1649, 91, 234, - 287, 290, 341, 341, 488, 520, 618, 621, 668, 683, - 635, 654, 640, 652, 699, 657, 707, 2212, 714, 670, - 668, 665, 659, 714, 677, 666, 2212, 668, 679, 680, - 682, 726, 669, 728, 671, 686, 2212, 680, 674, 685, - 670, 682, 695, 674, 680, 735, 699, 683, 683, 696, - 740, 741, 742, 689, 707, 702, 709, 704, 689, 701, - 702, 708, 695, 2212, 760, 718, 720, 710, 722, 724, + 2275, 1786, 1732, 1789, 645, 661, 1730, 1728, 1722, 1743, + 1784, 666, 1778, 1738, 1776, 1775, 1727, 1721, 1724, 1732, + 1735, 1719, 1720, 1711, 1766, 1726, 82, 291, 360, 354, + 654, 395, 400, 421, 473, 519, 477, 501, 2275, 551, + 578, 619, 635, 643, 641, 644, 652, 651, 659, 665, + 673, 671, 716, 717, 661, 680, 666, 676, 723, 681, + 731, 2275, 732, 688, 686, 688, 684, 678, 733, 696, + 685, 2275, 687, 698, 687, 700, 702, 747, 690, 749, + 692, 707, 2275, 701, 695, 706, 691, 702, 715, 694, + 700, 755, 719, 703, 703, 716, 760, 761, 762, 709, - 715, 721, 730, 771, 2212, 767, 743, 730, 731, 776, - 726, 2212, 724, 739, 736, 722, 729, 728, 726, 745, - 742, 743, 731, 738, 739, 748, 748, 738, 751, 737, - 736, 742, 798, 739, 745, 762, 745, 799, 754, 2212, - 764, 764, 757, 768, 766, 811, 753, 755, 770, 771, - 759, 818, 775, 761, 764, 2212, 2212, 780, 779, 780, - 785, 773, 783, 785, 2212, 2212, 785, 787, 791, 778, - 776, 794, 781, 781, 832, 782, 840, 2212, 841, 2212, - 786, 800, 800, 845, 793, 792, 796, 790, 850, 803, - 793, 794, 790, 800, 804, 815, 799, 817, 812, 814, + 727, 722, 729, 724, 709, 721, 722, 728, 715, 2275, + 780, 738, 740, 730, 742, 732, 745, 736, 742, 751, + 792, 2275, 788, 764, 751, 752, 797, 747, 2275, 745, + 760, 757, 743, 750, 749, 747, 766, 763, 764, 752, + 759, 760, 769, 769, 759, 772, 758, 757, 763, 819, + 760, 761, 768, 784, 767, 821, 776, 2275, 786, 786, + 779, 790, 788, 833, 775, 777, 792, 793, 781, 840, + 797, 783, 786, 2275, 2275, 802, 801, 802, 807, 795, + 805, 807, 2275, 2275, 807, 809, 796, 814, 801, 799, + 817, 804, 804, 855, 802, 806, 864, 2275, 865, 2275, - 807, 809, 810, 822, 812, 827, 868, 825, 830, 807, - 830, 814, 2212, 821, 822, 836, 827, 874, 821, 836, - 836, 2212, 855, 863, 832, 881, 2212, 847, 835, 830, - 831, 843, 850, 839, 840, 836, 854, 840, 841, 851, - 860, 896, 851, 846, 899, 905, 862, 854, 2212, 865, - 868, 853, 869, 859, 871, 865, 912, 878, 862, 863, - 2212, 879, 882, 865, 867, 925, 868, 2212, 885, 888, - 868, 887, 875, 928, 886, 882, 879, 932, 881, 934, - 881, 899, 898, 884, 899, 891, 887, 905, 890, 2212, - 2212, 898, 945, 898, 2212, 906, 909, 902, 955, 2212, + 810, 824, 824, 869, 817, 816, 820, 814, 874, 827, + 817, 818, 814, 824, 828, 839, 823, 841, 836, 838, + 831, 833, 834, 846, 836, 851, 892, 849, 854, 831, + 854, 838, 2275, 845, 846, 860, 851, 849, 899, 846, + 861, 861, 2275, 880, 888, 857, 906, 2275, 872, 860, + 855, 856, 868, 875, 864, 865, 861, 879, 865, 866, + 876, 885, 921, 876, 871, 924, 930, 887, 879, 2275, + 883, 892, 894, 879, 895, 885, 897, 891, 938, 904, + 888, 889, 2275, 905, 908, 891, 893, 951, 894, 2275, + 911, 914, 894, 913, 901, 954, 912, 908, 905, 958, - 904, 909, 954, 905, 906, 918, 912, 916, 914, 912, - 923, 968, 912, 917, 971, 972, 916, 928, 2212, 916, - 924, 922, 973, 935, 921, 922, 931, 944, 928, 942, - 943, 944, 960, 965, 947, 933, 935, 935, 955, 954, - 945, 934, 951, 958, 1001, 943, 963, 956, 960, 964, - 947, 1008, 955, 959, 2212, 1006, 955, 953, 974, 971, - 1011, 962, 980, 981, 967, 975, 984, 964, 979, 986, - 1028, 1029, 2212, 982, 1031, 1032, 983, 993, 995, 979, - 981, 981, 988, 997, 985, 992, 987, 994, 1046, 993, - 992, 1009, 1050, 1000, 1004, 1002, 1000, 1055, 1056, 1006, + 907, 960, 922, 908, 926, 925, 911, 926, 918, 914, + 932, 931, 918, 2275, 2275, 926, 973, 926, 2275, 934, + 937, 930, 983, 2275, 932, 938, 982, 933, 934, 946, + 940, 944, 942, 940, 951, 996, 940, 945, 999, 1000, + 944, 956, 2275, 944, 952, 950, 1001, 963, 949, 951, + 960, 972, 959, 957, 971, 972, 973, 989, 994, 976, + 962, 964, 964, 984, 983, 974, 963, 980, 987, 1030, + 972, 992, 985, 989, 993, 976, 1037, 984, 988, 2275, + 1035, 984, 983, 983, 1004, 1001, 1043, 992, 1010, 1011, + 997, 1005, 1014, 994, 1009, 1016, 1058, 1059, 2275, 1012, - 1058, 1054, 1060, 1013, 2212, 1018, 1011, 1002, 1021, 1015, - 1010, 1020, 1017, 1022, 1018, 1030, 2212, 1014, 1016, 2212, - 2212, 1016, 1077, 1016, 1035, 1036, 1038, 1029, 1083, 1084, - 1037, 1022, 1043, 1025, 1030, 1037, 1070, 1061, 1093, 1050, - 1037, 1039, 1056, 1051, 1055, 1100, 1048, 1052, 2212, 1049, - 1045, 1062, 1042, 1063, 1053, 2212, 1068, 1066, 1069, 1053, - 1069, 1056, 1116, 1069, 1074, 1061, 1073, 1065, 1071, 1067, - 1085, 1086, 1087, 2212, 2212, 1085, 2212, 1087, 2212, 1072, - 1073, 1092, 1082, 1134, 1091, 1088, 1132, 1096, 1085, 1092, - 1097, 1094, 2212, 1092, 1084, 1145, 2212, 1146, 1093, 1100, + 1061, 1062, 1013, 1023, 1025, 1009, 1011, 1011, 1018, 1027, + 1015, 1022, 1017, 1024, 1036, 1077, 1024, 1023, 1040, 1081, + 1031, 1035, 1033, 1031, 1026, 1087, 1088, 1038, 1090, 1086, + 1092, 1045, 2275, 1050, 1043, 1034, 1053, 1047, 1042, 1052, + 1049, 1054, 1050, 1062, 2275, 1046, 1049, 2275, 2275, 1049, + 1109, 1048, 1067, 1068, 1070, 1061, 1115, 1116, 1069, 1054, + 1068, 1076, 1058, 1063, 1070, 1103, 1094, 1126, 1083, 1070, + 1072, 1089, 1084, 1088, 1133, 1081, 1085, 2275, 1082, 1078, + 1095, 1075, 1096, 1086, 2275, 1101, 1099, 1102, 1086, 1098, + 1104, 1090, 1150, 1103, 1108, 1096, 1107, 1099, 1105, 1101, - 1144, 2212, 2212, 1102, 2212, 1093, 2212, 1093, 1096, 1110, - 1115, 1098, 1109, 1158, 1115, 1116, 1117, 1157, 1113, 1164, - 1117, 1166, 2212, 1113, 1168, 1169, 1126, 1128, 2212, 2212, - 1111, 1173, 1132, 1116, 1128, 1118, 1148, 1179, 2212, 1136, - 1181, 1128, 1143, 1179, 1131, 2212, 1127, 1143, 1131, 1145, - 1146, 1143, 1187, 1150, 1154, 1142, 1142, 1197, 1198, 1155, - 2212, 1157, 1156, 1158, 1151, 1160, 1161, 1159, 1149, 1152, - 1152, 1211, 1158, 1213, 1214, 1158, 1217, 2212, 1175, 1154, - 1169, 1162, 1165, 1178, 1181, 1181, 1227, 1181, 2212, 2212, - 1177, 1187, 1172, 1188, 1174, 1235, 1236, 1180, 1190, 1239, + 1119, 1120, 1121, 2275, 2275, 1119, 2275, 1121, 2275, 1106, + 1107, 1126, 1116, 1168, 1125, 1122, 1166, 1130, 1119, 1126, + 1131, 1128, 1134, 2275, 1127, 1119, 1180, 2275, 1181, 1128, + 1135, 1179, 1141, 2275, 2275, 1138, 2275, 1129, 2275, 1129, + 1132, 1146, 1151, 1134, 1145, 1194, 1151, 1152, 1153, 1193, + 1149, 1200, 1153, 1202, 2275, 1149, 1204, 1205, 1162, 1164, + 2275, 2275, 1147, 1209, 1205, 1169, 1153, 1165, 1155, 1185, + 1216, 2275, 1173, 1218, 1165, 1180, 1216, 1168, 2275, 1164, + 1180, 1168, 1182, 1183, 1180, 1224, 1187, 1191, 1179, 1179, + 1234, 1230, 1236, 1193, 2275, 1195, 1194, 1196, 1189, 1198, - 1196, 2212, 1188, 1188, 1190, 1192, 1245, 1188, 2212, 1189, - 2212, 1191, 2212, 2212, 1204, 1206, 1207, 2212, 1201, 1253, - 1202, 1255, 1235, 2212, 1252, 2212, 1200, 1208, 1202, 1199, - 1202, 1205, 1205, 1201, 1223, 1262, 1215, 1227, 1230, 1212, - 1272, 1220, 2212, 2212, 1216, 1275, 1228, 1219, 1234, 1235, - 1238, 1238, 1235, 1279, 1241, 2212, 1233, 2212, 2212, 1243, - 2212, 1283, 1245, 1246, 1243, 1287, 1235, 1250, 1290, 1252, - 2212, 1240, 1240, 1246, 1245, 1257, 1257, 2212, 2212, 1298, - 1245, 2212, 1262, 1247, 1247, 1249, 1255, 2212, 1310, 1252, - 1262, 1273, 1271, 1315, 1276, 2212, 1273, 2212, 1292, 1260, + 1200, 1197, 1187, 1190, 1190, 1249, 1196, 1252, 1253, 1196, + 1255, 2275, 1213, 1192, 1207, 1200, 1203, 1216, 1220, 1219, + 1217, 1267, 1220, 2275, 2275, 1216, 1226, 1211, 1267, 1228, + 1214, 1275, 1276, 1220, 1230, 1279, 1236, 2275, 1228, 1228, + 1230, 1232, 1285, 1228, 2275, 1229, 2275, 1231, 2275, 2275, + 1244, 1246, 1247, 2275, 1234, 1242, 1294, 1243, 1296, 1276, + 2275, 1293, 2275, 1241, 1249, 1243, 1240, 1243, 1246, 1246, + 1242, 1264, 1303, 1256, 1268, 1271, 1253, 1313, 1261, 2275, + 1256, 2275, 1258, 1317, 1270, 1261, 1277, 1277, 1280, 1280, + 1277, 1321, 1283, 2275, 1275, 2275, 2275, 1285, 2275, 1325, - 1320, 1321, 1278, 1283, 1265, 1325, 1326, 1327, 1323, 1287, - 1284, 1280, 1273, 1285, 2212, 1275, 1335, 2212, 1273, 1332, - 1295, 1291, 1336, 1284, 1289, 1289, 1344, 1303, 1349, 1299, - 1351, 1312, 1301, 1295, 1355, 1297, 1306, 1299, 1315, 1360, - 1302, 1319, 1304, 1319, 1303, 1361, 1362, 1363, 1310, 1365, - 1328, 2212, 1328, 1315, 1314, 1370, 2212, 1328, 1377, 1347, - 1331, 2212, 2212, 1322, 1333, 1382, 2212, 2212, 2212, 1328, - 1333, 1331, 1381, 1339, 1344, 1335, 1333, 2212, 1391, 1337, - 1388, 1331, 1336, 1397, 1345, 1355, 1356, 2212, 1401, 1355, - 2212, 1356, 2212, 1347, 1363, 1351, 2212, 1361, 1362, 1363, + 1287, 1288, 1285, 1329, 1277, 1292, 1332, 1294, 1286, 2275, + 1283, 1283, 1289, 1288, 1286, 1301, 1301, 2275, 2275, 1342, + 1289, 2275, 1306, 1291, 1291, 1293, 1299, 2275, 1354, 1296, + 1306, 1317, 1315, 1359, 1312, 1321, 2275, 1318, 2275, 1337, + 1305, 1365, 1366, 1323, 1328, 1310, 1370, 1371, 1372, 1368, + 1332, 1329, 1325, 1318, 1330, 2275, 1320, 1333, 1381, 2275, + 1319, 1378, 1341, 1338, 1382, 1330, 1335, 1334, 1393, 1349, + 1395, 1345, 1397, 1358, 1347, 1341, 1401, 1343, 1352, 1345, + 1359, 1362, 1407, 1349, 1366, 1362, 1352, 1367, 1351, 1409, + 1410, 1411, 1358, 1413, 1376, 2275, 1376, 1363, 1362, 1418, - 1369, 2212, 1408, 1374, 1367, 1368, 1377, 1359, 1365, 1367, - 1421, 1380, 1379, 1371, 1425, 1375, 1379, 1376, 2212, 1429, - 1378, 1431, 1373, 2212, 1376, 1386, 1430, 1378, 1393, 1380, - 1386, 1386, 2212, 1390, 1385, 1384, 1444, 1397, 2212, 1441, - 1392, 1389, 2212, 1403, 1405, 1407, 1452, 1405, 1402, 1410, - 1404, 1457, 1398, 1400, 1408, 1398, 1414, 1415, 1409, 1425, - 2212, 1415, 1467, 1426, 2212, 1410, 1417, 1466, 2212, 1428, - 2212, 1468, 1430, 1431, 1416, 1417, 1425, 1479, 1475, 1430, - 1438, 1429, 1436, 2212, 1433, 1438, 1436, 1488, 1489, 1446, - 1433, 2212, 1448, 1449, 1450, 1451, 2212, 1441, 1453, 1454, + 2275, 1359, 1377, 1426, 1396, 1380, 2275, 2275, 1371, 1382, + 1431, 2275, 2275, 2275, 1377, 1382, 1380, 1430, 1388, 1393, + 1384, 1382, 1383, 2275, 1441, 1387, 1438, 1381, 1386, 1447, + 1395, 1405, 1406, 2275, 1452, 1405, 2275, 1406, 2275, 1398, + 1413, 1401, 2275, 1411, 1412, 1413, 1462, 1420, 2275, 1459, + 1425, 1401, 1419, 1420, 1429, 1411, 1417, 1419, 1473, 1432, + 1431, 1423, 1477, 1427, 1431, 1436, 1429, 2275, 1482, 1431, + 1484, 1426, 2275, 1429, 1439, 1483, 1431, 1446, 1433, 1439, + 1439, 1450, 2275, 1444, 1439, 1438, 1498, 1451, 2275, 1495, + 1446, 1443, 2275, 1457, 1459, 1461, 1506, 1459, 1456, 1464, - 1499, 1441, 1449, 1443, 1451, 1464, 2212, 1441, 1501, 1462, - 1466, 1451, 1451, 1466, 1459, 1458, 1469, 1456, 2212, 1461, - 1517, 1465, 1477, 1468, 1477, 1479, 1483, 2212, 2212, 1465, - 1525, 1468, 1527, 1469, 1529, 1487, 1531, 1532, 2212, 1528, - 1490, 1487, 1492, 1479, 1538, 1481, 1486, 1477, 1542, 1495, - 1496, 1486, 1503, 1502, 1543, 1505, 2212, 1550, 1507, 1508, - 1553, 1510, 1513, 1508, 2212, 1557, 2212, 1510, 2212, 1519, - 2212, 2212, 1501, 1561, 1508, 1563, 1506, 2212, 1525, 1566, - 1525, 2212, 1516, 1506, 1565, 1531, 1524, 1520, 1517, 2212, - 1517, 1519, 2212, 1524, 1534, 1527, 2212, 1528, 1522, 1534, + 1458, 2275, 1511, 1452, 1454, 1470, 1463, 1453, 1469, 1470, + 1464, 1480, 2275, 1470, 1522, 1481, 2275, 1465, 1472, 1526, + 1522, 2275, 1484, 2275, 1524, 1486, 1487, 1472, 1473, 1481, + 1535, 1531, 1486, 1498, 1495, 1486, 1493, 2275, 1490, 1495, + 1493, 1545, 1546, 1503, 1490, 2275, 1505, 1506, 1507, 1508, + 2275, 1498, 1510, 1555, 1512, 1557, 1499, 1507, 1501, 1509, + 1522, 2275, 1499, 1559, 1520, 2275, 1524, 1509, 1509, 1524, + 1517, 1516, 1527, 1514, 2275, 1519, 1575, 1533, 1524, 1536, + 1527, 1536, 1538, 1542, 2275, 2275, 1524, 1584, 1527, 1586, + 1528, 1588, 1546, 1590, 2275, 1591, 2275, 1587, 1549, 1546, - 2212, 1530, 2212, 1540, 1533, 2212, 1535, 1543, 1588, 1529, - 1531, 1528, 1552, 1545, 1536, 1590, 1537, 1545, 1554, 1555, - 1556, 1549, 1544, 1545, 1549, 1561, 1606, 2212, 1552, 1564, - 1609, 1558, 1557, 1564, 1551, 1566, 1571, 1616, 1617, 1618, - 1575, 1620, 1621, 1571, 1565, 2212, 1581, 1625, 2212, 1582, - 1584, 1575, 1589, 1585, 1578, 2212, 2212, 2212, 1632, 2212, - 2212, 1589, 1634, 1595, 2212, 1636, 1637, 1592, 1591, 1592, - 1582, 2212, 1637, 2212, 1584, 2212, 2212, 1644, 1586, 1602, - 1647, 1608, 1605, 2212, 1646, 1595, 2212, 1607, 1600, 1655, - 1597, 1599, 1614, 1599, 2212, 1612, 1661, 1662, 1610, 1612, + 1551, 1538, 1597, 1540, 1545, 1536, 1601, 1554, 1555, 1545, + 1562, 1561, 1602, 1564, 2275, 1561, 1610, 1567, 1568, 1613, + 1570, 1573, 1568, 2275, 1617, 2275, 1570, 2275, 1579, 2275, + 2275, 1561, 1621, 1568, 1623, 1566, 2275, 1585, 1626, 1585, + 2275, 1576, 1566, 1625, 1591, 1584, 1580, 1577, 1582, 2275, + 1578, 1580, 2275, 1585, 1595, 1588, 2275, 1589, 1583, 1595, + 2275, 1591, 2275, 1601, 1594, 2275, 1596, 1604, 1649, 1590, + 1592, 1589, 1613, 1606, 1609, 1598, 1652, 1599, 1607, 1616, + 1617, 1618, 1611, 1606, 1607, 1611, 1623, 1668, 2275, 1614, + 1626, 1671, 1620, 1619, 1674, 1627, 1614, 1629, 1634, 1679, - 2212, 2212, 1606, 1622, 1667, 1668, 2212, 2212, 2212, 1674, - 1679, 1684, 1689, 1694, 1699, 1704, 1707, 1681, 1686, 1688, - 1701 + 1680, 1681, 1638, 1683, 1684, 1634, 1628, 2275, 1644, 1688, + 2275, 1645, 1647, 2275, 1638, 1652, 1648, 1641, 2275, 2275, + 2275, 1695, 2275, 2275, 1652, 1697, 1658, 2275, 1699, 1700, + 1655, 1654, 1655, 1645, 2275, 1700, 2275, 1647, 2275, 2275, + 1707, 1649, 1665, 1710, 1671, 1668, 2275, 1709, 1658, 2275, + 1670, 1663, 1718, 1660, 1662, 1677, 1662, 2275, 1675, 1724, + 1725, 1673, 1675, 2275, 2275, 1669, 1685, 1730, 1731, 2275, + 2275, 2275, 1737, 1742, 1747, 1752, 1757, 1762, 1767, 1770, + 1744, 1749, 1751, 1764 } ; -static const flex_int16_t yy_def[1822] = +static const flex_int16_t yy_def[1885] = { 0, - 1810, 1810, 1811, 1811, 1810, 1810, 1810, 1810, 1810, 1810, - 1809, 1809, 1809, 1809, 1809, 1812, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1813, - 1809, 1809, 1809, 1814, 15, 1809, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1815, 45, 45, + 1873, 1873, 1874, 1874, 1873, 1873, 1873, 1873, 1873, 1873, + 1872, 1872, 1872, 1872, 1872, 1875, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1876, + 1872, 1872, 1872, 1877, 15, 1872, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1878, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1812, 1809, - 1809, 1809, 1809, 1809, 1809, 1816, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1813, 1809, 1814, + 45, 45, 45, 45, 45, 45, 45, 45, 1875, 1872, + 1872, 1872, 1872, 1872, 1872, 1879, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1876, 1872, 1877, - 1809, 1809, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1817, 45, 1815, 45, 45, + 1872, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1880, 45, 1878, 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, 1816, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1818, 45, 45, 45, 1809, 45, 45, 1809, + 45, 45, 45, 45, 45, 1879, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1881, 45, 45, 45, 1872, 45, - 45, 45, 45, 45, 45, 45, 45, 1817, 1809, 1815, + 45, 1872, 45, 45, 45, 45, 45, 45, 45, 1880, + 1872, 1878, 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, 1809, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1872, 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, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1819, 45, 45, 45, 45, 45, 1809, 45, - 45, 1809, 45, 1809, 45, 1815, 1809, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1882, 45, 45, + 45, 45, 45, 1872, 45, 45, 1872, 45, 1872, 45, + 1878, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 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, - 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1872, 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, 1809, 1809, - 1809, 1820, 45, 45, 45, 45, 45, 45, 1809, 45, - 45, 1809, 45, 1815, 45, 45, 45, 45, 45, 1809, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 1809, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 1809, - 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, 1809, 1809, 1809, 45, 1809, 45, 45, - 1809, 1821, 45, 45, 1809, 1809, 45, 1809, 45, 1809, - 45, 45, 45, 1809, 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, 1809, 45, 45, 45, 45, 45, 45, - 45, 45, 1809, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1809, 45, 45, 1809, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1809, 1809, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1872, 1872, 1872, 1883, + 45, 45, 45, 45, 45, 45, 1872, 45, 45, 1872, + 45, 1878, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 45, 1872, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1872, 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, 1809, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1809, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, - 45, 1809, 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, 1809, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1809, 1809, 45, 45, 45, - 45, 45, 45, 45, 1809, 1809, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 1872, 1872, 45, 1872, 45, + 45, 1872, 1884, 45, 45, 1872, 1872, 45, 1872, 45, + 1872, 45, 45, 45, 1872, 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, 1809, 45, 45, 45, 45, 45, 45, 45, - 45, 1809, 45, 45, 45, 45, 1809, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, + 45, 45, 45, 45, 45, 1872, 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1809, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1809, - 1809, 45, 45, 45, 1809, 45, 45, 45, 45, 1809, + 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1872, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, + 1872, 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, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1809, 45, 45, 1809, - 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, - 45, 45, 45, 45, 45, 1809, 45, 45, 45, 45, + 45, 1872, 45, 45, 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1809, 1809, 45, 1809, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1809, 45, 45, 45, 1809, 45, 45, 45, - - 45, 1809, 1809, 45, 1809, 45, 1809, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1809, 45, 45, 45, 45, 45, 1809, 1809, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, - 45, 45, 45, 45, 45, 1809, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 1809, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 1809, 45, 45, 45, 45, 45, 45, 1809, 45, - 1809, 45, 1809, 1809, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 1809, 45, 1809, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1809, 1809, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1809, 45, 1809, 1809, 45, - 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1809, 45, 45, 45, 45, 45, 45, 1809, 1809, 45, - 45, 1809, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 1809, 45, 1809, 45, 45, + 45, 45, 45, 1872, 1872, 45, 45, 45, 45, 45, + 45, 45, 1872, 1872, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1809, 45, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1872, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1809, 45, 45, 45, 45, 1809, 45, 45, 45, - 45, 1809, 1809, 45, 45, 45, 1809, 1809, 1809, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, - 1809, 45, 1809, 45, 45, 45, 1809, 45, 45, 45, - 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, - 45, 45, 45, 1809, 45, 45, 45, 45, 45, 45, - 45, 45, 1809, 45, 45, 45, 45, 45, 1809, 45, - 45, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1809, 45, 45, 45, 1809, 45, 45, 45, 1809, 45, - 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1809, 45, 45, 45, 45, 45, 45, - 45, 1809, 45, 45, 45, 45, 1809, 45, 45, 45, + 45, 45, 45, 1872, 1872, 45, 45, 45, 1872, 45, + 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 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, 1872, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1872, 45, - 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 1809, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1809, 45, 45, 45, - 45, 45, 45, 45, 1809, 45, 1809, 45, 1809, 45, - 1809, 1809, 45, 45, 45, 45, 45, 1809, 45, 45, - 45, 1809, 45, 45, 45, 45, 45, 45, 45, 1809, - 45, 45, 1809, 45, 45, 45, 1809, 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, 1872, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 1872, 1872, 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, 1872, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1809, 45, 1809, 45, 45, 1809, 45, 45, 45, 45, + 45, 45, 45, 1872, 1872, 45, 1872, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1809, 45, 45, + 45, 45, 45, 1872, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 1872, 1872, 45, 1872, 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1809, 45, 45, 1809, 45, - 45, 45, 45, 45, 45, 1809, 1809, 1809, 45, 1809, - 1809, 45, 45, 45, 1809, 45, 45, 45, 45, 45, - 45, 1809, 45, 1809, 45, 1809, 1809, 45, 45, 45, - 45, 45, 45, 1809, 45, 45, 1809, 45, 45, 45, - 45, 45, 45, 45, 1809, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, + 1872, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1872, 45, 45, 45, 45, 45, 45, 1872, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, - 1809, 1809, 45, 45, 45, 45, 1809, 1809, 0, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809 + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 1872, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 1872, 45, 1872, 45, 1872, 1872, + 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, + 1872, 45, 1872, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1872, + 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 1872, 1872, 45, 1872, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1872, + 45, 45, 45, 45, 45, 45, 45, 1872, 1872, 45, + 45, 1872, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 45, 45, 1872, 45, 1872, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1872, 45, 45, 45, 1872, + 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, 1872, 45, 45, 45, 45, + + 1872, 45, 45, 45, 45, 45, 1872, 1872, 45, 45, + 45, 1872, 1872, 1872, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 45, 1872, 45, 1872, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 1872, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 1872, 45, + 45, 45, 1872, 45, 45, 45, 45, 45, 45, 45, + + 45, 1872, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1872, 45, 45, 45, 1872, 45, 45, 45, + 45, 1872, 45, 1872, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 45, 1872, 45, 45, 45, 45, + 1872, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1872, 45, 45, 45, 1872, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 1872, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 1872, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1872, 45, 45, 45, 45, 45, + 45, 45, 45, 1872, 45, 1872, 45, 1872, 45, 1872, + 1872, 45, 45, 45, 45, 45, 1872, 45, 45, 45, + 1872, 45, 45, 45, 45, 45, 45, 45, 45, 1872, + 45, 45, 1872, 45, 45, 45, 1872, 45, 45, 45, + 1872, 45, 1872, 45, 45, 1872, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1872, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, + 1872, 45, 45, 1872, 45, 45, 45, 45, 1872, 1872, + 1872, 45, 1872, 1872, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 45, 1872, 45, 1872, 45, 1872, 1872, + 45, 45, 45, 45, 45, 45, 1872, 45, 45, 1872, + 45, 45, 45, 45, 45, 45, 45, 1872, 45, 45, + 45, 45, 45, 1872, 1872, 45, 45, 45, 45, 1872, + 1872, 0, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872 } ; -static const flex_int16_t yy_nxt[2286] = +static const flex_int16_t yy_nxt[2349] = { 0, - 1809, 13, 14, 13, 1809, 15, 16, 1809, 17, 18, + 1872, 13, 14, 13, 1872, 15, 16, 1872, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 85, 757, 37, 14, 37, 86, 25, 26, 38, 101, - 1809, 27, 37, 14, 37, 42, 28, 42, 38, 91, - 92, 29, 199, 30, 13, 14, 13, 90, 91, 25, + 85, 772, 37, 14, 37, 86, 25, 26, 38, 101, + 1872, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 92, 29, 201, 30, 13, 14, 13, 90, 91, 25, 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, - 758, 13, 14, 13, 33, 40, 102, 91, 92, 199, + 773, 13, 14, 13, 33, 40, 102, 91, 92, 201, 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 90, 39, 103, 25, 26, 13, 14, 13, 27, 39, 42, 107, 42, 28, 42, 108, 42, 41, 29, 111, 30, 114, 115, 93, 137, - 41, 25, 31, 103, 138, 455, 88, 139, 88, 107, + 41, 25, 31, 103, 138, 463, 88, 139, 88, 107, 32, 89, 89, 89, 89, 89, 33, 111, 108, 114, - 846, 115, 456, 34, 35, 44, 44, 44, 45, 45, + 847, 115, 464, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 48, 49, 50, 51, 45, 52, 53, 54, 45, 45, 45, @@ -1386,140 +1405,140 @@ static const flex_int16_t yy_nxt[2286] = 81, 81, 81, 81, 81, 80, 103, 83, 83, 83, 83, 83, 107, 82, 84, 84, 84, 84, 84, 80, 82, 83, 83, 83, 83, 83, 135, 82, 110, 132, - 112, 121, 119, 136, 82, 107, 82, 166, 120, 133, - 113, 167, 122, 82, 140, 123, 134, 124, 235, 125, - 82, 185, 186, 112, 141, 204, 142, 82, 45, 847, - 45, 45, 45, 45, 236, 45, 45, 45, 113, 117, - 144, 145, 45, 45, 146, 45, 45, 185, 186, 185, + 112, 121, 119, 136, 82, 107, 82, 167, 120, 133, + 113, 168, 122, 82, 140, 123, 134, 124, 237, 125, + 82, 187, 188, 112, 141, 216, 142, 82, 45, 217, + 45, 45, 45, 45, 238, 45, 45, 45, 113, 117, + 144, 145, 45, 45, 146, 45, 45, 187, 188, 187, - 147, 45, 204, 45, 45, 45, 45, 45, 45, 45, + 147, 45, 101, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 126, 188, 45, 127, 128, 148, - 45, 129, 130, 149, 45, 111, 848, 150, 294, 187, - 187, 200, 45, 849, 131, 186, 45, 155, 45, 118, - 101, 114, 295, 151, 152, 156, 153, 157, 154, 175, - 176, 160, 158, 159, 161, 162, 168, 187, 190, 112, - 169, 189, 201, 170, 114, 163, 194, 203, 164, 113, - 171, 172, 198, 205, 181, 173, 174, 102, 850, 182, - 851, 214, 177, 206, 178, 215, 224, 225, 179, 84, + 45, 45, 45, 45, 126, 190, 45, 127, 128, 188, + 45, 129, 130, 148, 45, 111, 200, 149, 298, 102, + 848, 150, 45, 189, 131, 114, 45, 189, 45, 118, + 209, 156, 299, 151, 153, 191, 154, 152, 155, 157, + 161, 158, 200, 162, 163, 169, 159, 160, 114, 170, + 849, 189, 171, 209, 164, 192, 196, 165, 183, 172, + 173, 176, 177, 184, 174, 175, 84, 84, 84, 84, + 84, 112, 80, 205, 81, 81, 81, 81, 81, 82, - 84, 84, 84, 84, 194, 203, 226, 113, 198, 233, - 411, 205, 82, 80, 180, 81, 81, 81, 81, 81, - 206, 307, 234, 412, 88, 207, 88, 244, 82, 89, - 89, 89, 89, 89, 80, 82, 83, 83, 83, 83, - 83, 84, 84, 84, 84, 84, 100, 307, 207, 82, - 194, 82, 204, 100, 82, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 217, 230, 211, 231, 253, - 203, 245, 82, 239, 218, 219, 240, 82, 212, 299, - 241, 308, 275, 100, 322, 232, 276, 100, 307, 422, - 254, 100, 266, 267, 268, 306, 306, 271, 260, 100, + 202, 113, 850, 88, 196, 88, 206, 82, 89, 89, + 89, 89, 89, 232, 178, 233, 179, 750, 751, 180, + 181, 205, 82, 89, 89, 89, 89, 89, 246, 113, + 82, 203, 234, 206, 207, 80, 182, 83, 83, 83, + 83, 83, 84, 84, 84, 84, 84, 100, 208, 196, + 82, 854, 205, 855, 100, 82, 89, 89, 89, 89, + 89, 219, 207, 235, 226, 227, 213, 206, 255, 856, + 220, 221, 247, 82, 228, 208, 236, 214, 82, 241, + 263, 269, 242, 857, 100, 311, 243, 275, 100, 256, + 276, 277, 100, 313, 303, 279, 270, 271, 272, 280, - 272, 273, 308, 100, 308, 100, 193, 210, 210, 210, - 210, 210, 278, 314, 310, 321, 210, 210, 210, 210, - 210, 210, 288, 306, 309, 311, 289, 317, 323, 318, - 290, 314, 325, 384, 321, 372, 314, 852, 321, 210, - 210, 210, 210, 210, 210, 433, 464, 279, 280, 281, - 402, 323, 465, 403, 328, 317, 318, 380, 282, 325, - 283, 429, 284, 285, 441, 286, 326, 326, 326, 326, - 326, 429, 853, 335, 433, 326, 326, 326, 326, 326, - 326, 336, 438, 385, 429, 433, 337, 338, 373, 518, - 807, 374, 441, 522, 430, 435, 436, 523, 326, 326, + 100, 282, 312, 312, 100, 311, 100, 195, 212, 212, + 212, 212, 212, 311, 377, 390, 313, 212, 212, 212, + 212, 212, 212, 292, 858, 313, 859, 293, 312, 315, + 319, 294, 322, 314, 323, 326, 283, 284, 285, 328, + 212, 212, 212, 212, 212, 212, 330, 286, 316, 287, + 860, 288, 289, 319, 290, 340, 319, 326, 326, 418, + 322, 323, 328, 341, 441, 391, 327, 378, 342, 343, + 379, 429, 419, 330, 331, 331, 331, 331, 331, 333, + 386, 437, 437, 331, 331, 331, 331, 331, 331, 409, + 443, 444, 410, 441, 446, 449, 466, 472, 861, 445, - 326, 326, 326, 326, 437, 438, 444, 444, 444, 444, - 444, 736, 737, 807, 445, 444, 444, 444, 444, 444, - 444, 458, 479, 494, 495, 496, 459, 480, 501, 497, - 441, 563, 531, 536, 502, 505, 532, 537, 444, 444, - 444, 444, 444, 444, 563, 506, 552, 519, 558, 553, - 571, 604, 572, 559, 586, 594, 605, 626, 507, 563, - 691, 692, 587, 854, 588, 589, 590, 627, 595, 661, - 855, 687, 573, 856, 662, 481, 693, 571, 806, 572, - 482, 45, 45, 45, 45, 45, 794, 691, 857, 692, - 45, 45, 45, 45, 45, 45, 767, 858, 795, 813, + 441, 467, 514, 473, 437, 438, 331, 331, 331, 331, + 331, 331, 515, 487, 502, 503, 504, 446, 488, 449, + 505, 528, 637, 449, 452, 452, 452, 452, 452, 453, + 605, 862, 638, 452, 452, 452, 452, 452, 452, 509, + 532, 574, 541, 606, 533, 510, 542, 516, 546, 569, + 562, 705, 547, 563, 570, 574, 452, 452, 452, 452, + 452, 452, 582, 615, 583, 597, 489, 674, 616, 574, + 706, 490, 675, 598, 810, 599, 600, 601, 705, 529, + 701, 823, 863, 584, 864, 707, 811, 824, 865, 582, + 866, 583, 45, 45, 45, 45, 45, 867, 706, 868, - 814, 768, 815, 834, 859, 860, 806, 835, 861, 863, - 864, 862, 865, 45, 45, 45, 45, 45, 45, 866, - 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, - 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, - 769, 887, 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 898, 899, 900, 901, 903, 904, 907, 908, - 909, 911, 902, 912, 905, 913, 910, 914, 906, 915, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, + 869, 45, 45, 45, 45, 45, 45, 783, 870, 823, + 824, 851, 784, 830, 831, 852, 832, 871, 872, 853, + 873, 874, 875, 876, 45, 45, 45, 45, 45, 45, + 877, 878, 879, 881, 882, 880, 883, 884, 885, 886, + 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 897, 785, 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, + 916, 917, 918, 919, 920, 921, 923, 924, 927, 928, + 929, 931, 922, 932, 925, 933, 930, 934, 926, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, - 946, 947, 948, 949, 950, 951, 924, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, - 966, 962, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 986, 987, 988, 985, 989, 990, 991, 992, 993, 994, + 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, 945, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 983, 985, + 986, 987, 988, 984, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, - 1015, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, - 1026, 1027, 1016, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, + 1005, 1006, 1007, 1009, 1010, 1011, 1008, 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, 1041, 1042, 1043, 1044, 1045, - 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, - 1055, 1056, 1034, 1057, 1058, 1033, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, - 1073, 1076, 1077, 1078, 1079, 1074, 1080, 1081, 1082, 1083, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, - 1094, 1095, 1096, 1098, 1099, 1100, 1101, 1102, 1103, 1104, - 1105, 1106, 1107, 1097, 1108, 1109, 1110, 1111, 1112, 1113, + 1046, 1047, 1048, 1049, 1050, 1051, 1040, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, + 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1059, 1082, 1083, + 1058, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1102, 1103, 1104, + 1105, 1100, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1075, 1132, - 1133, 1134, 1135, 1136, 1137, 1139, 1138, 1140, 1141, 1142, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1124, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, - 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1137, 1138, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1179, 1181, 1182, - 1183, 1178, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, - 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 1180, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1157, 1101, 1158, 1159, 1160, 1161, 1162, + 1163, 1164, 1165, 1166, 1168, 1167, 1169, 1170, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, + 1193, 1166, 1167, 1194, 1195, 1196, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1209, 1211, 1212, + 1213, 1208, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, - 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1237, - 1260, 1261, 1262, 1263, 1264, 1238, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, - 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, - 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1308, 1309, - 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1328, 1329, 1330, - 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, + 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, + 1252, 1210, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, + 1291, 1292, 1270, 1293, 1294, 1295, 1296, 1297, 1271, 1298, + 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, + 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, + 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1323, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, - 1307, 1360, 1361, 1362, 1363, 1364, 1366, 1367, 1368, 1369, - 1327, 1370, 1371, 1365, 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, 1412, 1413, 1414, 1415, 1416, 1417, - 1418, 1419, 1420, 1421, 1399, 1422, 1423, 1424, 1425, 1426, - 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, + 1339, 1340, 1341, 1342, 1344, 1345, 1346, 1347, 1348, 1349, + 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, + 1360, 1361, 1362, 1363, 1365, 1366, 1367, 1368, 1369, 1370, + 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, + 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1360, 1389, + 1390, 1391, 1392, 1393, 1394, 1395, 1343, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1404, 1405, 1406, 1364, 1407, 1408, + 1409, 1403, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, + 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, - 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, 1470, 1471, 1473, 1474, 1475, 1476, 1477, - 1478, 1479, 1480, 1481, 1482, 1472, 1483, 1484, 1485, 1488, - 1460, 1486, 1487, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 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, 1440, 1463, 1464, 1465, 1466, + 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 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, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, - 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, - 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1535, 1536, 1537, + 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, + 1517, 1528, 1529, 1530, 1531, 1505, 1532, 1533, 1534, 1536, - 1538, 1534, 1539, 1540, 1541, 1542, 1543, 1489, 1544, 1545, - 1546, 1520, 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, 1574, - 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, - 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, - 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, + 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, 1574, 1575, 1576, + 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1585, 1586, 1587, + 1588, 1584, 1589, 1590, 1591, 1592, 1535, 1593, 1594, 1595, + 1569, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, @@ -1540,96 +1559,103 @@ static const flex_int16_t yy_nxt[2286] = 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, - 1785, 1786, 1787, 1788, 1790, 1789, 1791, 1792, 1793, 1794, + 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, - 1805, 1806, 1807, 1808, 12, 12, 12, 12, 12, 36, - 36, 36, 36, 36, 79, 313, 79, 79, 79, 98, - 432, 98, 562, 98, 100, 100, 100, 100, 100, 116, + 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, + 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, + 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, - 116, 116, 116, 116, 184, 100, 184, 184, 184, 208, - 208, 208, 845, 844, 843, 842, 841, 840, 839, 838, - 837, 836, 833, 832, 831, 830, 829, 828, 827, 826, - 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, - 812, 811, 810, 809, 808, 805, 804, 803, 802, 801, - 800, 799, 798, 797, 796, 793, 792, 791, 790, 789, - 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, - 778, 777, 776, 775, 774, 773, 772, 771, 770, 766, - 765, 764, 763, 762, 761, 760, 759, 756, 755, 754, - 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, + 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, + 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1853, 1852, 1854, + 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, + 1865, 1866, 1867, 1868, 1869, 1870, 1871, 12, 12, 12, + 12, 12, 36, 36, 36, 36, 36, 79, 318, 79, + 79, 79, 98, 440, 98, 573, 98, 100, 100, 100, + 100, 100, 116, 116, 116, 116, 116, 186, 100, 186, + 186, 186, 210, 210, 210, 846, 845, 844, 843, 842, + 841, 840, 839, 838, 837, 836, 835, 834, 833, 829, + 828, 827, 826, 825, 822, 821, 820, 819, 818, 817, - 743, 742, 741, 740, 739, 738, 735, 734, 733, 732, - 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, - 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, - 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, - 701, 700, 699, 698, 697, 696, 695, 694, 690, 689, - 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, - 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, - 668, 667, 666, 665, 664, 663, 660, 659, 658, 657, - 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, - 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, + 816, 815, 814, 813, 812, 809, 808, 807, 806, 805, + 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, + 794, 793, 792, 791, 790, 789, 788, 787, 786, 782, + 781, 780, 779, 778, 777, 776, 775, 774, 771, 770, + 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, + 759, 758, 757, 756, 755, 754, 753, 752, 749, 748, + 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, + 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, + 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, + 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, - 636, 635, 634, 633, 632, 631, 630, 629, 628, 625, - 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, - 614, 613, 612, 611, 610, 609, 608, 607, 606, 603, - 602, 601, 600, 599, 598, 597, 596, 593, 592, 591, - 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, - 575, 574, 570, 569, 568, 567, 566, 565, 564, 561, - 560, 557, 556, 555, 554, 551, 550, 549, 548, 547, - 546, 545, 544, 543, 542, 541, 540, 539, 538, 535, - 534, 533, 530, 529, 528, 527, 526, 525, 524, 521, - 520, 517, 516, 515, 514, 513, 512, 511, 510, 509, + 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, + 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, + 684, 683, 682, 681, 680, 679, 678, 677, 676, 673, + 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, + 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, + 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, + 642, 641, 640, 639, 636, 635, 634, 633, 632, 631, + 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, + 620, 619, 618, 617, 614, 613, 612, 611, 610, 609, + 608, 607, 604, 603, 602, 596, 595, 594, 593, 592, - 508, 504, 503, 500, 499, 498, 493, 492, 491, 490, - 489, 488, 487, 486, 485, 484, 483, 478, 477, 476, - 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, - 463, 462, 461, 460, 457, 454, 453, 452, 451, 450, - 449, 448, 447, 446, 443, 442, 440, 439, 434, 431, - 428, 427, 426, 425, 424, 423, 421, 420, 419, 418, - 417, 416, 415, 414, 413, 410, 409, 408, 407, 406, - 405, 404, 401, 400, 399, 398, 397, 396, 395, 394, - 393, 392, 391, 390, 389, 388, 387, 386, 383, 382, - 381, 379, 378, 377, 376, 375, 371, 370, 369, 368, + 591, 590, 589, 588, 587, 586, 585, 581, 580, 579, + 578, 577, 576, 575, 572, 571, 568, 567, 566, 565, + 564, 561, 560, 559, 558, 557, 556, 555, 554, 553, + 552, 551, 550, 549, 548, 545, 544, 543, 540, 539, + 538, 537, 536, 535, 534, 531, 530, 527, 526, 525, + 524, 523, 522, 521, 520, 519, 518, 517, 513, 512, + 511, 508, 507, 506, 501, 500, 499, 498, 497, 496, + 495, 494, 493, 492, 491, 486, 485, 484, 483, 482, + 481, 480, 479, 478, 477, 476, 475, 474, 471, 470, + 469, 468, 465, 462, 461, 460, 459, 458, 457, 456, - 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, - 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, - 347, 346, 345, 344, 343, 342, 341, 340, 339, 334, - 333, 332, 331, 330, 329, 327, 209, 324, 322, 320, - 319, 316, 315, 312, 305, 304, 303, 302, 301, 300, - 298, 297, 296, 293, 292, 291, 287, 277, 274, 270, - 269, 265, 264, 263, 262, 261, 259, 258, 257, 256, - 255, 252, 251, 250, 249, 248, 247, 246, 243, 242, - 238, 237, 229, 228, 227, 223, 222, 221, 220, 216, - 213, 209, 202, 197, 196, 195, 192, 191, 183, 165, + 455, 454, 451, 450, 448, 447, 442, 439, 436, 435, + 434, 433, 432, 431, 430, 428, 427, 426, 425, 424, + 423, 422, 421, 420, 417, 416, 415, 414, 413, 412, + 411, 408, 407, 406, 405, 404, 403, 402, 401, 400, + 399, 398, 397, 396, 395, 394, 393, 392, 389, 388, + 387, 385, 384, 383, 382, 381, 380, 376, 375, 374, + 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, + 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, + 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, + 339, 338, 337, 336, 335, 334, 332, 211, 329, 327, - 143, 106, 105, 104, 43, 99, 97, 96, 87, 43, - 1809, 11, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809 + 325, 324, 321, 320, 317, 310, 309, 308, 307, 306, + 305, 304, 302, 301, 300, 297, 296, 295, 291, 281, + 278, 274, 273, 268, 267, 266, 265, 264, 262, 261, + 260, 259, 258, 257, 254, 253, 252, 251, 250, 249, + 248, 245, 244, 240, 239, 231, 230, 229, 225, 224, + 223, 222, 218, 215, 211, 204, 199, 198, 197, 194, + 193, 185, 166, 143, 106, 105, 104, 43, 99, 97, + 96, 87, 43, 1872, 11, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872 } ; -static const flex_int16_t yy_chk[2286] = +static const flex_int16_t yy_chk[2349] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 641, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 653, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 108, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 641, 8, 8, 8, 1, 8, 44, 27, 28, 108, + 653, 8, 8, 8, 1, 8, 44, 27, 28, 108, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 47, 2, 2, 10, 10, 10, 2, 6, 37, 51, 37, 2, 42, 52, 42, 9, 2, 54, 2, 56, 57, 31, 65, - 10, 2, 2, 47, 65, 338, 25, 65, 25, 51, + 10, 2, 2, 47, 65, 343, 25, 65, 25, 51, 2, 25, 25, 25, 25, 25, 2, 54, 52, 56, - 729, 57, 338, 2, 2, 15, 15, 15, 15, 15, + 727, 57, 343, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1643,228 +1669,235 @@ static const flex_int16_t yy_chk[2286] = 19, 22, 22, 22, 22, 22, 64, 20, 53, 62, 55, 60, 59, 64, 22, 63, 17, 74, 59, 62, 55, 74, 60, 19, 66, 60, 63, 60, 134, 60, - 20, 90, 91, 55, 66, 112, 66, 22, 45, 730, + 20, 90, 91, 55, 66, 121, 66, 22, 45, 121, 45, 45, 45, 45, 134, 45, 45, 45, 55, 58, 68, 68, 45, 45, 68, 45, 58, 90, 91, 93, - 68, 45, 112, 45, 45, 45, 45, 45, 45, 45, + 68, 45, 100, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 61, 93, 58, 61, 61, 69, - 58, 61, 61, 69, 58, 70, 731, 69, 173, 92, - 95, 109, 58, 732, 61, 94, 58, 71, 58, 58, - 100, 77, 173, 69, 70, 71, 70, 71, 70, 76, - 76, 72, 71, 71, 72, 72, 75, 92, 95, 76, - 75, 94, 109, 75, 77, 72, 103, 111, 72, 76, - 75, 75, 107, 113, 77, 75, 75, 100, 733, 77, - 734, 121, 76, 114, 76, 121, 128, 128, 76, 80, + 45, 45, 45, 45, 61, 93, 58, 61, 61, 94, + 58, 61, 61, 69, 58, 70, 107, 69, 174, 100, + 728, 69, 58, 92, 61, 77, 58, 95, 58, 58, + 115, 71, 174, 69, 70, 94, 70, 69, 70, 71, + 72, 71, 107, 72, 72, 75, 71, 71, 77, 75, + 729, 92, 75, 115, 72, 95, 103, 72, 77, 75, + 75, 76, 76, 77, 75, 75, 80, 80, 80, 80, + 80, 76, 81, 111, 81, 81, 81, 81, 81, 80, - 80, 80, 80, 80, 103, 111, 128, 76, 107, 133, - 289, 113, 80, 81, 76, 81, 81, 81, 81, 81, - 114, 186, 133, 289, 82, 115, 82, 140, 81, 82, - 82, 82, 82, 82, 83, 80, 83, 83, 83, 83, - 83, 84, 84, 84, 84, 84, 102, 186, 115, 83, - 119, 81, 177, 102, 84, 88, 88, 88, 88, 88, - 89, 89, 89, 89, 89, 123, 132, 119, 132, 148, - 154, 140, 83, 137, 123, 123, 137, 84, 119, 177, - 137, 187, 165, 102, 299, 132, 165, 102, 189, 299, - 148, 102, 160, 160, 160, 185, 188, 163, 154, 102, + 109, 76, 730, 82, 103, 82, 112, 81, 82, 82, + 82, 82, 82, 132, 76, 132, 76, 630, 630, 76, + 76, 111, 80, 88, 88, 88, 88, 88, 140, 76, + 81, 109, 132, 112, 113, 83, 76, 83, 83, 83, + 83, 83, 84, 84, 84, 84, 84, 102, 114, 119, + 83, 732, 155, 733, 102, 84, 89, 89, 89, 89, + 89, 123, 113, 133, 128, 128, 119, 178, 148, 734, + 123, 123, 140, 83, 128, 114, 133, 119, 84, 137, + 155, 161, 137, 735, 102, 187, 137, 164, 102, 148, + 164, 164, 102, 189, 178, 166, 161, 161, 161, 166, - 163, 163, 190, 102, 187, 102, 102, 118, 118, 118, - 118, 118, 167, 194, 189, 203, 118, 118, 118, 118, - 118, 118, 169, 185, 188, 190, 169, 198, 205, 199, - 169, 212, 207, 264, 260, 254, 194, 735, 203, 118, - 118, 118, 118, 118, 118, 314, 346, 167, 167, 167, - 281, 205, 346, 281, 212, 198, 199, 260, 167, 207, - 167, 306, 167, 167, 321, 167, 210, 210, 210, 210, - 210, 309, 736, 219, 314, 210, 210, 210, 210, 210, - 210, 219, 317, 264, 306, 328, 219, 219, 254, 392, - 692, 254, 321, 395, 309, 316, 316, 395, 210, 210, + 102, 168, 188, 191, 102, 190, 102, 102, 118, 118, + 118, 118, 118, 187, 256, 267, 189, 118, 118, 118, + 118, 118, 118, 170, 736, 192, 737, 170, 188, 191, + 196, 170, 200, 190, 201, 205, 168, 168, 168, 207, + 118, 118, 118, 118, 118, 118, 209, 168, 192, 168, + 738, 168, 168, 196, 168, 221, 214, 263, 205, 293, + 200, 201, 207, 221, 319, 267, 303, 256, 221, 221, + 256, 303, 293, 209, 212, 212, 212, 212, 212, 214, + 263, 311, 314, 212, 212, 212, 212, 212, 212, 285, + 321, 321, 285, 319, 322, 326, 346, 351, 740, 321, - 210, 210, 210, 210, 316, 317, 326, 326, 326, 326, - 326, 619, 619, 692, 328, 326, 326, 326, 326, 326, - 326, 341, 360, 372, 372, 372, 341, 360, 376, 372, - 380, 433, 403, 407, 376, 379, 403, 407, 326, 326, - 326, 326, 326, 326, 445, 379, 422, 392, 427, 422, - 443, 474, 443, 427, 460, 464, 474, 496, 380, 433, - 571, 572, 460, 737, 460, 460, 460, 496, 464, 533, - 738, 573, 445, 739, 533, 360, 573, 443, 691, 443, - 360, 444, 444, 444, 444, 444, 678, 571, 740, 572, - 444, 444, 444, 444, 444, 444, 651, 741, 678, 698, + 333, 346, 385, 351, 311, 314, 212, 212, 212, 212, + 212, 212, 385, 365, 377, 377, 377, 322, 365, 386, + 377, 399, 504, 326, 331, 331, 331, 331, 331, 333, + 472, 741, 504, 331, 331, 331, 331, 331, 331, 381, + 402, 441, 410, 472, 402, 381, 410, 386, 414, 435, + 429, 582, 414, 429, 435, 453, 331, 331, 331, 331, + 331, 331, 451, 482, 451, 468, 365, 543, 482, 441, + 583, 365, 543, 468, 691, 468, 468, 468, 582, 399, + 584, 705, 742, 453, 743, 584, 691, 706, 744, 451, + 745, 451, 452, 452, 452, 452, 452, 746, 583, 747, - 698, 651, 698, 717, 742, 743, 691, 717, 744, 745, - 746, 744, 747, 444, 444, 444, 444, 444, 444, 749, - 750, 751, 752, 753, 754, 755, 756, 758, 759, 760, - 761, 762, 763, 764, 765, 766, 768, 769, 770, 771, - 651, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 786, 793, 788, 795, 791, 796, 788, 797, - 798, 799, 800, 801, 802, 803, 804, 806, 807, 808, - 809, 810, 811, 813, 814, 815, 816, 817, 818, 819, - 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, + 748, 452, 452, 452, 452, 452, 452, 664, 749, 705, + 706, 731, 664, 712, 712, 731, 712, 750, 751, 731, + 752, 753, 754, 755, 452, 452, 452, 452, 452, 452, + 756, 757, 758, 759, 760, 758, 761, 763, 764, 765, + 766, 767, 768, 769, 770, 771, 773, 774, 775, 776, + 777, 664, 778, 779, 780, 781, 782, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, + 807, 808, 802, 809, 804, 811, 807, 812, 804, 813, + 814, 815, 816, 817, 818, 819, 820, 821, 823, 824, - 830, 831, 832, 833, 834, 835, 807, 836, 837, 838, - 839, 841, 842, 843, 844, 845, 846, 847, 848, 849, - 850, 846, 851, 852, 853, 854, 855, 858, 859, 860, - 861, 862, 863, 864, 867, 868, 869, 870, 871, 872, - 873, 874, 875, 872, 876, 877, 879, 881, 882, 883, - 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, - 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, - 904, 905, 906, 907, 908, 909, 910, 911, 912, 914, - 915, 916, 904, 917, 918, 919, 920, 921, 923, 924, - 925, 926, 928, 929, 930, 931, 932, 933, 934, 935, + 825, 826, 827, 828, 830, 831, 832, 833, 834, 835, + 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 852, 824, 853, 854, + 855, 856, 857, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 864, 869, 870, 871, 872, 873, 876, + 877, 878, 879, 880, 881, 882, 885, 886, 887, 888, + 889, 890, 891, 892, 893, 894, 891, 895, 896, 897, + 899, 901, 902, 903, 904, 905, 906, 907, 908, 909, + 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, + 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, - 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, - 946, 947, 924, 948, 950, 923, 951, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 962, 963, 964, 965, - 966, 967, 969, 970, 971, 966, 972, 973, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 992, 993, 994, 996, 997, 998, - 999, 1001, 1002, 988, 1003, 1004, 1005, 1006, 1007, 1008, - 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, - 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 966, 1028, - 1029, 1030, 1031, 1032, 1033, 1035, 1034, 1036, 1037, 1038, + 930, 931, 932, 934, 935, 936, 924, 937, 938, 939, + 940, 941, 942, 944, 945, 946, 947, 949, 950, 951, + 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 945, 969, 971, + 944, 972, 973, 974, 975, 976, 977, 978, 979, 980, + 981, 982, 984, 985, 986, 987, 988, 989, 991, 992, + 993, 988, 994, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, + 1012, 1013, 1016, 1017, 1018, 1020, 1021, 1022, 1023, 1025, + 1011, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1051, 1052, 1053, 1054, 1056, 1057, 1058, 1059, - 1060, 1061, 1033, 1034, 1062, 1063, 1064, 1065, 1066, 1067, - 1068, 1069, 1070, 1071, 1072, 1074, 1075, 1076, 1077, 1078, - 1079, 1075, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, - 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, - 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1106, 1107, 1108, - 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1118, 1119, - 1122, 1076, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, + 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1044, 1045, + 1046, 1047, 1048, 1049, 988, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1060, 1059, 1061, 1062, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, + 1075, 1076, 1077, 1078, 1079, 1081, 1082, 1083, 1084, 1085, + 1086, 1058, 1059, 1087, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1102, 1103, 1104, + 1105, 1101, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1134, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1150, 1151, - 1152, 1153, 1154, 1155, 1157, 1158, 1159, 1160, 1161, 1137, - 1162, 1163, 1164, 1165, 1166, 1138, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1176, 1178, 1180, 1181, 1182, 1183, 1184, - 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195, - 1196, 1198, 1199, 1200, 1201, 1204, 1206, 1208, 1209, 1210, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, + 1146, 1102, 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, + 1177, 1179, 1180, 1181, 1182, 1183, 1184, 1186, 1187, 1188, + 1189, 1190, 1166, 1191, 1192, 1193, 1194, 1195, 1167, 1196, + 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1206, 1208, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, - 1221, 1222, 1224, 1225, 1226, 1227, 1228, 1231, 1232, 1233, - 1234, 1235, 1236, 1237, 1238, 1240, 1241, 1242, 1243, 1244, - 1245, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, + 1221, 1222, 1223, 1225, 1226, 1227, 1229, 1230, 1231, 1232, + 1233, 1236, 1238, 1240, 1241, 1242, 1243, 1244, 1245, 1246, - 1256, 1257, 1258, 1259, 1260, 1262, 1263, 1264, 1265, 1266, - 1267, 1237, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, - 1218, 1276, 1277, 1279, 1280, 1281, 1282, 1283, 1284, 1285, - 1241, 1286, 1287, 1281, 1288, 1291, 1292, 1293, 1294, 1295, - 1296, 1297, 1298, 1299, 1300, 1301, 1303, 1304, 1305, 1306, - 1307, 1308, 1310, 1312, 1315, 1316, 1317, 1319, 1320, 1321, - 1322, 1323, 1325, 1327, 1328, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1345, - 1346, 1347, 1348, 1349, 1323, 1350, 1351, 1352, 1353, 1354, - 1355, 1357, 1360, 1362, 1363, 1364, 1365, 1366, 1367, 1368, + 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1256, 1257, + 1258, 1259, 1260, 1263, 1264, 1265, 1266, 1267, 1268, 1269, + 1270, 1271, 1273, 1274, 1275, 1276, 1277, 1278, 1280, 1281, + 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1293, 1294, 1296, 1297, 1298, 1299, 1300, 1270, 1301, + 1302, 1303, 1304, 1305, 1306, 1307, 1250, 1308, 1309, 1310, + 1311, 1313, 1314, 1315, 1316, 1317, 1318, 1274, 1319, 1320, + 1321, 1315, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, + 1332, 1333, 1334, 1335, 1336, 1337, 1339, 1340, 1341, 1342, + 1343, 1344, 1346, 1348, 1351, 1352, 1353, 1355, 1356, 1357, - 1369, 1370, 1372, 1373, 1374, 1375, 1376, 1377, 1380, 1381, - 1383, 1384, 1385, 1386, 1387, 1389, 1390, 1391, 1392, 1393, - 1394, 1395, 1397, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1416, - 1417, 1419, 1420, 1421, 1422, 1410, 1423, 1424, 1425, 1427, - 1399, 1426, 1426, 1428, 1429, 1430, 1431, 1432, 1433, 1434, - 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, - 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1453, 1454, 1455, - 1456, 1458, 1459, 1460, 1461, 1464, 1465, 1466, 1470, 1471, - 1472, 1473, 1474, 1475, 1476, 1477, 1479, 1480, 1481, 1482, + 1358, 1359, 1360, 1362, 1364, 1365, 1366, 1367, 1368, 1369, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, + 1381, 1383, 1384, 1385, 1386, 1360, 1387, 1388, 1389, 1390, + 1391, 1392, 1393, 1395, 1398, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 1420, 1421, 1423, 1424, 1425, 1426, 1427, 1429, + 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1440, 1441, + 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, + 1452, 1453, 1454, 1455, 1457, 1458, 1459, 1461, 1462, 1463, + 1451, 1464, 1465, 1466, 1467, 1440, 1468, 1468, 1469, 1470, - 1483, 1479, 1484, 1485, 1486, 1487, 1489, 1427, 1490, 1492, - 1494, 1460, 1495, 1496, 1498, 1499, 1500, 1501, 1503, 1504, - 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, - 1515, 1516, 1517, 1518, 1520, 1521, 1522, 1523, 1525, 1526, - 1527, 1528, 1529, 1530, 1531, 1532, 1534, 1535, 1536, 1537, - 1538, 1540, 1541, 1542, 1544, 1545, 1546, 1547, 1548, 1549, - 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, - 1560, 1562, 1563, 1564, 1566, 1567, 1568, 1570, 1572, 1573, - 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, - 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1593, 1594, 1595, + 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, + 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, + 1491, 1492, 1493, 1494, 1495, 1497, 1498, 1499, 1500, 1502, + 1503, 1504, 1505, 1506, 1509, 1510, 1511, 1515, 1516, 1517, + 1518, 1519, 1520, 1521, 1522, 1523, 1525, 1526, 1527, 1528, + 1529, 1525, 1530, 1531, 1532, 1533, 1469, 1535, 1536, 1538, + 1505, 1540, 1541, 1542, 1544, 1545, 1546, 1547, 1548, 1550, + 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, + 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1569, 1570, 1571, + 1572, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, - 1596, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, - 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, - 1618, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1630, - 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1640, 1641, - 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, - 1652, 1653, 1654, 1655, 1656, 1658, 1659, 1660, 1661, 1662, - 1663, 1664, 1666, 1668, 1670, 1673, 1674, 1675, 1676, 1677, - 1679, 1680, 1681, 1683, 1684, 1685, 1686, 1687, 1688, 1689, - 1691, 1692, 1694, 1695, 1696, 1698, 1699, 1700, 1702, 1704, - 1705, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, + 1584, 1585, 1586, 1587, 1588, 1590, 1591, 1592, 1594, 1595, + 1596, 1597, 1598, 1599, 1600, 1601, 1603, 1604, 1605, 1606, + 1607, 1608, 1609, 1610, 1611, 1612, 1614, 1615, 1616, 1618, + 1619, 1620, 1621, 1623, 1625, 1626, 1627, 1628, 1629, 1630, + 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1639, 1640, 1641, + 1642, 1643, 1644, 1645, 1647, 1648, 1649, 1650, 1652, 1653, + 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1663, 1664, + 1665, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1676, + 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1687, 1688, + 1689, 1690, 1691, 1692, 1693, 1694, 1696, 1698, 1699, 1700, - 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, - 1726, 1727, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, - 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1747, - 1748, 1750, 1751, 1752, 1753, 1754, 1755, 1759, 1762, 1763, - 1764, 1766, 1767, 1768, 1769, 1770, 1771, 1773, 1775, 1778, - 1779, 1780, 1781, 1782, 1783, 1782, 1785, 1786, 1788, 1789, - 1790, 1791, 1792, 1793, 1794, 1796, 1797, 1798, 1799, 1800, - 1803, 1804, 1805, 1806, 1810, 1810, 1810, 1810, 1810, 1811, - 1811, 1811, 1811, 1811, 1812, 1818, 1812, 1812, 1812, 1813, - 1819, 1813, 1820, 1813, 1814, 1814, 1814, 1814, 1814, 1815, + 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, + 1711, 1712, 1713, 1714, 1716, 1717, 1718, 1719, 1720, 1721, + 1722, 1723, 1725, 1727, 1729, 1732, 1733, 1734, 1735, 1736, + 1738, 1739, 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1748, + 1749, 1751, 1752, 1754, 1755, 1756, 1758, 1759, 1760, 1762, + 1764, 1765, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, + 1785, 1786, 1787, 1788, 1790, 1791, 1792, 1793, 1794, 1795, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, + 1806, 1807, 1809, 1810, 1812, 1813, 1815, 1816, 1817, 1818, - 1815, 1815, 1815, 1815, 1816, 1821, 1816, 1816, 1816, 1817, - 1817, 1817, 728, 727, 726, 724, 723, 722, 721, 720, - 719, 718, 716, 715, 714, 713, 712, 711, 710, 709, - 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, - 697, 696, 695, 694, 693, 690, 689, 688, 685, 684, - 683, 682, 681, 680, 679, 677, 676, 674, 673, 672, - 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, - 660, 659, 658, 657, 656, 655, 654, 653, 652, 650, - 649, 647, 646, 645, 644, 643, 642, 640, 639, 638, - 636, 635, 633, 632, 631, 630, 629, 628, 627, 626, + 1822, 1825, 1826, 1827, 1829, 1830, 1831, 1832, 1833, 1834, + 1836, 1838, 1841, 1842, 1843, 1844, 1845, 1846, 1845, 1848, + 1849, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1859, 1860, + 1861, 1862, 1863, 1866, 1867, 1868, 1869, 1873, 1873, 1873, + 1873, 1873, 1874, 1874, 1874, 1874, 1874, 1875, 1881, 1875, + 1875, 1875, 1876, 1882, 1876, 1883, 1876, 1877, 1877, 1877, + 1877, 1877, 1878, 1878, 1878, 1878, 1878, 1879, 1884, 1879, + 1879, 1879, 1880, 1880, 1880, 726, 725, 724, 723, 722, + 721, 720, 719, 718, 717, 716, 715, 714, 713, 711, + 710, 709, 708, 707, 704, 703, 702, 699, 698, 697, - 625, 624, 623, 622, 621, 620, 618, 617, 616, 615, - 614, 612, 611, 610, 609, 608, 607, 606, 605, 603, - 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, - 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, - 582, 581, 580, 579, 578, 577, 576, 575, 569, 567, - 564, 563, 561, 560, 559, 557, 553, 552, 551, 550, - 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, - 539, 538, 537, 536, 535, 534, 532, 531, 530, 529, - 528, 527, 526, 525, 524, 523, 522, 521, 519, 517, - 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, + 696, 695, 694, 693, 692, 690, 689, 687, 686, 685, + 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, + 673, 672, 671, 670, 669, 668, 667, 666, 665, 663, + 662, 660, 659, 658, 657, 656, 655, 654, 652, 651, + 650, 648, 647, 645, 644, 643, 642, 641, 640, 639, + 638, 637, 636, 635, 634, 633, 632, 631, 629, 628, + 627, 626, 625, 623, 622, 621, 620, 619, 618, 617, + 616, 614, 613, 612, 611, 610, 609, 608, 607, 606, + 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, + 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, - 506, 505, 503, 502, 501, 500, 499, 498, 497, 495, - 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, - 484, 483, 482, 481, 480, 478, 477, 476, 475, 473, - 472, 471, 470, 469, 468, 466, 465, 463, 462, 461, - 459, 457, 456, 455, 454, 453, 452, 451, 449, 448, - 447, 446, 441, 440, 438, 437, 436, 435, 434, 431, - 428, 426, 425, 424, 423, 421, 420, 419, 418, 417, - 416, 415, 414, 413, 412, 411, 410, 409, 408, 406, - 405, 404, 402, 401, 400, 399, 398, 397, 396, 394, - 393, 391, 390, 389, 388, 387, 386, 385, 384, 383, + 580, 578, 575, 574, 572, 571, 570, 568, 565, 563, + 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, + 552, 551, 550, 549, 548, 547, 546, 545, 544, 542, + 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, + 531, 529, 527, 526, 525, 524, 523, 522, 521, 520, + 519, 518, 517, 516, 515, 514, 512, 511, 510, 509, + 508, 507, 506, 505, 503, 502, 501, 500, 499, 498, + 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, + 486, 485, 484, 483, 481, 480, 479, 478, 477, 476, + 474, 473, 471, 470, 469, 467, 465, 464, 463, 462, - 382, 378, 377, 375, 374, 373, 371, 370, 369, 368, - 367, 366, 365, 364, 363, 362, 361, 359, 358, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 345, 344, 343, 342, 340, 337, 336, 335, 334, 333, - 332, 331, 330, 329, 325, 323, 320, 318, 315, 312, - 305, 304, 303, 302, 301, 300, 298, 297, 296, 295, - 294, 293, 292, 291, 290, 288, 287, 286, 285, 284, - 283, 282, 280, 279, 278, 277, 276, 275, 274, 273, - 272, 271, 270, 269, 268, 267, 266, 265, 263, 262, - 261, 259, 258, 257, 256, 255, 253, 252, 251, 250, + 461, 460, 459, 457, 456, 455, 454, 449, 448, 446, + 445, 444, 443, 442, 439, 436, 434, 433, 432, 431, + 430, 428, 427, 426, 425, 424, 423, 422, 421, 420, + 419, 418, 417, 416, 415, 413, 412, 411, 409, 408, + 407, 406, 405, 404, 403, 401, 400, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 389, 388, 384, 383, + 382, 380, 379, 378, 376, 375, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 364, 363, 362, 361, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 350, 349, + 348, 347, 345, 342, 341, 340, 339, 338, 337, 336, - 249, 248, 247, 246, 245, 243, 242, 241, 240, 239, - 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, - 228, 227, 226, 225, 224, 223, 222, 221, 220, 218, - 217, 216, 215, 214, 213, 211, 208, 206, 204, 202, - 201, 196, 195, 191, 183, 182, 181, 180, 179, 178, - 176, 175, 174, 172, 171, 170, 168, 166, 164, 162, - 161, 159, 158, 157, 156, 155, 153, 152, 151, 150, - 149, 147, 146, 145, 144, 143, 142, 141, 139, 138, - 136, 135, 131, 130, 129, 127, 126, 125, 124, 122, - 120, 116, 110, 106, 105, 104, 98, 97, 78, 73, + 335, 334, 330, 328, 325, 323, 320, 317, 310, 309, + 308, 307, 306, 305, 304, 302, 301, 300, 299, 298, + 297, 296, 295, 294, 292, 291, 290, 289, 288, 287, + 286, 284, 283, 282, 281, 280, 279, 278, 277, 276, + 275, 274, 273, 272, 271, 270, 269, 268, 266, 265, + 264, 262, 261, 260, 259, 258, 257, 255, 254, 253, + 252, 251, 250, 249, 248, 247, 245, 244, 243, 242, + 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, + 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, + 220, 219, 218, 217, 216, 215, 213, 210, 208, 206, - 67, 50, 49, 48, 43, 41, 39, 38, 24, 14, - 11, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, - 1809, 1809, 1809, 1809, 1809 + 204, 203, 198, 197, 193, 185, 184, 183, 182, 181, + 180, 179, 177, 176, 175, 173, 172, 171, 169, 167, + 165, 163, 162, 160, 159, 158, 157, 156, 154, 153, + 152, 151, 150, 149, 147, 146, 145, 144, 143, 142, + 141, 139, 138, 136, 135, 131, 130, 129, 127, 126, + 125, 124, 122, 120, 116, 110, 106, 105, 104, 98, + 97, 78, 73, 67, 50, 49, 48, 43, 41, 39, + 38, 24, 14, 11, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, + 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872 } ; static yy_state_type yy_last_accepting_state; @@ -1873,7 +1906,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[204] = +static const flex_int16_t yy_rule_linenum[208] = { 0, 149, 151, 153, 158, 159, 164, 165, 166, 178, 181, 186, 193, 202, 211, 220, 229, 238, 247, 256, 265, @@ -1886,18 +1919,18 @@ static const flex_int16_t yy_rule_linenum[204] = 882, 891, 900, 909, 918, 929, 940, 951, 962, 973, 984, 994, 1005, 1014, 1023, 1038, 1054, 1063, 1072, 1081, - 1090, 1099, 1108, 1117, 1126, 1135, 1144, 1167, 1190, 1199, - 1209, 1219, 1228, 1238, 1249, 1258, 1267, 1276, 1285, 1294, - 1304, 1313, 1322, 1331, 1342, 1353, 1364, 1373, 1383, 1392, - 1401, 1410, 1419, 1428, 1437, 1446, 1455, 1465, 1477, 1490, - 1499, 1508, 1518, 1528, 1537, 1548, 1558, 1567, 1577, 1587, - 1596, 1605, 1614, 1623, 1633, 1642, 1652, 1661, 1670, 1679, - 1688, 1697, 1706, 1715, 1724, 1733, 1742, 1751, 1760, 1769, - 1778, 1787, 1796, 1805, 1814, 1823, 1832, 1841, 1850, 1859, - 1868, 1877, 1886, 1895, 1904, 1914, 2013, 2018, 2023, 2028, - 2029, 2030, 2031, 2032, 2033, 2035, 2053, 2066, 2071, 2075, + 1090, 1099, 1108, 1117, 1126, 1135, 1144, 1168, 1192, 1201, + 1211, 1221, 1230, 1240, 1251, 1260, 1269, 1278, 1287, 1296, + 1306, 1315, 1324, 1333, 1344, 1355, 1366, 1375, 1385, 1394, + 1403, 1412, 1421, 1430, 1439, 1448, 1457, 1467, 1479, 1492, + 1501, 1510, 1520, 1530, 1539, 1550, 1560, 1569, 1579, 1589, + 1598, 1607, 1616, 1625, 1635, 1644, 1653, 1662, 1671, 1680, + 1689, 1698, 1707, 1716, 1725, 1734, 1743, 1752, 1761, 1770, + 1779, 1788, 1797, 1806, 1815, 1824, 1833, 1842, 1851, 1860, + 1869, 1878, 1887, 1896, 1905, 1914, 1923, 1932, 1941, 1950, + 2049, 2054, 2059, 2064, 2065, 2066, 2067, 2068, 2069, 2071, - 2077, 2079, 2081 + 2089, 2102, 2107, 2111, 2113, 2115, 2117 } ; /* The intent behind this definition is that it'll catch @@ -1950,7 +1983,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 1953 "dhcp6_lexer.cc" +#line 1987 "dhcp6_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 @@ -1976,8 +2009,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 1979 "dhcp6_lexer.cc" -#line 1980 "dhcp6_lexer.cc" +#line 2013 "dhcp6_lexer.cc" +#line 2014 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2309,7 +2342,7 @@ YY_DECL } -#line 2312 "dhcp6_lexer.cc" +#line 2346 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2338,13 +2371,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 >= 1810 ) + if ( yy_current_state >= 1873 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1809 ); + while ( yy_current_state != 1872 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2363,13 +2396,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 < 204 ) + else if ( yy_act < 208 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 204 ) + else if ( yy_act == 208 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 205 ) + else if ( yy_act == 209 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3717,16 +3750,17 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::INTERFACES_CONFIG: case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::POOLS: + case isc::dhcp::Parser6Context::PD_POOLS: case isc::dhcp::Parser6Context::SHARED_NETWORK: case isc::dhcp::Parser6Context::OPTION_DEF: case isc::dhcp::Parser6Context::OPTION_DATA: + case isc::dhcp::Parser6Context::RESERVATIONS: case isc::dhcp::Parser6Context::CLIENT_CLASSES: case isc::dhcp::Parser6Context::SERVER_ID: case isc::dhcp::Parser6Context::CONTROL_SOCKET: - case isc::dhcp::Parser6Context::POOLS: - case isc::dhcp::Parser6Context::PD_POOLS: - case isc::dhcp::Parser6Context::RESERVATIONS: case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: + case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: case isc::dhcp::Parser6Context::LOGGERS: case isc::dhcp::Parser6Context::DHCP_DDNS: return isc::dhcp::Dhcp6Parser::make_USER_CONTEXT(driver.loc_); @@ -3737,22 +3771,23 @@ YY_RULE_SETUP YY_BREAK case 108: YY_RULE_SETUP -#line 1167 "dhcp6_lexer.ll" +#line 1168 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::INTERFACES_CONFIG: case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::POOLS: + case isc::dhcp::Parser6Context::PD_POOLS: case isc::dhcp::Parser6Context::SHARED_NETWORK: case isc::dhcp::Parser6Context::OPTION_DEF: case isc::dhcp::Parser6Context::OPTION_DATA: + case isc::dhcp::Parser6Context::RESERVATIONS: case isc::dhcp::Parser6Context::CLIENT_CLASSES: case isc::dhcp::Parser6Context::SERVER_ID: case isc::dhcp::Parser6Context::CONTROL_SOCKET: - case isc::dhcp::Parser6Context::POOLS: - case isc::dhcp::Parser6Context::PD_POOLS: case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: - case isc::dhcp::Parser6Context::RESERVATIONS: + case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: case isc::dhcp::Parser6Context::LOGGERS: case isc::dhcp::Parser6Context::DHCP_DDNS: return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_); @@ -3763,7 +3798,7 @@ YY_RULE_SETUP YY_BREAK case 109: YY_RULE_SETUP -#line 1190 "dhcp6_lexer.ll" +#line 1192 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3775,7 +3810,7 @@ YY_RULE_SETUP YY_BREAK case 110: YY_RULE_SETUP -#line 1199 "dhcp6_lexer.ll" +#line 1201 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3788,7 +3823,7 @@ YY_RULE_SETUP YY_BREAK case 111: YY_RULE_SETUP -#line 1209 "dhcp6_lexer.ll" +#line 1211 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3801,7 +3836,7 @@ YY_RULE_SETUP YY_BREAK case 112: YY_RULE_SETUP -#line 1219 "dhcp6_lexer.ll" +#line 1221 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3813,7 +3848,7 @@ YY_RULE_SETUP YY_BREAK case 113: YY_RULE_SETUP -#line 1228 "dhcp6_lexer.ll" +#line 1230 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3826,7 +3861,7 @@ YY_RULE_SETUP YY_BREAK case 114: YY_RULE_SETUP -#line 1238 "dhcp6_lexer.ll" +#line 1240 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3840,7 +3875,7 @@ YY_RULE_SETUP YY_BREAK case 115: YY_RULE_SETUP -#line 1249 "dhcp6_lexer.ll" +#line 1251 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3852,7 +3887,7 @@ YY_RULE_SETUP YY_BREAK case 116: YY_RULE_SETUP -#line 1258 "dhcp6_lexer.ll" +#line 1260 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3864,7 +3899,7 @@ YY_RULE_SETUP YY_BREAK case 117: YY_RULE_SETUP -#line 1267 "dhcp6_lexer.ll" +#line 1269 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3876,7 +3911,7 @@ YY_RULE_SETUP YY_BREAK case 118: YY_RULE_SETUP -#line 1276 "dhcp6_lexer.ll" +#line 1278 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3888,7 +3923,7 @@ YY_RULE_SETUP YY_BREAK case 119: YY_RULE_SETUP -#line 1285 "dhcp6_lexer.ll" +#line 1287 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3900,7 +3935,7 @@ YY_RULE_SETUP YY_BREAK case 120: YY_RULE_SETUP -#line 1294 "dhcp6_lexer.ll" +#line 1296 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3913,7 +3948,7 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP -#line 1304 "dhcp6_lexer.ll" +#line 1306 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3925,7 +3960,7 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP -#line 1313 "dhcp6_lexer.ll" +#line 1315 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3937,7 +3972,7 @@ YY_RULE_SETUP YY_BREAK case 123: YY_RULE_SETUP -#line 1322 "dhcp6_lexer.ll" +#line 1324 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3949,7 +3984,7 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP -#line 1331 "dhcp6_lexer.ll" +#line 1333 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3963,7 +3998,7 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP -#line 1342 "dhcp6_lexer.ll" +#line 1344 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3977,7 +4012,7 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP -#line 1353 "dhcp6_lexer.ll" +#line 1355 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3991,7 +4026,7 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP -#line 1364 "dhcp6_lexer.ll" +#line 1366 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4003,7 +4038,7 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP -#line 1373 "dhcp6_lexer.ll" +#line 1375 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4016,7 +4051,7 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP -#line 1383 "dhcp6_lexer.ll" +#line 1385 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4028,7 +4063,7 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP -#line 1392 "dhcp6_lexer.ll" +#line 1394 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4040,7 +4075,7 @@ YY_RULE_SETUP YY_BREAK case 131: YY_RULE_SETUP -#line 1401 "dhcp6_lexer.ll" +#line 1403 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4052,7 +4087,7 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP -#line 1410 "dhcp6_lexer.ll" +#line 1412 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4064,7 +4099,7 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP -#line 1419 "dhcp6_lexer.ll" +#line 1421 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4076,7 +4111,7 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP -#line 1428 "dhcp6_lexer.ll" +#line 1430 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4088,7 +4123,7 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP -#line 1437 "dhcp6_lexer.ll" +#line 1439 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4100,7 +4135,7 @@ YY_RULE_SETUP YY_BREAK case 136: YY_RULE_SETUP -#line 1446 "dhcp6_lexer.ll" +#line 1448 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4112,7 +4147,7 @@ YY_RULE_SETUP YY_BREAK case 137: YY_RULE_SETUP -#line 1455 "dhcp6_lexer.ll" +#line 1457 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4125,7 +4160,7 @@ YY_RULE_SETUP YY_BREAK case 138: YY_RULE_SETUP -#line 1465 "dhcp6_lexer.ll" +#line 1467 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4140,7 +4175,7 @@ YY_RULE_SETUP YY_BREAK case 139: YY_RULE_SETUP -#line 1477 "dhcp6_lexer.ll" +#line 1479 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4156,7 +4191,7 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP -#line 1490 "dhcp6_lexer.ll" +#line 1492 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4168,7 +4203,7 @@ YY_RULE_SETUP YY_BREAK case 141: YY_RULE_SETUP -#line 1499 "dhcp6_lexer.ll" +#line 1501 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4180,7 +4215,7 @@ YY_RULE_SETUP YY_BREAK case 142: YY_RULE_SETUP -#line 1508 "dhcp6_lexer.ll" +#line 1510 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4193,7 +4228,7 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP -#line 1518 "dhcp6_lexer.ll" +#line 1520 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4206,7 +4241,7 @@ YY_RULE_SETUP YY_BREAK case 144: YY_RULE_SETUP -#line 1528 "dhcp6_lexer.ll" +#line 1530 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4218,7 +4253,7 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP -#line 1537 "dhcp6_lexer.ll" +#line 1539 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4232,7 +4267,7 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP -#line 1548 "dhcp6_lexer.ll" +#line 1550 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4245,7 +4280,7 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP -#line 1558 "dhcp6_lexer.ll" +#line 1560 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4257,7 +4292,7 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP -#line 1567 "dhcp6_lexer.ll" +#line 1569 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4270,7 +4305,7 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP -#line 1577 "dhcp6_lexer.ll" +#line 1579 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4283,7 +4318,7 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP -#line 1587 "dhcp6_lexer.ll" +#line 1589 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4295,7 +4330,7 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP -#line 1596 "dhcp6_lexer.ll" +#line 1598 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4307,7 +4342,7 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP -#line 1605 "dhcp6_lexer.ll" +#line 1607 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4319,7 +4354,7 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP -#line 1614 "dhcp6_lexer.ll" +#line 1616 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4331,7 +4366,7 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP -#line 1623 "dhcp6_lexer.ll" +#line 1625 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4344,7 +4379,7 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP -#line 1633 "dhcp6_lexer.ll" +#line 1635 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4356,7 +4391,7 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP -#line 1642 "dhcp6_lexer.ll" +#line 1644 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4368,7 +4403,7 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP -#line 1652 "dhcp6_lexer.ll" +#line 1653 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4380,7 +4415,7 @@ YY_RULE_SETUP YY_BREAK case 158: YY_RULE_SETUP -#line 1661 "dhcp6_lexer.ll" +#line 1662 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4392,7 +4427,7 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP -#line 1670 "dhcp6_lexer.ll" +#line 1671 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4404,7 +4439,7 @@ YY_RULE_SETUP YY_BREAK case 160: YY_RULE_SETUP -#line 1679 "dhcp6_lexer.ll" +#line 1680 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4416,7 +4451,7 @@ YY_RULE_SETUP YY_BREAK case 161: YY_RULE_SETUP -#line 1688 "dhcp6_lexer.ll" +#line 1689 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4428,7 +4463,7 @@ YY_RULE_SETUP YY_BREAK case 162: YY_RULE_SETUP -#line 1697 "dhcp6_lexer.ll" +#line 1698 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4440,7 +4475,7 @@ YY_RULE_SETUP YY_BREAK case 163: YY_RULE_SETUP -#line 1706 "dhcp6_lexer.ll" +#line 1707 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4452,7 +4487,7 @@ YY_RULE_SETUP YY_BREAK case 164: YY_RULE_SETUP -#line 1715 "dhcp6_lexer.ll" +#line 1716 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4464,7 +4499,7 @@ YY_RULE_SETUP YY_BREAK case 165: YY_RULE_SETUP -#line 1724 "dhcp6_lexer.ll" +#line 1725 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4476,7 +4511,7 @@ YY_RULE_SETUP YY_BREAK case 166: YY_RULE_SETUP -#line 1733 "dhcp6_lexer.ll" +#line 1734 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4488,7 +4523,7 @@ YY_RULE_SETUP YY_BREAK case 167: YY_RULE_SETUP -#line 1742 "dhcp6_lexer.ll" +#line 1743 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4500,7 +4535,7 @@ YY_RULE_SETUP YY_BREAK case 168: YY_RULE_SETUP -#line 1751 "dhcp6_lexer.ll" +#line 1752 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4512,7 +4547,7 @@ YY_RULE_SETUP YY_BREAK case 169: YY_RULE_SETUP -#line 1760 "dhcp6_lexer.ll" +#line 1761 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4524,7 +4559,7 @@ YY_RULE_SETUP YY_BREAK case 170: YY_RULE_SETUP -#line 1769 "dhcp6_lexer.ll" +#line 1770 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4536,7 +4571,7 @@ YY_RULE_SETUP YY_BREAK case 171: YY_RULE_SETUP -#line 1778 "dhcp6_lexer.ll" +#line 1779 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4548,7 +4583,7 @@ YY_RULE_SETUP YY_BREAK case 172: YY_RULE_SETUP -#line 1787 "dhcp6_lexer.ll" +#line 1788 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4560,7 +4595,7 @@ YY_RULE_SETUP YY_BREAK case 173: YY_RULE_SETUP -#line 1796 "dhcp6_lexer.ll" +#line 1797 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4572,7 +4607,7 @@ YY_RULE_SETUP YY_BREAK case 174: YY_RULE_SETUP -#line 1805 "dhcp6_lexer.ll" +#line 1806 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4584,7 +4619,55 @@ YY_RULE_SETUP YY_BREAK case 175: YY_RULE_SETUP -#line 1814 "dhcp6_lexer.ll" +#line 1815 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + return isc::dhcp::Dhcp6Parser::make_DHCP_MULTI_THREADING(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_); + } +} + YY_BREAK +case 176: +YY_RULE_SETUP +#line 1824 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: + return isc::dhcp::Dhcp6Parser::make_ENABLE_MULTI_THREADING(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_); + } +} + YY_BREAK +case 177: +YY_RULE_SETUP +#line 1833 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: + return isc::dhcp::Dhcp6Parser::make_THREAD_POOL_SIZE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_); + } +} + YY_BREAK +case 178: +YY_RULE_SETUP +#line 1842 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: + return isc::dhcp::Dhcp6Parser::make_PACKET_QUEUE_SIZE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_); + } +} + YY_BREAK +case 179: +YY_RULE_SETUP +#line 1851 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4594,9 +4677,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 180: YY_RULE_SETUP -#line 1823 "dhcp6_lexer.ll" +#line 1860 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4606,9 +4689,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 181: YY_RULE_SETUP -#line 1832 "dhcp6_lexer.ll" +#line 1869 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4618,9 +4701,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 182: YY_RULE_SETUP -#line 1841 "dhcp6_lexer.ll" +#line 1878 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4630,9 +4713,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 183: YY_RULE_SETUP -#line 1850 "dhcp6_lexer.ll" +#line 1887 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4642,9 +4725,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 184: YY_RULE_SETUP -#line 1859 "dhcp6_lexer.ll" +#line 1896 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4654,9 +4737,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 185: YY_RULE_SETUP -#line 1868 "dhcp6_lexer.ll" +#line 1905 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4666,9 +4749,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 186: YY_RULE_SETUP -#line 1877 "dhcp6_lexer.ll" +#line 1914 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4678,9 +4761,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 187: YY_RULE_SETUP -#line 1886 "dhcp6_lexer.ll" +#line 1923 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4690,9 +4773,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 188: YY_RULE_SETUP -#line 1895 "dhcp6_lexer.ll" +#line 1932 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4702,9 +4785,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 189: YY_RULE_SETUP -#line 1904 "dhcp6_lexer.ll" +#line 1941 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4714,9 +4797,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 190: YY_RULE_SETUP -#line 1914 "dhcp6_lexer.ll" +#line 1950 "dhcp6_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. @@ -4816,65 +4899,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 187: -/* rule 187 can match eol */ +case 191: +/* rule 191 can match eol */ YY_RULE_SETUP -#line 2013 "dhcp6_lexer.ll" +#line 2049 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 188: -/* rule 188 can match eol */ +case 192: +/* rule 192 can match eol */ YY_RULE_SETUP -#line 2018 "dhcp6_lexer.ll" +#line 2054 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 189: +case 193: YY_RULE_SETUP -#line 2023 "dhcp6_lexer.ll" +#line 2059 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 190: -YY_RULE_SETUP -#line 2028 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 191: -YY_RULE_SETUP -#line 2029 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 192: -YY_RULE_SETUP -#line 2030 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } - YY_BREAK -case 193: -YY_RULE_SETUP -#line 2031 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } - YY_BREAK case 194: YY_RULE_SETUP -#line 2032 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } +#line 2064 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 195: YY_RULE_SETUP -#line 2033 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } +#line 2065 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 196: YY_RULE_SETUP -#line 2035 "dhcp6_lexer.ll" +#line 2066 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 197: +YY_RULE_SETUP +#line 2067 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 198: +YY_RULE_SETUP +#line 2068 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 199: +YY_RULE_SETUP +#line 2069 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } + YY_BREAK +case 200: +YY_RULE_SETUP +#line 2071 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4893,9 +4976,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 197: +case 201: YY_RULE_SETUP -#line 2053 "dhcp6_lexer.ll" +#line 2089 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4909,43 +4992,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 198: +case 202: YY_RULE_SETUP -#line 2066 "dhcp6_lexer.ll" +#line 2102 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 199: +case 203: YY_RULE_SETUP -#line 2071 "dhcp6_lexer.ll" +#line 2107 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 200: +case 204: YY_RULE_SETUP -#line 2075 "dhcp6_lexer.ll" +#line 2111 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 201: +case 205: YY_RULE_SETUP -#line 2077 "dhcp6_lexer.ll" +#line 2113 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 202: +case 206: YY_RULE_SETUP -#line 2079 "dhcp6_lexer.ll" +#line 2115 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 203: +case 207: YY_RULE_SETUP -#line 2081 "dhcp6_lexer.ll" +#line 2117 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2083 "dhcp6_lexer.ll" +#line 2119 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -4969,12 +5052,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 204: +case 208: YY_RULE_SETUP -#line 2106 "dhcp6_lexer.ll" +#line 2142 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 4977 "dhcp6_lexer.cc" +#line 5061 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -5293,7 +5376,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 >= 1810 ) + if ( yy_current_state >= 1873 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5326,11 +5409,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 >= 1810 ) + if ( yy_current_state >= 1873 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1809); + yy_is_jam = (yy_current_state == 1872); return yy_is_jam ? 0 : yy_current_state; } @@ -6079,7 +6162,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2106 "dhcp6_lexer.ll" +#line 2142 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 658fc59a7f..3c18102b7f 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -30,24 +30,32 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - - // Take the name prefix into account. #define yylex parser6_lex +// First part of user declarations. +#line 39 "dhcp6_parser.cc" // lalr1.cc:404 + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif #include "dhcp6_parser.h" +// User implementation prologue. +#line 53 "dhcp6_parser.cc" // lalr1.cc:412 // Unqualified %code blocks. -#line 34 "dhcp6_parser.yy" +#line 34 "dhcp6_parser.yy" // lalr1.cc:413 #include -#line 51 "dhcp6_parser.cc" +#line 59 "dhcp6_parser.cc" // lalr1.cc:413 #ifndef YY_ @@ -62,15 +70,6 @@ # endif #endif -// Whether we are compiled with exception support. -#ifndef YY_EXCEPTIONS -# if defined __GNUC__ && !defined __EXCEPTIONS -# define YY_EXCEPTIONS 0 -# else -# define YY_EXCEPTIONS 1 -# endif -#endif - #define YYRHSLOC(Rhs, K) ((Rhs)[K].location) /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -88,10 +87,13 @@ { \ (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ } \ - while (false) + while (/*CONSTCOND*/ false) # endif +// Suppress unused-variable warnings by "using" E. +#define YYUSE(E) ((void) (E)) + // Enable debugging if requested. #if PARSER6_DEBUG @@ -104,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << '\n'; \ + *yycdebug_ << std::endl; \ } \ } while (false) @@ -123,9 +125,9 @@ #else // !PARSER6_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast (0) -# define YY_STACK_PRINT() static_cast (0) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) +# define YY_REDUCE_PRINT(Rule) static_cast(0) +# define YY_STACK_PRINT() static_cast(0) #endif // !PARSER6_DEBUG @@ -137,10 +139,9 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:479 namespace isc { namespace dhcp { -#line 143 "dhcp6_parser.cc" - +#line 145 "dhcp6_parser.cc" // lalr1.cc:479 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -152,7 +153,7 @@ namespace isc { namespace dhcp { { if (*yystr == '"') { - std::string yyr; + std::string yyr = ""; char const *yyp = yystr; for (;;) @@ -165,10 +166,7 @@ namespace isc { namespace dhcp { case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - else - goto append; - - append: + // Fall through. default: yyr += *yyp; break; @@ -185,11 +183,10 @@ namespace isc { namespace dhcp { /// Build a parser object. Dhcp6Parser::Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg) -#if PARSER6_DEBUG - : yydebug_ (false), - yycdebug_ (&std::cerr), -#else : +#if PARSER6_DEBUG + yydebug_ (false), + yycdebug_ (&std::cerr), #endif ctx (ctx_yyarg) {} @@ -197,8 +194,6 @@ namespace isc { namespace dhcp { Dhcp6Parser::~Dhcp6Parser () {} - Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} /*---------------. | Symbol types. | @@ -207,20 +202,24 @@ namespace isc { namespace dhcp { // by_state. - Dhcp6Parser::by_state::by_state () YY_NOEXCEPT + inline + Dhcp6Parser::by_state::by_state () : state (empty_state) {} - Dhcp6Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT - : state (that.state) + inline + Dhcp6Parser::by_state::by_state (const by_state& other) + : state (other.state) {} + inline void - Dhcp6Parser::by_state::clear () YY_NOEXCEPT + Dhcp6Parser::by_state::clear () { state = empty_state; } + inline void Dhcp6Parser::by_state::move (by_state& that) { @@ -228,92 +227,56 @@ namespace isc { namespace dhcp { that.clear (); } - Dhcp6Parser::by_state::by_state (state_type s) YY_NOEXCEPT + inline + Dhcp6Parser::by_state::by_state (state_type s) : state (s) {} + inline Dhcp6Parser::symbol_number_type - Dhcp6Parser::by_state::type_get () const YY_NOEXCEPT + Dhcp6Parser::by_state::type_get () const { if (state == empty_state) return empty_symbol; else - return yystos_[+state]; + return yystos_[state]; } + inline Dhcp6Parser::stack_symbol_type::stack_symbol_type () {} - Dhcp6Parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) - : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) + + inline + Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) + : super_type (s, that.location) { - switch (that.type_get ()) + switch (that.type_get ()) { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value + value.move< ElementPtr > (that.value); break; - case 198: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); + case 202: // "boolean" + value.move< bool > (that.value); break; - case 197: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); + case 201: // "floating point" + value.move< double > (that.value); break; - case 196: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); + case 200: // "integer" + value.move< int64_t > (that.value); break; - case 195: // "constant string" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - -#if 201103L <= YY_CPLUSPLUS - // that is emptied. - that.state = empty_state; -#endif - } - - Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) - : super_type (s, YY_MOVE (that.location)) - { - switch (that.type_get ()) - { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (that.value)); - break; - - case 198: // "boolean" - value.move< bool > (YY_MOVE (that.value)); - break; - - case 197: // "floating point" - value.move< double > (YY_MOVE (that.value)); - break; - - case 196: // "integer" - value.move< int64_t > (YY_MOVE (that.value)); - break; - - case 195: // "constant string" - value.move< std::string > (YY_MOVE (that.value)); + case 199: // "constant string" + value.move< std::string > (that.value); break; default: @@ -324,36 +287,36 @@ namespace isc { namespace dhcp { that.type = empty_symbol; } -#if YY_CPLUSPLUS < 201103L + inline Dhcp6Parser::stack_symbol_type& Dhcp6Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.type_get ()) + switch (that.type_get ()) { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case 198: // "boolean" + case 202: // "boolean" value.copy< bool > (that.value); break; - case 197: // "floating point" + case 201: // "floating point" value.copy< double > (that.value); break; - case 196: // "integer" + case 200: // "integer" value.copy< int64_t > (that.value); break; - case 195: // "constant string" + case 199: // "constant string" value.copy< std::string > (that.value); break; @@ -365,50 +328,9 @@ namespace isc { namespace dhcp { return *this; } - Dhcp6Parser::stack_symbol_type& - Dhcp6Parser::stack_symbol_type::operator= (stack_symbol_type& that) - { - state = that.state; - switch (that.type_get ()) - { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.move< ElementPtr > (that.value); - break; - - case 198: // "boolean" - value.move< bool > (that.value); - break; - - case 197: // "floating point" - value.move< double > (that.value); - break; - - case 196: // "integer" - value.move< int64_t > (that.value); - break; - - case 195: // "constant string" - value.move< std::string > (that.value); - break; - - default: - break; - } - - location = that.location; - // that is emptied. - that.state = empty_state; - return *this; - } -#endif template + inline void Dhcp6Parser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const { @@ -425,83 +347,93 @@ namespace isc { namespace dhcp { std::ostream& yyoutput = yyo; YYUSE (yyoutput); symbol_number_type yytype = yysym.type_get (); -#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408 // Avoid a (spurious) G++ 4.8 warning about "array subscript is // below array bounds". if (yysym.empty ()) std::abort (); -#endif yyo << (yytype < yyntokens_ ? "token" : "nterm") << ' ' << yytname_[yytype] << " (" << yysym.location << ": "; switch (yytype) { - case 195: // "constant string" -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < std::string > (); } -#line 443 "dhcp6_parser.cc" + case 199: // "constant string" + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< std::string > (); } +#line 364 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 196: // "integer" -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < int64_t > (); } -#line 449 "dhcp6_parser.cc" + case 200: // "integer" + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< int64_t > (); } +#line 371 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 197: // "floating point" -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < double > (); } -#line 455 "dhcp6_parser.cc" + case 201: // "floating point" + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< double > (); } +#line 378 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 198: // "boolean" -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < bool > (); } -#line 461 "dhcp6_parser.cc" + case 202: // "boolean" + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< bool > (); } +#line 385 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 216: // value -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 467 "dhcp6_parser.cc" + case 220: // value + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 392 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 220: // map_value -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 473 "dhcp6_parser.cc" + case 224: // map_value + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 399 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 261: // ddns_replace_client_name_value -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 479 "dhcp6_parser.cc" + case 265: // ddns_replace_client_name_value + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 406 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 298: // db_type -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 485 "dhcp6_parser.cc" + case 302: // db_type + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 413 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 392: // hr_mode -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 491 "dhcp6_parser.cc" + case 403: // hr_mode + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 420 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 528: // duid_type -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 497 "dhcp6_parser.cc" + case 539: // duid_type + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 427 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 571: // ncr_protocol_value -#line 274 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 503 "dhcp6_parser.cc" + case 582: // ncr_protocol_value + +#line 280 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 434 "dhcp6_parser.cc" // lalr1.cc:636 break; + default: break; } @@ -509,27 +441,26 @@ namespace isc { namespace dhcp { } #endif + inline void - Dhcp6Parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) + Dhcp6Parser::yypush_ (const char* m, state_type s, symbol_type& sym) + { + stack_symbol_type t (s, sym); + yypush_ (m, t); + } + + inline + void + Dhcp6Parser::yypush_ (const char* m, stack_symbol_type& s) { if (m) - YY_SYMBOL_PRINT (m, sym); - yystack_.push (YY_MOVE (sym)); + YY_SYMBOL_PRINT (m, s); + yystack_.push (s); } + inline void - Dhcp6Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) - { -#if 201103L <= YY_CPLUSPLUS - yypush_ (m, stack_symbol_type (s, std::move (sym))); -#else - stack_symbol_type ss (s, sym); - yypush_ (m, ss); -#endif - } - - void - Dhcp6Parser::yypop_ (int n) + Dhcp6Parser::yypop_ (unsigned int n) { yystack_.pop (n); } @@ -561,7 +492,7 @@ namespace isc { namespace dhcp { } #endif // PARSER6_DEBUG - Dhcp6Parser::state_type + inline Dhcp6Parser::state_type Dhcp6Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { int yyr = yypgoto_[yysym - yyntokens_] + yystate; @@ -571,27 +502,22 @@ namespace isc { namespace dhcp { return yydefgoto_[yysym - yyntokens_]; } - bool + inline bool Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } - bool + inline bool Dhcp6Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } - int - Dhcp6Parser::operator() () - { - return parse (); - } - int Dhcp6Parser::parse () { + // State. int yyn; /// Length of the RHS of the rule being reduced. int yylen = 0; @@ -609,11 +535,11 @@ namespace isc { namespace dhcp { /// The return value of parse (). int yyresult; -#if YY_EXCEPTIONS + // FIXME: This shoud be completely indented. It is not yet to + // avoid gratuitous conflicts when merging into the master branch. try -#endif // YY_EXCEPTIONS { - YYCDEBUG << "Starting parse\n"; + YYCDEBUG << "Starting parse" << std::endl; /* Initialize the stack. The initial state will be set in @@ -621,27 +547,23 @@ namespace isc { namespace dhcp { location values to have been already stored, initialize these stacks with a primary value. */ yystack_.clear (); - yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); + yypush_ (YY_NULLPTR, 0, yyla); - /*-----------------------------------------------. - | yynewstate -- push a new symbol on the stack. | - `-----------------------------------------------*/ + // A new symbol was pushed on the stack. yynewstate: - YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; + YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; // Accept? if (yystack_[0].state == yyfinal_) - YYACCEPT; + goto yyacceptlab; goto yybackup; - - /*-----------. - | yybackup. | - `-----------*/ + // Backup. yybackup: + // Try to take a decision without lookahead. - yyn = yypact_[+yystack_[0].state]; + yyn = yypact_[yystack_[0].state]; if (yy_pact_value_is_default_ (yyn)) goto yydefault; @@ -649,21 +571,16 @@ namespace isc { namespace dhcp { if (yyla.empty ()) { YYCDEBUG << "Reading a token: "; -#if YY_EXCEPTIONS try -#endif // YY_EXCEPTIONS { symbol_type yylookahead (yylex (ctx)); yyla.move (yylookahead); } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); goto yyerrlab1; } -#endif // YY_EXCEPTIONS } YY_SYMBOL_PRINT ("Next token is", yyla); @@ -671,9 +588,7 @@ namespace isc { namespace dhcp { to detect an error, take that action. */ yyn += yyla.type_get (); if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) - { - goto yydefault; - } + goto yydefault; // Reduce or error. yyn = yytable_[yyn]; @@ -690,57 +605,55 @@ namespace isc { namespace dhcp { --yyerrstatus_; // Shift the lookahead token. - yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); + yypush_ ("Shifting", yyn, yyla); goto yynewstate; - /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: - yyn = yydefact_[+yystack_[0].state]; + yyn = yydefact_[yystack_[0].state]; if (yyn == 0) goto yyerrlab; goto yyreduce; - /*-----------------------------. - | yyreduce -- do a reduction. | + | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: yylen = yyr2_[yyn]; { stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); + yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]); /* Variants are always initialized to an empty instance of the correct type. The default '$$ = $1' action is NOT applied when using variants. */ - switch (yyr1_[yyn]) + switch (yyr1_[yyn]) { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - yylhs.value.emplace< ElementPtr > (); + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value + yylhs.value.build< ElementPtr > (); break; - case 198: // "boolean" - yylhs.value.emplace< bool > (); + case 202: // "boolean" + yylhs.value.build< bool > (); break; - case 197: // "floating point" - yylhs.value.emplace< double > (); + case 201: // "floating point" + yylhs.value.build< double > (); break; - case 196: // "integer" - yylhs.value.emplace< int64_t > (); + case 200: // "integer" + yylhs.value.build< int64_t > (); break; - case 195: // "constant string" - yylhs.value.emplace< std::string > (); + case 199: // "constant string" + yylhs.value.build< std::string > (); break; default: @@ -748,303 +661,300 @@ namespace isc { namespace dhcp { } - // Default location. + // Compute the default @$. { - stack_type::slice range (yystack_, yylen); - YYLLOC_DEFAULT (yylhs.location, range, yylen); - yyerror_range[1].location = yylhs.location; + slice slice (yystack_, yylen); + YYLLOC_DEFAULT (yylhs.location, slice, yylen); } // Perform the reduction. YY_REDUCE_PRINT (yyn); -#if YY_EXCEPTIONS try -#endif // YY_EXCEPTIONS { switch (yyn) { case 2: -#line 283 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 770 "dhcp6_parser.cc" +#line 289 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.NO_KEYWORD; } +#line 680 "dhcp6_parser.cc" // lalr1.cc:859 break; case 4: -#line 284 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG; } -#line 776 "dhcp6_parser.cc" +#line 290 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG; } +#line 686 "dhcp6_parser.cc" // lalr1.cc:859 break; case 6: -#line 285 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 782 "dhcp6_parser.cc" +#line 291 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP6; } +#line 692 "dhcp6_parser.cc" // lalr1.cc:859 break; case 8: -#line 286 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 788 "dhcp6_parser.cc" +#line 292 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.INTERFACES_CONFIG; } +#line 698 "dhcp6_parser.cc" // lalr1.cc:859 break; case 10: -#line 287 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.SUBNET6; } -#line 794 "dhcp6_parser.cc" +#line 293 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.SUBNET6; } +#line 704 "dhcp6_parser.cc" // lalr1.cc:859 break; case 12: -#line 288 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.POOLS; } -#line 800 "dhcp6_parser.cc" +#line 294 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.POOLS; } +#line 710 "dhcp6_parser.cc" // lalr1.cc:859 break; case 14: -#line 289 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.PD_POOLS; } -#line 806 "dhcp6_parser.cc" +#line 295 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.PD_POOLS; } +#line 716 "dhcp6_parser.cc" // lalr1.cc:859 break; case 16: -#line 290 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.RESERVATIONS; } -#line 812 "dhcp6_parser.cc" +#line 296 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.RESERVATIONS; } +#line 722 "dhcp6_parser.cc" // lalr1.cc:859 break; case 18: -#line 291 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 818 "dhcp6_parser.cc" +#line 297 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP6; } +#line 728 "dhcp6_parser.cc" // lalr1.cc:859 break; case 20: -#line 292 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DEF; } -#line 824 "dhcp6_parser.cc" +#line 298 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DEF; } +#line 734 "dhcp6_parser.cc" // lalr1.cc:859 break; case 22: -#line 293 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DATA; } -#line 830 "dhcp6_parser.cc" +#line 299 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DATA; } +#line 740 "dhcp6_parser.cc" // lalr1.cc:859 break; case 24: -#line 294 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 836 "dhcp6_parser.cc" +#line 300 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } +#line 746 "dhcp6_parser.cc" // lalr1.cc:859 break; case 26: -#line 295 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 842 "dhcp6_parser.cc" +#line 301 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP_DDNS; } +#line 752 "dhcp6_parser.cc" // lalr1.cc:859 break; case 28: -#line 296 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.LOGGING; } -#line 848 "dhcp6_parser.cc" +#line 302 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.LOGGING; } +#line 758 "dhcp6_parser.cc" // lalr1.cc:859 break; case 30: -#line 297 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 854 "dhcp6_parser.cc" +#line 303 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG_CONTROL; } +#line 764 "dhcp6_parser.cc" // lalr1.cc:859 break; case 32: -#line 305 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 860 "dhcp6_parser.cc" +#line 311 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } +#line 770 "dhcp6_parser.cc" // lalr1.cc:859 break; case 33: -#line 306 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 866 "dhcp6_parser.cc" +#line 312 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } +#line 776 "dhcp6_parser.cc" // lalr1.cc:859 break; case 34: -#line 307 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 872 "dhcp6_parser.cc" +#line 313 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 782 "dhcp6_parser.cc" // lalr1.cc:859 break; case 35: -#line 308 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 878 "dhcp6_parser.cc" +#line 314 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } +#line 788 "dhcp6_parser.cc" // lalr1.cc:859 break; case 36: -#line 309 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 884 "dhcp6_parser.cc" +#line 315 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 794 "dhcp6_parser.cc" // lalr1.cc:859 break; case 37: -#line 310 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 890 "dhcp6_parser.cc" +#line 316 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 800 "dhcp6_parser.cc" // lalr1.cc:859 break; case 38: -#line 311 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 896 "dhcp6_parser.cc" +#line 317 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 806 "dhcp6_parser.cc" // lalr1.cc:859 break; case 39: -#line 314 "dhcp6_parser.yy" - { +#line 320 "dhcp6_parser.yy" // lalr1.cc:859 + { // Push back the JSON value on the stack - ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); } -#line 905 "dhcp6_parser.cc" +#line 815 "dhcp6_parser.cc" // lalr1.cc:859 break; case 40: -#line 319 "dhcp6_parser.yy" - { +#line 325 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 916 "dhcp6_parser.cc" +#line 826 "dhcp6_parser.cc" // lalr1.cc:859 break; case 41: -#line 324 "dhcp6_parser.yy" - { +#line 330 "dhcp6_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 926 "dhcp6_parser.cc" +#line 836 "dhcp6_parser.cc" // lalr1.cc:859 break; case 42: -#line 330 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 932 "dhcp6_parser.cc" +#line 336 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 842 "dhcp6_parser.cc" // lalr1.cc:859 break; case 45: -#line 337 "dhcp6_parser.yy" - { +#line 343 "dhcp6_parser.yy" // lalr1.cc:859 + { // map containing a single entry - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 941 "dhcp6_parser.cc" +#line 851 "dhcp6_parser.cc" // lalr1.cc:859 break; case 46: -#line 341 "dhcp6_parser.yy" - { +#line 347 "dhcp6_parser.yy" // lalr1.cc:859 + { // map consisting of a shorter map followed by // comma and string:value - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 951 "dhcp6_parser.cc" +#line 861 "dhcp6_parser.cc" // lalr1.cc:859 break; case 47: -#line 348 "dhcp6_parser.yy" - { +#line 354 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 960 "dhcp6_parser.cc" +#line 870 "dhcp6_parser.cc" // lalr1.cc:859 break; case 48: -#line 351 "dhcp6_parser.yy" - { +#line 357 "dhcp6_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here } -#line 968 "dhcp6_parser.cc" +#line 878 "dhcp6_parser.cc" // lalr1.cc:859 break; case 51: -#line 359 "dhcp6_parser.yy" - { +#line 365 "dhcp6_parser.yy" // lalr1.cc:859 + { // List consisting of a single element. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 977 "dhcp6_parser.cc" +#line 887 "dhcp6_parser.cc" // lalr1.cc:859 break; case 52: -#line 363 "dhcp6_parser.yy" - { +#line 369 "dhcp6_parser.yy" // lalr1.cc:859 + { // List ending with , and a value. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 986 "dhcp6_parser.cc" +#line 896 "dhcp6_parser.cc" // lalr1.cc:859 break; case 53: -#line 370 "dhcp6_parser.yy" - { +#line 376 "dhcp6_parser.yy" // lalr1.cc:859 + { // List parsing about to start } -#line 994 "dhcp6_parser.cc" +#line 904 "dhcp6_parser.cc" // lalr1.cc:859 break; case 54: -#line 372 "dhcp6_parser.yy" - { +#line 378 "dhcp6_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 1003 "dhcp6_parser.cc" +#line 913 "dhcp6_parser.cc" // lalr1.cc:859 break; case 57: -#line 381 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 387 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1012 "dhcp6_parser.cc" +#line 922 "dhcp6_parser.cc" // lalr1.cc:859 break; case 58: -#line 385 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 391 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1021 "dhcp6_parser.cc" +#line 931 "dhcp6_parser.cc" // lalr1.cc:859 break; case 59: -#line 396 "dhcp6_parser.yy" - { +#line 402 "dhcp6_parser.yy" // lalr1.cc:859 + { const std::string& where = ctx.contextName(); - const std::string& keyword = yystack_[1].value.as < std::string > (); + const std::string& keyword = yystack_[1].value.as< std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 1032 "dhcp6_parser.cc" +#line 942 "dhcp6_parser.cc" // lalr1.cc:859 break; case 60: -#line 406 "dhcp6_parser.yy" - { +#line 412 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1043 "dhcp6_parser.cc" +#line 953 "dhcp6_parser.cc" // lalr1.cc:859 break; case 61: -#line 411 "dhcp6_parser.yy" - { +#line 417 "dhcp6_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. @@ -1052,12 +962,12 @@ namespace isc { namespace dhcp { // Dhcp6 is required ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1056 "dhcp6_parser.cc" +#line 966 "dhcp6_parser.cc" // lalr1.cc:859 break; case 70: -#line 434 "dhcp6_parser.yy" - { +#line 441 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1065,1150 +975,1199 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 1069 "dhcp6_parser.cc" +#line 979 "dhcp6_parser.cc" // lalr1.cc:859 break; case 71: -#line 441 "dhcp6_parser.yy" - { +#line 448 "dhcp6_parser.yy" // lalr1.cc:859 + { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1079 "dhcp6_parser.cc" +#line 989 "dhcp6_parser.cc" // lalr1.cc:859 break; case 72: -#line 449 "dhcp6_parser.yy" - { +#line 456 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1089 "dhcp6_parser.cc" +#line 999 "dhcp6_parser.cc" // lalr1.cc:859 break; case 73: -#line 453 "dhcp6_parser.yy" - { +#line 460 "dhcp6_parser.yy" // lalr1.cc:859 + { // No global parameter is required // parsing completed } -#line 1098 "dhcp6_parser.cc" - break; - - case 128: -#line 518 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1106 "dhcp6_parser.cc" +#line 1008 "dhcp6_parser.cc" // lalr1.cc:859 break; case 129: -#line 520 "dhcp6_parser.yy" - { - ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("data-directory", datadir); - ctx.leave(); +#line 526 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1116 "dhcp6_parser.cc" +#line 1016 "dhcp6_parser.cc" // lalr1.cc:859 break; case 130: -#line 526 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("preferred-lifetime", prf); +#line 528 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr datadir(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("data-directory", datadir); + ctx.leave(); } -#line 1125 "dhcp6_parser.cc" +#line 1026 "dhcp6_parser.cc" // lalr1.cc:859 break; case 131: -#line 531 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("min-preferred-lifetime", prf); +#line 534 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("preferred-lifetime", prf); } -#line 1134 "dhcp6_parser.cc" +#line 1035 "dhcp6_parser.cc" // lalr1.cc:859 break; case 132: -#line 536 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-preferred-lifetime", prf); +#line 539 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("min-preferred-lifetime", prf); } -#line 1143 "dhcp6_parser.cc" +#line 1044 "dhcp6_parser.cc" // lalr1.cc:859 break; case 133: -#line 541 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("valid-lifetime", prf); +#line 544 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-preferred-lifetime", prf); } -#line 1152 "dhcp6_parser.cc" +#line 1053 "dhcp6_parser.cc" // lalr1.cc:859 break; case 134: -#line 546 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("min-valid-lifetime", prf); +#line 549 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1161 "dhcp6_parser.cc" +#line 1062 "dhcp6_parser.cc" // lalr1.cc:859 break; case 135: -#line 551 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-valid-lifetime", prf); +#line 554 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1170 "dhcp6_parser.cc" +#line 1071 "dhcp6_parser.cc" // lalr1.cc:859 break; case 136: -#line 556 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("renew-timer", prf); +#line 559 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1179 "dhcp6_parser.cc" +#line 1080 "dhcp6_parser.cc" // lalr1.cc:859 break; case 137: -#line 561 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("rebind-timer", prf); +#line 564 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("renew-timer", prf); } -#line 1188 "dhcp6_parser.cc" +#line 1089 "dhcp6_parser.cc" // lalr1.cc:859 break; case 138: -#line 566 "dhcp6_parser.yy" - { - ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("calculate-tee-times", ctt); +#line 569 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("rebind-timer", prf); } -#line 1197 "dhcp6_parser.cc" +#line 1098 "dhcp6_parser.cc" // lalr1.cc:859 break; case 139: -#line 571 "dhcp6_parser.yy" - { - ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("t1-percent", t1); +#line 574 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1206 "dhcp6_parser.cc" +#line 1107 "dhcp6_parser.cc" // lalr1.cc:859 break; case 140: -#line 576 "dhcp6_parser.yy" - { - ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("t2-percent", t2); +#line 579 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t1-percent", t1); } -#line 1215 "dhcp6_parser.cc" +#line 1116 "dhcp6_parser.cc" // lalr1.cc:859 break; case 141: -#line 581 "dhcp6_parser.yy" - { - ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("decline-probation-period", dpp); +#line 584 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t2-percent", t2); } -#line 1224 "dhcp6_parser.cc" +#line 1125 "dhcp6_parser.cc" // lalr1.cc:859 break; case 142: -#line 586 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ddns-send-updates", b); +#line 589 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1233 "dhcp6_parser.cc" +#line 1134 "dhcp6_parser.cc" // lalr1.cc:859 break; case 143: -#line 591 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ddns-override-no-update", b); +#line 594 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1242 "dhcp6_parser.cc" +#line 1143 "dhcp6_parser.cc" // lalr1.cc:859 break; case 144: -#line 596 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ddns-override-client-update", b); +#line 599 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1251 "dhcp6_parser.cc" +#line 1152 "dhcp6_parser.cc" // lalr1.cc:859 break; case 145: -#line 601 "dhcp6_parser.yy" - { - ctx.enter(ctx.REPLACE_CLIENT_NAME); +#line 604 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1259 "dhcp6_parser.cc" +#line 1161 "dhcp6_parser.cc" // lalr1.cc:859 break; case 146: -#line 603 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 609 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 1268 "dhcp6_parser.cc" +#line 1169 "dhcp6_parser.cc" // lalr1.cc:859 break; case 147: -#line 609 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); - } -#line 1276 "dhcp6_parser.cc" +#line 611 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 1178 "dhcp6_parser.cc" // lalr1.cc:859 break; case 148: -#line 612 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); +#line 617 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1284 "dhcp6_parser.cc" +#line 1186 "dhcp6_parser.cc" // lalr1.cc:859 break; case 149: -#line 615 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); +#line 620 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1292 "dhcp6_parser.cc" +#line 1194 "dhcp6_parser.cc" // lalr1.cc:859 break; case 150: -#line 618 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); +#line 623 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1300 "dhcp6_parser.cc" +#line 1202 "dhcp6_parser.cc" // lalr1.cc:859 break; case 151: -#line 621 "dhcp6_parser.yy" - { - error(yystack_[0].location, "boolean values for the replace-client-name are " - "no longer supported"); +#line 626 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1309 "dhcp6_parser.cc" +#line 1210 "dhcp6_parser.cc" // lalr1.cc:859 break; case 152: -#line 627 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1317 "dhcp6_parser.cc" +#line 629 "dhcp6_parser.yy" // lalr1.cc:859 + { + error(yystack_[0].location, "boolean values for the replace-client-name are " + "no longer supported"); + } +#line 1219 "dhcp6_parser.cc" // lalr1.cc:859 break; case 153: -#line 629 "dhcp6_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); - ctx.leave(); +#line 635 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1327 "dhcp6_parser.cc" +#line 1227 "dhcp6_parser.cc" // lalr1.cc:859 break; case 154: -#line 635 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 637 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-generated-prefix", s); + ctx.leave(); } -#line 1335 "dhcp6_parser.cc" +#line 1237 "dhcp6_parser.cc" // lalr1.cc:859 break; case 155: -#line 637 "dhcp6_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); - ctx.leave(); +#line 643 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1345 "dhcp6_parser.cc" +#line 1245 "dhcp6_parser.cc" // lalr1.cc:859 break; case 156: -#line 643 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 645 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-qualifying-suffix", s); + ctx.leave(); } -#line 1353 "dhcp6_parser.cc" +#line 1255 "dhcp6_parser.cc" // lalr1.cc:859 break; case 157: -#line 645 "dhcp6_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); - ctx.leave(); +#line 651 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1363 "dhcp6_parser.cc" +#line 1263 "dhcp6_parser.cc" // lalr1.cc:859 break; case 158: -#line 651 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 653 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-set", s); + ctx.leave(); } -#line 1371 "dhcp6_parser.cc" +#line 1273 "dhcp6_parser.cc" // lalr1.cc:859 break; case 159: -#line 653 "dhcp6_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); - ctx.leave(); +#line 659 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1381 "dhcp6_parser.cc" +#line 1281 "dhcp6_parser.cc" // lalr1.cc:859 break; case 160: -#line 659 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("store-extended-info", b); +#line 661 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-replacement", s); + ctx.leave(); } -#line 1390 "dhcp6_parser.cc" +#line 1291 "dhcp6_parser.cc" // lalr1.cc:859 break; case 161: -#line 664 "dhcp6_parser.yy" - { - ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("statistic-default-sample-count", count); +#line 667 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("store-extended-info", b); } -#line 1399 "dhcp6_parser.cc" +#line 1300 "dhcp6_parser.cc" // lalr1.cc:859 break; case 162: -#line 669 "dhcp6_parser.yy" - { - ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("statistic-default-sample-age", age); +#line 672 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr count(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1408 "dhcp6_parser.cc" +#line 1309 "dhcp6_parser.cc" // lalr1.cc:859 break; case 163: -#line 674 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 677 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr age(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1416 "dhcp6_parser.cc" +#line 1318 "dhcp6_parser.cc" // lalr1.cc:859 break; case 164: -#line 676 "dhcp6_parser.yy" - { - ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("server-tag", stag); - ctx.leave(); +#line 682 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1426 "dhcp6_parser.cc" +#line 1326 "dhcp6_parser.cc" // lalr1.cc:859 break; case 165: -#line 682 "dhcp6_parser.yy" - { +#line 684 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("server-tag", stag); + ctx.leave(); +} +#line 1336 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 166: +#line 690 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1437 "dhcp6_parser.cc" +#line 1347 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 166: -#line 687 "dhcp6_parser.yy" - { + case 167: +#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1447 "dhcp6_parser.cc" +#line 1357 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 167: -#line 693 "dhcp6_parser.yy" - { + case 168: +#line 701 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1457 "dhcp6_parser.cc" +#line 1367 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 168: -#line 697 "dhcp6_parser.yy" - { + case 169: +#line 705 "dhcp6_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required // parsing completed } -#line 1466 "dhcp6_parser.cc" +#line 1376 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 176: -#line 713 "dhcp6_parser.yy" - { + case 177: +#line 721 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1477 "dhcp6_parser.cc" - break; - - case 177: -#line 718 "dhcp6_parser.yy" - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 1486 "dhcp6_parser.cc" +#line 1387 "dhcp6_parser.cc" // lalr1.cc:859 break; case 178: -#line 723 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("re-detect", b); +#line 726 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); + ctx.leave(); } -#line 1495 "dhcp6_parser.cc" +#line 1396 "dhcp6_parser.cc" // lalr1.cc:859 break; case 179: -#line 729 "dhcp6_parser.yy" - { +#line 731 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("re-detect", b); +} +#line 1405 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 180: +#line 736 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1506 "dhcp6_parser.cc" +#line 1416 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 180: -#line 734 "dhcp6_parser.yy" - { + case 181: +#line 741 "dhcp6_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1517 "dhcp6_parser.cc" +#line 1427 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 181: -#line 741 "dhcp6_parser.yy" - { + case 182: +#line 748 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1528 "dhcp6_parser.cc" +#line 1438 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 182: -#line 746 "dhcp6_parser.yy" - { + case 183: +#line 753 "dhcp6_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1539 "dhcp6_parser.cc" +#line 1449 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 183: -#line 753 "dhcp6_parser.yy" - { + case 184: +#line 760 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1550 "dhcp6_parser.cc" +#line 1460 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 184: -#line 758 "dhcp6_parser.yy" - { + case 185: +#line 765 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1559 "dhcp6_parser.cc" +#line 1469 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 189: -#line 771 "dhcp6_parser.yy" - { + case 190: +#line 778 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1569 "dhcp6_parser.cc" +#line 1479 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 190: -#line 775 "dhcp6_parser.yy" - { + case 191: +#line 782 "dhcp6_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1579 "dhcp6_parser.cc" - break; - - case 214: -#line 808 "dhcp6_parser.yy" - { - ctx.enter(ctx.DATABASE_TYPE); -} -#line 1587 "dhcp6_parser.cc" +#line 1489 "dhcp6_parser.cc" // lalr1.cc:859 break; case 215: -#line 810 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 815 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.DATABASE_TYPE); } -#line 1596 "dhcp6_parser.cc" +#line 1497 "dhcp6_parser.cc" // lalr1.cc:859 break; case 216: -#line 815 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1602 "dhcp6_parser.cc" +#line 817 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 1506 "dhcp6_parser.cc" // lalr1.cc:859 break; case 217: -#line 816 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1608 "dhcp6_parser.cc" +#line 822 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1512 "dhcp6_parser.cc" // lalr1.cc:859 break; case 218: -#line 817 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1614 "dhcp6_parser.cc" +#line 823 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1518 "dhcp6_parser.cc" // lalr1.cc:859 break; case 219: -#line 818 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1620 "dhcp6_parser.cc" +#line 824 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1524 "dhcp6_parser.cc" // lalr1.cc:859 break; case 220: -#line 821 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1628 "dhcp6_parser.cc" +#line 825 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1530 "dhcp6_parser.cc" // lalr1.cc:859 break; case 221: -#line 823 "dhcp6_parser.yy" - { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("user", user); - ctx.leave(); +#line 828 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1638 "dhcp6_parser.cc" +#line 1538 "dhcp6_parser.cc" // lalr1.cc:859 break; case 222: -#line 829 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 830 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("user", user); + ctx.leave(); } -#line 1646 "dhcp6_parser.cc" +#line 1548 "dhcp6_parser.cc" // lalr1.cc:859 break; case 223: -#line 831 "dhcp6_parser.yy" - { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("password", pwd); - ctx.leave(); +#line 836 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1656 "dhcp6_parser.cc" +#line 1556 "dhcp6_parser.cc" // lalr1.cc:859 break; case 224: -#line 837 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 838 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("password", pwd); + ctx.leave(); } -#line 1664 "dhcp6_parser.cc" +#line 1566 "dhcp6_parser.cc" // lalr1.cc:859 break; case 225: -#line 839 "dhcp6_parser.yy" - { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("host", h); - ctx.leave(); +#line 844 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1674 "dhcp6_parser.cc" +#line 1574 "dhcp6_parser.cc" // lalr1.cc:859 break; case 226: -#line 845 "dhcp6_parser.yy" - { - ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("port", p); +#line 846 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("host", h); + ctx.leave(); } -#line 1683 "dhcp6_parser.cc" +#line 1584 "dhcp6_parser.cc" // lalr1.cc:859 break; case 227: -#line 850 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 852 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("port", p); } -#line 1691 "dhcp6_parser.cc" +#line 1593 "dhcp6_parser.cc" // lalr1.cc:859 break; case 228: -#line 852 "dhcp6_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("name", name); - ctx.leave(); +#line 857 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1701 "dhcp6_parser.cc" +#line 1601 "dhcp6_parser.cc" // lalr1.cc:859 break; case 229: -#line 858 "dhcp6_parser.yy" - { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("persist", n); +#line 859 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("name", name); + ctx.leave(); } -#line 1710 "dhcp6_parser.cc" +#line 1611 "dhcp6_parser.cc" // lalr1.cc:859 break; case 230: -#line 863 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("lfc-interval", n); +#line 865 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("persist", n); } -#line 1719 "dhcp6_parser.cc" +#line 1620 "dhcp6_parser.cc" // lalr1.cc:859 break; case 231: -#line 868 "dhcp6_parser.yy" - { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("readonly", n); +#line 870 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("lfc-interval", n); } -#line 1728 "dhcp6_parser.cc" +#line 1629 "dhcp6_parser.cc" // lalr1.cc:859 break; case 232: -#line 873 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("connect-timeout", n); +#line 875 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("readonly", n); } -#line 1737 "dhcp6_parser.cc" +#line 1638 "dhcp6_parser.cc" // lalr1.cc:859 break; case 233: -#line 878 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("reconnect-wait-time", n); +#line 880 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("connect-timeout", n); } -#line 1746 "dhcp6_parser.cc" +#line 1647 "dhcp6_parser.cc" // lalr1.cc:859 break; case 234: -#line 883 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-row-errors", n); +#line 885 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1755 "dhcp6_parser.cc" +#line 1656 "dhcp6_parser.cc" // lalr1.cc:859 break; case 235: -#line 888 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("request-timeout", n); +#line 890 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-row-errors", n); } -#line 1764 "dhcp6_parser.cc" +#line 1665 "dhcp6_parser.cc" // lalr1.cc:859 break; case 236: -#line 893 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("tcp-keepalive", n); +#line 895 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("request-timeout", n); } -#line 1773 "dhcp6_parser.cc" +#line 1674 "dhcp6_parser.cc" // lalr1.cc:859 break; case 237: -#line 898 "dhcp6_parser.yy" - { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("tcp-nodelay", n); +#line 900 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1782 "dhcp6_parser.cc" +#line 1683 "dhcp6_parser.cc" // lalr1.cc:859 break; case 238: -#line 903 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 905 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1790 "dhcp6_parser.cc" +#line 1692 "dhcp6_parser.cc" // lalr1.cc:859 break; case 239: -#line 905 "dhcp6_parser.yy" - { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("contact-points", cp); - ctx.leave(); +#line 910 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1800 "dhcp6_parser.cc" +#line 1700 "dhcp6_parser.cc" // lalr1.cc:859 break; case 240: -#line 911 "dhcp6_parser.yy" - { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-reconnect-tries", n); +#line 912 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("contact-points", cp); + ctx.leave(); } -#line 1809 "dhcp6_parser.cc" +#line 1710 "dhcp6_parser.cc" // lalr1.cc:859 break; case 241: -#line 916 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 918 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1817 "dhcp6_parser.cc" +#line 1719 "dhcp6_parser.cc" // lalr1.cc:859 break; case 242: -#line 918 "dhcp6_parser.yy" - { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("keyspace", ks); - ctx.leave(); +#line 923 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1827 "dhcp6_parser.cc" +#line 1727 "dhcp6_parser.cc" // lalr1.cc:859 break; case 243: -#line 924 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 925 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("keyspace", ks); + ctx.leave(); } -#line 1835 "dhcp6_parser.cc" +#line 1737 "dhcp6_parser.cc" // lalr1.cc:859 break; case 244: -#line 926 "dhcp6_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("consistency", c); - ctx.leave(); +#line 931 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1845 "dhcp6_parser.cc" +#line 1745 "dhcp6_parser.cc" // lalr1.cc:859 break; case 245: -#line 932 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 933 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("consistency", c); + ctx.leave(); } -#line 1853 "dhcp6_parser.cc" +#line 1755 "dhcp6_parser.cc" // lalr1.cc:859 break; case 246: -#line 934 "dhcp6_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("serial-consistency", c); - ctx.leave(); +#line 939 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1863 "dhcp6_parser.cc" +#line 1763 "dhcp6_parser.cc" // lalr1.cc:859 break; case 247: -#line 940 "dhcp6_parser.yy" - { +#line 941 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("serial-consistency", c); + ctx.leave(); +} +#line 1773 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 248: +#line 947 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1874 "dhcp6_parser.cc" +#line 1784 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 248: -#line 945 "dhcp6_parser.yy" - { + case 249: +#line 952 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1883 "dhcp6_parser.cc" - break; - - case 252: -#line 955 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1891 "dhcp6_parser.cc" +#line 1793 "dhcp6_parser.cc" // lalr1.cc:859 break; case 253: -#line 957 "dhcp6_parser.yy" - { - - if ( (string(yystack_[0].value.as < std::string > ()) == "none") || - (string(yystack_[0].value.as < std::string > ()) == "warn") || - (string(yystack_[0].value.as < std::string > ()) == "fix") || - (string(yystack_[0].value.as < std::string > ()) == "fix-del") || - (string(yystack_[0].value.as < std::string > ()) == "del")) { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("lease-checks", user); - ctx.leave(); - } else { - error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as < std::string > ()) + - ", supported values are: none, warn, fix, fix-del, del"); - } +#line 962 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); } -#line 1911 "dhcp6_parser.cc" +#line 1801 "dhcp6_parser.cc" // lalr1.cc:859 break; case 254: -#line 973 "dhcp6_parser.yy" - { +#line 964 "dhcp6_parser.yy" // lalr1.cc:859 + { + + if ( (string(yystack_[0].value.as< std::string > ()) == "none") || + (string(yystack_[0].value.as< std::string > ()) == "warn") || + (string(yystack_[0].value.as< std::string > ()) == "fix") || + (string(yystack_[0].value.as< std::string > ()) == "fix-del") || + (string(yystack_[0].value.as< std::string > ()) == "del")) { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("lease-checks", user); + ctx.leave(); + } else { + error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as< std::string > ()) + + ", supported values are: none, warn, fix, fix-del, del"); + } +} +#line 1821 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 255: +#line 980 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 1922 "dhcp6_parser.cc" +#line 1832 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 255: -#line 978 "dhcp6_parser.yy" - { + case 256: +#line 985 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1931 "dhcp6_parser.cc" - break; - - case 260: -#line 991 "dhcp6_parser.yy" - { - ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(duid); -} -#line 1940 "dhcp6_parser.cc" +#line 1841 "dhcp6_parser.cc" // lalr1.cc:859 break; case 261: -#line 996 "dhcp6_parser.yy" - { - ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 998 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1949 "dhcp6_parser.cc" +#line 1850 "dhcp6_parser.cc" // lalr1.cc:859 break; case 262: -#line 1001 "dhcp6_parser.yy" - { +#line 1003 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(duid); +} +#line 1859 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 263: +#line 1008 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1960 "dhcp6_parser.cc" +#line 1870 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 263: -#line 1006 "dhcp6_parser.yy" - { + case 264: +#line 1013 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1969 "dhcp6_parser.cc" - break; - - case 269: -#line 1020 "dhcp6_parser.yy" - { - ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(hwaddr); -} -#line 1978 "dhcp6_parser.cc" +#line 1879 "dhcp6_parser.cc" // lalr1.cc:859 break; case 270: -#line 1025 "dhcp6_parser.yy" - { - ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(flex_id); +#line 1027 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(hwaddr); } -#line 1987 "dhcp6_parser.cc" +#line 1888 "dhcp6_parser.cc" // lalr1.cc:859 break; case 271: -#line 1032 "dhcp6_parser.yy" - { +#line 1032 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(flex_id); +} +#line 1897 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 272: +#line 1039 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1998 "dhcp6_parser.cc" - break; - - case 272: -#line 1037 "dhcp6_parser.yy" - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 2007 "dhcp6_parser.cc" +#line 1908 "dhcp6_parser.cc" // lalr1.cc:859 break; case 273: -#line 1042 "dhcp6_parser.yy" - { +#line 1044 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1917 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 274: +#line 1051 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("multi-threading", mt); + ctx.stack_.push_back(mt); + ctx.enter(ctx.DHCP_MULTI_THREADING); +} +#line 1928 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 275: +#line 1056 "dhcp6_parser.yy" // lalr1.cc:859 + { + // The enable parameter is required. + ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1939 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 284: +#line 1075 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("enable-multi-threading", b); +} +#line 1948 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 285: +#line 1080 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("thread-pool-size", prf); +} +#line 1957 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 286: +#line 1085 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("packet-queue-size", prf); +} +#line 1966 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 287: +#line 1090 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2018 "dhcp6_parser.cc" +#line 1977 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 274: -#line 1047 "dhcp6_parser.yy" - { + case 288: +#line 1095 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2027 "dhcp6_parser.cc" +#line 1986 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 279: -#line 1060 "dhcp6_parser.yy" - { + case 293: +#line 1108 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2037 "dhcp6_parser.cc" +#line 1996 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 280: -#line 1064 "dhcp6_parser.yy" - { + case 294: +#line 1112 "dhcp6_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2047 "dhcp6_parser.cc" +#line 2006 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 281: -#line 1070 "dhcp6_parser.yy" - { + case 295: +#line 1118 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2057 "dhcp6_parser.cc" +#line 2016 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 282: -#line 1074 "dhcp6_parser.yy" - { + case 296: +#line 1122 "dhcp6_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2067 "dhcp6_parser.cc" +#line 2026 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 288: -#line 1089 "dhcp6_parser.yy" - { + case 302: +#line 1137 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2075 "dhcp6_parser.cc" +#line 2034 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 289: -#line 1091 "dhcp6_parser.yy" - { - ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 303: +#line 1139 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2085 "dhcp6_parser.cc" +#line 2044 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 290: -#line 1097 "dhcp6_parser.yy" - { + case 304: +#line 1145 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2093 "dhcp6_parser.cc" +#line 2052 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 291: -#line 1099 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); + case 305: +#line 1147 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2102 "dhcp6_parser.cc" +#line 2061 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 292: -#line 1105 "dhcp6_parser.yy" - { + case 306: +#line 1153 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2113 "dhcp6_parser.cc" +#line 2072 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 293: -#line 1110 "dhcp6_parser.yy" - { + case 307: +#line 1158 "dhcp6_parser.yy" // lalr1.cc:859 + { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2123 "dhcp6_parser.cc" +#line 2082 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 302: -#line 1128 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 316: +#line 1176 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2132 "dhcp6_parser.cc" +#line 2091 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 303: -#line 1133 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 317: +#line 1181 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2141 "dhcp6_parser.cc" +#line 2100 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 304: -#line 1138 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 318: +#line 1186 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2150 "dhcp6_parser.cc" +#line 2109 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 305: -#line 1143 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 319: +#line 1191 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2159 "dhcp6_parser.cc" +#line 2118 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 306: -#line 1148 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 320: +#line 1196 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2168 "dhcp6_parser.cc" +#line 2127 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 307: -#line 1153 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 321: +#line 1201 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2177 "dhcp6_parser.cc" +#line 2136 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 308: -#line 1161 "dhcp6_parser.yy" - { + case 322: +#line 1209 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2188 "dhcp6_parser.cc" +#line 2147 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 309: -#line 1166 "dhcp6_parser.yy" - { + case 323: +#line 1214 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2197 "dhcp6_parser.cc" +#line 2156 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 314: -#line 1186 "dhcp6_parser.yy" - { + case 328: +#line 1234 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2207 "dhcp6_parser.cc" +#line 2166 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 315: -#line 1190 "dhcp6_parser.yy" - { + case 329: +#line 1238 "dhcp6_parser.yy" // lalr1.cc:859 + { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. // In particular we can do things like this: @@ -2229,573 +2188,574 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2233 "dhcp6_parser.cc" +#line 2192 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 316: -#line 1212 "dhcp6_parser.yy" - { + case 330: +#line 1260 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2243 "dhcp6_parser.cc" +#line 2202 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 317: -#line 1216 "dhcp6_parser.yy" - { + case 331: +#line 1264 "dhcp6_parser.yy" // lalr1.cc:859 + { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2253 "dhcp6_parser.cc" +#line 2212 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 356: -#line 1266 "dhcp6_parser.yy" - { + case 370: +#line 1314 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2261 "dhcp6_parser.cc" +#line 2220 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 357: -#line 1268 "dhcp6_parser.yy" - { - ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 371: +#line 1316 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2271 "dhcp6_parser.cc" +#line 2230 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 358: -#line 1274 "dhcp6_parser.yy" - { + case 372: +#line 1322 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2279 "dhcp6_parser.cc" +#line 2238 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 359: -#line 1276 "dhcp6_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 373: +#line 1324 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2289 "dhcp6_parser.cc" +#line 2248 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 360: -#line 1282 "dhcp6_parser.yy" - { + case 374: +#line 1330 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2297 "dhcp6_parser.cc" +#line 2256 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 361: -#line 1284 "dhcp6_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 375: +#line 1332 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2307 "dhcp6_parser.cc" +#line 2266 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 362: -#line 1290 "dhcp6_parser.yy" - { + case 376: +#line 1338 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2315 "dhcp6_parser.cc" +#line 2274 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 363: -#line 1292 "dhcp6_parser.yy" - { - ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 377: +#line 1340 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2325 "dhcp6_parser.cc" +#line 2284 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 364: -#line 1298 "dhcp6_parser.yy" - { + case 378: +#line 1346 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2336 "dhcp6_parser.cc" +#line 2295 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 365: -#line 1303 "dhcp6_parser.yy" - { + case 379: +#line 1351 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2345 "dhcp6_parser.cc" +#line 2304 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 366: -#line 1308 "dhcp6_parser.yy" - { + case 380: +#line 1356 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.RESERVATION_MODE); } -#line 2353 "dhcp6_parser.cc" +#line 2312 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 367: -#line 1310 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); + case 381: +#line 1358 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2362 "dhcp6_parser.cc" +#line 2321 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 368: -#line 1315 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2368 "dhcp6_parser.cc" + case 382: +#line 1363 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } +#line 2327 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 369: -#line 1316 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2374 "dhcp6_parser.cc" + case 383: +#line 1364 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } +#line 2333 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 370: -#line 1317 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2380 "dhcp6_parser.cc" + case 384: +#line 1365 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } +#line 2339 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 371: -#line 1318 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2386 "dhcp6_parser.cc" + case 385: +#line 1366 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } +#line 2345 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 372: -#line 1321 "dhcp6_parser.yy" - { - ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 386: +#line 1369 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2395 "dhcp6_parser.cc" +#line 2354 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 373: -#line 1326 "dhcp6_parser.yy" - { - ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 387: +#line 1374 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2404 "dhcp6_parser.cc" +#line 2363 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 374: -#line 1334 "dhcp6_parser.yy" - { + case 388: +#line 1381 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2415 "dhcp6_parser.cc" +#line 2374 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 375: -#line 1339 "dhcp6_parser.yy" - { + case 389: +#line 1386 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2424 "dhcp6_parser.cc" +#line 2383 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 380: -#line 1354 "dhcp6_parser.yy" - { + case 394: +#line 1401 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2434 "dhcp6_parser.cc" +#line 2393 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 381: -#line 1358 "dhcp6_parser.yy" - { + case 395: +#line 1405 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 2442 "dhcp6_parser.cc" +#line 2401 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 417: -#line 1405 "dhcp6_parser.yy" - { + case 431: +#line 1452 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2453 "dhcp6_parser.cc" +#line 2412 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 418: -#line 1410 "dhcp6_parser.yy" - { + case 432: +#line 1457 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2462 "dhcp6_parser.cc" +#line 2421 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 419: -#line 1418 "dhcp6_parser.yy" - { + case 433: +#line 1465 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2471 "dhcp6_parser.cc" +#line 2430 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 420: -#line 1421 "dhcp6_parser.yy" - { + case 434: +#line 1468 "dhcp6_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 2479 "dhcp6_parser.cc" +#line 2438 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 425: -#line 1437 "dhcp6_parser.yy" - { + case 439: +#line 1484 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2489 "dhcp6_parser.cc" +#line 2448 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 426: -#line 1441 "dhcp6_parser.yy" - { + case 440: +#line 1488 "dhcp6_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2501 "dhcp6_parser.cc" +#line 2460 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 427: -#line 1452 "dhcp6_parser.yy" - { + case 441: +#line 1499 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2511 "dhcp6_parser.cc" +#line 2470 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 428: -#line 1456 "dhcp6_parser.yy" - { + case 442: +#line 1503 "dhcp6_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2523 "dhcp6_parser.cc" +#line 2482 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 444: -#line 1488 "dhcp6_parser.yy" - { - ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 458: +#line 1535 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2532 "dhcp6_parser.cc" +#line 2491 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 446: -#line 1495 "dhcp6_parser.yy" - { + case 460: +#line 1542 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2540 "dhcp6_parser.cc" +#line 2499 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 447: -#line 1497 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 461: +#line 1544 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2550 "dhcp6_parser.cc" +#line 2509 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 448: -#line 1503 "dhcp6_parser.yy" - { + case 462: +#line 1550 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2558 "dhcp6_parser.cc" +#line 2517 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 449: -#line 1505 "dhcp6_parser.yy" - { - ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 463: +#line 1552 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2568 "dhcp6_parser.cc" +#line 2527 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 450: -#line 1511 "dhcp6_parser.yy" - { + case 464: +#line 1558 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2576 "dhcp6_parser.cc" +#line 2535 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 451: -#line 1513 "dhcp6_parser.yy" - { - ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 465: +#line 1560 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2586 "dhcp6_parser.cc" +#line 2545 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 453: -#line 1521 "dhcp6_parser.yy" - { + case 467: +#line 1568 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2594 "dhcp6_parser.cc" +#line 2553 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 454: -#line 1523 "dhcp6_parser.yy" - { - ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 468: +#line 1570 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2604 "dhcp6_parser.cc" +#line 2563 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 455: -#line 1529 "dhcp6_parser.yy" - { - ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 469: +#line 1576 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2613 "dhcp6_parser.cc" +#line 2572 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 456: -#line 1538 "dhcp6_parser.yy" - { + case 470: +#line 1585 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2624 "dhcp6_parser.cc" +#line 2583 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 457: -#line 1543 "dhcp6_parser.yy" - { + case 471: +#line 1590 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2633 "dhcp6_parser.cc" +#line 2592 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 462: -#line 1562 "dhcp6_parser.yy" - { + case 476: +#line 1609 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2643 "dhcp6_parser.cc" +#line 2602 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 463: -#line 1566 "dhcp6_parser.yy" - { + case 477: +#line 1613 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2652 "dhcp6_parser.cc" +#line 2611 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 464: -#line 1574 "dhcp6_parser.yy" - { + case 478: +#line 1621 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2662 "dhcp6_parser.cc" +#line 2621 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 465: -#line 1578 "dhcp6_parser.yy" - { + case 479: +#line 1625 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. // parsing completed } -#line 2671 "dhcp6_parser.cc" +#line 2630 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 480: -#line 1611 "dhcp6_parser.yy" - { + case 494: +#line 1658 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2679 "dhcp6_parser.cc" +#line 2638 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 481: -#line 1613 "dhcp6_parser.yy" - { - ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 495: +#line 1660 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2689 "dhcp6_parser.cc" +#line 2648 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 484: -#line 1623 "dhcp6_parser.yy" - { - ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 498: +#line 1670 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2698 "dhcp6_parser.cc" +#line 2657 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 485: -#line 1628 "dhcp6_parser.yy" - { - ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 499: +#line 1675 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2707 "dhcp6_parser.cc" +#line 2666 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 486: -#line 1636 "dhcp6_parser.yy" - { + case 500: +#line 1683 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2718 "dhcp6_parser.cc" +#line 2677 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 487: -#line 1641 "dhcp6_parser.yy" - { + case 501: +#line 1688 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2727 "dhcp6_parser.cc" +#line 2686 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 492: -#line 1656 "dhcp6_parser.yy" - { + case 506: +#line 1703 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2737 "dhcp6_parser.cc" +#line 2696 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 493: -#line 1660 "dhcp6_parser.yy" - { + case 507: +#line 1707 "dhcp6_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2747 "dhcp6_parser.cc" +#line 2706 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 494: -#line 1666 "dhcp6_parser.yy" - { + case 508: +#line 1713 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2757 "dhcp6_parser.cc" +#line 2716 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 495: -#line 1670 "dhcp6_parser.yy" - { + case 509: +#line 1717 "dhcp6_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); + // parsing completed } -#line 2766 "dhcp6_parser.cc" +#line 2726 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 505: -#line 1688 "dhcp6_parser.yy" - { + case 519: +#line 1736 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2774 "dhcp6_parser.cc" +#line 2734 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 506: -#line 1690 "dhcp6_parser.yy" - { - ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 520: +#line 1738 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2784 "dhcp6_parser.cc" +#line 2744 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 507: -#line 1696 "dhcp6_parser.yy" - { + case 521: +#line 1744 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2792 "dhcp6_parser.cc" +#line 2752 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 508: -#line 1698 "dhcp6_parser.yy" - { + case 522: +#line 1746 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); - ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); + ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); ConstElementPtr old = parent->get("user-context"); // Handle already existing user context @@ -2815,23 +2775,23 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2819 "dhcp6_parser.cc" +#line 2779 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 509: -#line 1721 "dhcp6_parser.yy" - { + case 523: +#line 1769 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2827 "dhcp6_parser.cc" +#line 2787 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 510: -#line 1723 "dhcp6_parser.yy" - { + case 524: +#line 1771 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); - ElementPtr comment(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); user_context->set("comment", comment); // Handle already existing user context @@ -2852,1291 +2812,1286 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2856 "dhcp6_parser.cc" +#line 2816 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 511: -#line 1751 "dhcp6_parser.yy" - { + case 525: +#line 1799 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 2867 "dhcp6_parser.cc" +#line 2827 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 512: -#line 1756 "dhcp6_parser.yy" - { + case 526: +#line 1804 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2876 "dhcp6_parser.cc" +#line 2836 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 517: -#line 1771 "dhcp6_parser.yy" - { + case 531: +#line 1819 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2886 "dhcp6_parser.cc" +#line 2846 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 518: -#line 1775 "dhcp6_parser.yy" - { + case 532: +#line 1823 "dhcp6_parser.yy" // lalr1.cc:859 + { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("prefix-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2898 "dhcp6_parser.cc" +#line 2858 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 519: -#line 1783 "dhcp6_parser.yy" - { + case 533: +#line 1831 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2908 "dhcp6_parser.cc" +#line 2868 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 520: -#line 1787 "dhcp6_parser.yy" - { + case 534: +#line 1835 "dhcp6_parser.yy" // lalr1.cc:859 + { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("prefix-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2920 "dhcp6_parser.cc" +#line 2880 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 534: -#line 1812 "dhcp6_parser.yy" - { + case 548: +#line 1860 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2928 "dhcp6_parser.cc" +#line 2888 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 535: -#line 1814 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 549: +#line 1862 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 2938 "dhcp6_parser.cc" +#line 2898 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 536: -#line 1820 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 550: +#line 1868 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 2947 "dhcp6_parser.cc" +#line 2907 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 537: -#line 1825 "dhcp6_parser.yy" - { + case 551: +#line 1873 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2955 "dhcp6_parser.cc" +#line 2915 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 538: -#line 1827 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 552: +#line 1875 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 2965 "dhcp6_parser.cc" +#line 2925 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 539: -#line 1833 "dhcp6_parser.yy" - { - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 553: +#line 1881 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 2974 "dhcp6_parser.cc" +#line 2934 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 540: -#line 1838 "dhcp6_parser.yy" - { - ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 554: +#line 1886 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 2983 "dhcp6_parser.cc" +#line 2943 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 541: -#line 1846 "dhcp6_parser.yy" - { + case 555: +#line 1894 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2994 "dhcp6_parser.cc" +#line 2954 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 542: -#line 1851 "dhcp6_parser.yy" - { + case 556: +#line 1899 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3003 "dhcp6_parser.cc" +#line 2963 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 547: -#line 1864 "dhcp6_parser.yy" - { + case 561: +#line 1912 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3013 "dhcp6_parser.cc" +#line 2973 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 548: -#line 1868 "dhcp6_parser.yy" - { + case 562: +#line 1916 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3022 "dhcp6_parser.cc" +#line 2982 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 549: -#line 1873 "dhcp6_parser.yy" - { + case 563: +#line 1921 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3032 "dhcp6_parser.cc" +#line 2992 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 550: -#line 1877 "dhcp6_parser.yy" - { + case 564: +#line 1925 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. // parsing completed } -#line 3041 "dhcp6_parser.cc" +#line 3001 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 566: -#line 1904 "dhcp6_parser.yy" - { + case 580: +#line 1952 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3052 "dhcp6_parser.cc" +#line 3012 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 567: -#line 1909 "dhcp6_parser.yy" - { + case 581: +#line 1957 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3061 "dhcp6_parser.cc" +#line 3021 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 568: -#line 1914 "dhcp6_parser.yy" - { + case 582: +#line 1962 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3072 "dhcp6_parser.cc" +#line 3032 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 569: -#line 1919 "dhcp6_parser.yy" - { + case 583: +#line 1967 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3081 "dhcp6_parser.cc" +#line 3041 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 570: -#line 1924 "dhcp6_parser.yy" - { + case 584: +#line 1972 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3089 "dhcp6_parser.cc" +#line 3049 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 571: -#line 1926 "dhcp6_parser.yy" - { - ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 585: +#line 1974 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3099 "dhcp6_parser.cc" +#line 3059 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 572: -#line 1932 "dhcp6_parser.yy" - { + case 586: +#line 1980 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3107 "dhcp6_parser.cc" +#line 3067 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 573: -#line 1934 "dhcp6_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 587: +#line 1982 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3117 "dhcp6_parser.cc" +#line 3077 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 574: -#line 1940 "dhcp6_parser.yy" - { + case 588: +#line 1988 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3125 "dhcp6_parser.cc" +#line 3085 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 575: -#line 1942 "dhcp6_parser.yy" - { - ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 589: +#line 1990 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3135 "dhcp6_parser.cc" +#line 3095 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 576: -#line 1948 "dhcp6_parser.yy" - { + case 590: +#line 1996 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3143 "dhcp6_parser.cc" +#line 3103 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 577: -#line 1950 "dhcp6_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 591: +#line 1998 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3153 "dhcp6_parser.cc" +#line 3113 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 578: -#line 1956 "dhcp6_parser.yy" - { + case 592: +#line 2004 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3164 "dhcp6_parser.cc" +#line 3124 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 579: -#line 1961 "dhcp6_parser.yy" - { + case 593: +#line 2009 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3173 "dhcp6_parser.cc" +#line 3133 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 580: -#line 1969 "dhcp6_parser.yy" - { + case 594: +#line 2017 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3184 "dhcp6_parser.cc" +#line 3144 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 581: -#line 1974 "dhcp6_parser.yy" - { + case 595: +#line 2022 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3193 "dhcp6_parser.cc" +#line 3153 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 584: -#line 1983 "dhcp6_parser.yy" - { + case 598: +#line 2031 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3201 "dhcp6_parser.cc" +#line 3161 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 585: -#line 1985 "dhcp6_parser.yy" - { - ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 599: +#line 2033 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3211 "dhcp6_parser.cc" +#line 3171 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 586: -#line 1994 "dhcp6_parser.yy" - { + case 600: +#line 2042 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3222 "dhcp6_parser.cc" +#line 3182 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 587: -#line 1999 "dhcp6_parser.yy" - { + case 601: +#line 2047 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3231 "dhcp6_parser.cc" +#line 3191 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 590: -#line 2008 "dhcp6_parser.yy" - { + case 604: +#line 2056 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3241 "dhcp6_parser.cc" +#line 3201 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 591: -#line 2012 "dhcp6_parser.yy" - { + case 605: +#line 2060 "dhcp6_parser.yy" // lalr1.cc:859 + { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3251 "dhcp6_parser.cc" +#line 3211 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 604: -#line 2037 "dhcp6_parser.yy" - { + case 618: +#line 2085 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3259 "dhcp6_parser.cc" +#line 3219 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 605: -#line 2039 "dhcp6_parser.yy" - { - ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 619: +#line 2087 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3269 "dhcp6_parser.cc" +#line 3229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 606: -#line 2045 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 620: +#line 2093 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3278 "dhcp6_parser.cc" +#line 3238 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 607: -#line 2053 "dhcp6_parser.yy" - { + case 621: +#line 2101 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3289 "dhcp6_parser.cc" +#line 3249 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 608: -#line 2058 "dhcp6_parser.yy" - { + case 622: +#line 2106 "dhcp6_parser.yy" // lalr1.cc:859 + { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3300 "dhcp6_parser.cc" +#line 3260 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 620: -#line 2080 "dhcp6_parser.yy" - { + case 634: +#line 2128 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.DUID_TYPE); } -#line 3308 "dhcp6_parser.cc" +#line 3268 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 621: -#line 2082 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + case 635: +#line 2130 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3317 "dhcp6_parser.cc" +#line 3277 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 622: -#line 2087 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3323 "dhcp6_parser.cc" + case 636: +#line 2135 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } +#line 3283 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 623: -#line 2088 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3329 "dhcp6_parser.cc" + case 637: +#line 2136 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } +#line 3289 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 624: -#line 2089 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3335 "dhcp6_parser.cc" + case 638: +#line 2137 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } +#line 3295 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 625: -#line 2092 "dhcp6_parser.yy" - { - ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 639: +#line 2140 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3344 "dhcp6_parser.cc" +#line 3304 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 626: -#line 2097 "dhcp6_parser.yy" - { + case 640: +#line 2145 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3352 "dhcp6_parser.cc" +#line 3312 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 627: -#line 2099 "dhcp6_parser.yy" - { - ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 641: +#line 2147 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3362 "dhcp6_parser.cc" +#line 3322 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 628: -#line 2105 "dhcp6_parser.yy" - { - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 642: +#line 2153 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3371 "dhcp6_parser.cc" +#line 3331 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 629: -#line 2110 "dhcp6_parser.yy" - { - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 643: +#line 2158 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3380 "dhcp6_parser.cc" +#line 3340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 630: -#line 2117 "dhcp6_parser.yy" - { - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 644: +#line 2165 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3389 "dhcp6_parser.cc" +#line 3349 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 631: -#line 2124 "dhcp6_parser.yy" - { + case 645: +#line 2172 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3400 "dhcp6_parser.cc" +#line 3360 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 632: -#line 2129 "dhcp6_parser.yy" - { + case 646: +#line 2177 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3409 "dhcp6_parser.cc" +#line 3369 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 640: -#line 2145 "dhcp6_parser.yy" - { + case 654: +#line 2193 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3417 "dhcp6_parser.cc" +#line 3377 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 641: -#line 2147 "dhcp6_parser.yy" - { - ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 655: +#line 2195 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3427 "dhcp6_parser.cc" +#line 3387 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 642: -#line 2153 "dhcp6_parser.yy" - { + case 656: +#line 2201 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3435 "dhcp6_parser.cc" +#line 3395 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 643: -#line 2155 "dhcp6_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 657: +#line 2203 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3445 "dhcp6_parser.cc" +#line 3405 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 644: -#line 2163 "dhcp6_parser.yy" - { + case 658: +#line 2212 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-queue-control", qc); ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3456 "dhcp6_parser.cc" +#line 3416 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 645: -#line 2168 "dhcp6_parser.yy" - { + case 659: +#line 2217 "dhcp6_parser.yy" // lalr1.cc:859 + { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3467 "dhcp6_parser.cc" +#line 3427 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 654: -#line 2187 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + case 668: +#line 2236 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3476 "dhcp6_parser.cc" +#line 3436 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 655: -#line 2192 "dhcp6_parser.yy" - { + case 669: +#line 2241 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3484 "dhcp6_parser.cc" +#line 3444 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 656: -#line 2194 "dhcp6_parser.yy" - { - ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 670: +#line 2243 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr qt(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 3494 "dhcp6_parser.cc" +#line 3454 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 657: -#line 2200 "dhcp6_parser.yy" - { - ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 671: +#line 2249 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3503 "dhcp6_parser.cc" +#line 3463 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 658: -#line 2205 "dhcp6_parser.yy" - { + case 672: +#line 2254 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3511 "dhcp6_parser.cc" +#line 3471 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 659: -#line 2207 "dhcp6_parser.yy" - { - ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + case 673: +#line 2256 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set(yystack_[3].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3520 "dhcp6_parser.cc" +#line 3480 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 660: -#line 2214 "dhcp6_parser.yy" - { + case 674: +#line 2263 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3531 "dhcp6_parser.cc" +#line 3491 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 661: -#line 2219 "dhcp6_parser.yy" - { + case 675: +#line 2268 "dhcp6_parser.yy" // lalr1.cc:859 + { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3542 "dhcp6_parser.cc" +#line 3502 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 662: -#line 2226 "dhcp6_parser.yy" - { + case 676: +#line 2275 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3552 "dhcp6_parser.cc" +#line 3512 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 663: -#line 2230 "dhcp6_parser.yy" - { + case 677: +#line 2279 "dhcp6_parser.yy" // lalr1.cc:859 + { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3562 "dhcp6_parser.cc" - break; - - case 684: -#line 2260 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("enable-updates", b); -} -#line 3571 "dhcp6_parser.cc" - break; - - case 685: -#line 2265 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3579 "dhcp6_parser.cc" - break; - - case 686: -#line 2267 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("qualifying-suffix", s); - ctx.leave(); -} -#line 3589 "dhcp6_parser.cc" - break; - - case 687: -#line 2273 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3597 "dhcp6_parser.cc" - break; - - case 688: -#line 2275 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("server-ip", s); - ctx.leave(); -} -#line 3607 "dhcp6_parser.cc" - break; - - case 689: -#line 2281 "dhcp6_parser.yy" - { - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("server-port", i); -} -#line 3616 "dhcp6_parser.cc" - break; - - case 690: -#line 2286 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3624 "dhcp6_parser.cc" - break; - - case 691: -#line 2288 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("sender-ip", s); - ctx.leave(); -} -#line 3634 "dhcp6_parser.cc" - break; - - case 692: -#line 2294 "dhcp6_parser.yy" - { - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("sender-port", i); -} -#line 3643 "dhcp6_parser.cc" - break; - - case 693: -#line 2299 "dhcp6_parser.yy" - { - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-queue-size", i); -} -#line 3652 "dhcp6_parser.cc" - break; - - case 694: -#line 2304 "dhcp6_parser.yy" - { - ctx.enter(ctx.NCR_PROTOCOL); -} -#line 3660 "dhcp6_parser.cc" - break; - - case 695: -#line 2306 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 3669 "dhcp6_parser.cc" - break; - - case 696: -#line 2312 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3675 "dhcp6_parser.cc" - break; - - case 697: -#line 2313 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3681 "dhcp6_parser.cc" +#line 3522 "dhcp6_parser.cc" // lalr1.cc:859 break; case 698: -#line 2316 "dhcp6_parser.yy" - { - ctx.enter(ctx.NCR_FORMAT); +#line 2309 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("enable-updates", b); } -#line 3689 "dhcp6_parser.cc" +#line 3531 "dhcp6_parser.cc" // lalr1.cc:859 break; case 699: -#line 2318 "dhcp6_parser.yy" - { +#line 2314 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3539 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 700: +#line 2316 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("qualifying-suffix", s); + ctx.leave(); +} +#line 3549 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 701: +#line 2322 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3557 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 702: +#line 2324 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("server-ip", s); + ctx.leave(); +} +#line 3567 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 703: +#line 2330 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("server-port", i); +} +#line 3576 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 704: +#line 2335 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3584 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 705: +#line 2337 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("sender-ip", s); + ctx.leave(); +} +#line 3594 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 706: +#line 2343 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("sender-port", i); +} +#line 3603 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 707: +#line 2348 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-queue-size", i); +} +#line 3612 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 708: +#line 2353 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NCR_PROTOCOL); +} +#line 3620 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 709: +#line 2355 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3629 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 710: +#line 2361 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } +#line 3635 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 711: +#line 2362 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } +#line 3641 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 712: +#line 2365 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NCR_FORMAT); +} +#line 3649 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 713: +#line 2367 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3699 "dhcp6_parser.cc" - break; - - case 700: -#line 2325 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("override-no-update", b); -} -#line 3708 "dhcp6_parser.cc" - break; - - case 701: -#line 2331 "dhcp6_parser.yy" - { - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("override-client-update", b); -} -#line 3717 "dhcp6_parser.cc" - break; - - case 702: -#line 2337 "dhcp6_parser.yy" - { - ctx.enter(ctx.REPLACE_CLIENT_NAME); -} -#line 3725 "dhcp6_parser.cc" - break; - - case 703: -#line 2339 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 3734 "dhcp6_parser.cc" - break; - - case 704: -#line 2345 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3742 "dhcp6_parser.cc" - break; - - case 705: -#line 2347 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("generated-prefix", s); - ctx.leave(); -} -#line 3752 "dhcp6_parser.cc" - break; - - case 706: -#line 2354 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3760 "dhcp6_parser.cc" - break; - - case 707: -#line 2356 "dhcp6_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); - ctx.leave(); -} -#line 3770 "dhcp6_parser.cc" - break; - - case 708: -#line 2363 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3778 "dhcp6_parser.cc" - break; - - case 709: -#line 2365 "dhcp6_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); - ctx.leave(); -} -#line 3788 "dhcp6_parser.cc" - break; - - case 710: -#line 2373 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3796 "dhcp6_parser.cc" - break; - - case 711: -#line 2375 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 3805 "dhcp6_parser.cc" - break; - - case 712: -#line 2380 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3813 "dhcp6_parser.cc" - break; - - case 713: -#line 2382 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 3822 "dhcp6_parser.cc" +#line 3659 "dhcp6_parser.cc" // lalr1.cc:859 break; case 714: -#line 2387 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); +#line 2374 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("override-no-update", b); } -#line 3830 "dhcp6_parser.cc" +#line 3668 "dhcp6_parser.cc" // lalr1.cc:859 break; case 715: -#line 2389 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); +#line 2380 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("override-client-update", b); } -#line 3839 "dhcp6_parser.cc" +#line 3677 "dhcp6_parser.cc" // lalr1.cc:859 break; case 716: -#line 2396 "dhcp6_parser.yy" - { +#line 2386 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.REPLACE_CLIENT_NAME); +} +#line 3685 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 717: +#line 2388 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3694 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 718: +#line 2394 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3702 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 719: +#line 2396 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("generated-prefix", s); + ctx.leave(); +} +#line 3712 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 720: +#line 2403 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3720 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 721: +#line 2405 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-set", s); + ctx.leave(); +} +#line 3730 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 722: +#line 2412 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3738 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 723: +#line 2414 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname-char-replacement", s); + ctx.leave(); +} +#line 3748 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 724: +#line 2423 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3756 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 725: +#line 2425 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3765 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 726: +#line 2430 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3773 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 727: +#line 2432 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3782 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 728: +#line 2437 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3790 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 729: +#line 2439 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 3799 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 730: +#line 2446 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3850 "dhcp6_parser.cc" +#line 3810 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 717: -#line 2401 "dhcp6_parser.yy" - { + case 731: +#line 2451 "dhcp6_parser.yy" // lalr1.cc:859 + { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3860 "dhcp6_parser.cc" +#line 3820 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 718: -#line 2407 "dhcp6_parser.yy" - { + case 732: +#line 2457 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3870 "dhcp6_parser.cc" +#line 3830 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 719: -#line 2411 "dhcp6_parser.yy" - { + case 733: +#line 2461 "dhcp6_parser.yy" // lalr1.cc:859 + { // No config_control params are required // parsing completed } -#line 3879 "dhcp6_parser.cc" +#line 3839 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 724: -#line 2426 "dhcp6_parser.yy" - { + case 738: +#line 2476 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3890 "dhcp6_parser.cc" +#line 3850 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 725: -#line 2431 "dhcp6_parser.yy" - { + case 739: +#line 2481 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3899 "dhcp6_parser.cc" +#line 3859 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 726: -#line 2436 "dhcp6_parser.yy" - { - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 740: +#line 2486 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 3908 "dhcp6_parser.cc" +#line 3868 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 727: -#line 2446 "dhcp6_parser.yy" - { + case 741: +#line 2496 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3919 "dhcp6_parser.cc" +#line 3879 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 728: -#line 2451 "dhcp6_parser.yy" - { + case 742: +#line 2501 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3928 "dhcp6_parser.cc" +#line 3888 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 729: -#line 2456 "dhcp6_parser.yy" - { + case 743: +#line 2506 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3938 "dhcp6_parser.cc" +#line 3898 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 730: -#line 2460 "dhcp6_parser.yy" - { + case 744: +#line 2510 "dhcp6_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 3946 "dhcp6_parser.cc" +#line 3906 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 734: -#line 2476 "dhcp6_parser.yy" - { + case 748: +#line 2526 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3957 "dhcp6_parser.cc" +#line 3917 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 735: -#line 2481 "dhcp6_parser.yy" - { + case 749: +#line 2531 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3966 "dhcp6_parser.cc" +#line 3926 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 738: -#line 2493 "dhcp6_parser.yy" - { + case 752: +#line 2543 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3976 "dhcp6_parser.cc" +#line 3936 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 739: -#line 2497 "dhcp6_parser.yy" - { + case 753: +#line 2547 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 3984 "dhcp6_parser.cc" +#line 3944 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 749: -#line 2514 "dhcp6_parser.yy" - { - ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + case 763: +#line 2564 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3993 "dhcp6_parser.cc" +#line 3953 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 750: -#line 2519 "dhcp6_parser.yy" - { + case 764: +#line 2569 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 4001 "dhcp6_parser.cc" +#line 3961 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 751: -#line 2521 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 765: +#line 2571 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4011 "dhcp6_parser.cc" +#line 3971 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 752: -#line 2527 "dhcp6_parser.yy" - { + case 766: +#line 2577 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4022 "dhcp6_parser.cc" +#line 3982 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 753: -#line 2532 "dhcp6_parser.yy" - { + case 767: +#line 2582 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4031 "dhcp6_parser.cc" +#line 3991 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 756: -#line 2541 "dhcp6_parser.yy" - { + case 770: +#line 2591 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4041 "dhcp6_parser.cc" - break; - - case 757: -#line 2545 "dhcp6_parser.yy" - { - ctx.stack_.pop_back(); -} -#line 4049 "dhcp6_parser.cc" - break; - - case 765: -#line 2560 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 4057 "dhcp6_parser.cc" - break; - - case 766: -#line 2562 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("output", sev); - ctx.leave(); -} -#line 4067 "dhcp6_parser.cc" - break; - - case 767: -#line 2568 "dhcp6_parser.yy" - { - ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("flush", flush); -} -#line 4076 "dhcp6_parser.cc" - break; - - case 768: -#line 2573 "dhcp6_parser.yy" - { - ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("maxsize", maxsize); -} -#line 4085 "dhcp6_parser.cc" - break; - - case 769: -#line 2578 "dhcp6_parser.yy" - { - ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("maxver", maxver); -} -#line 4094 "dhcp6_parser.cc" - break; - - case 770: -#line 2583 "dhcp6_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 4102 "dhcp6_parser.cc" +#line 4001 "dhcp6_parser.cc" // lalr1.cc:859 break; case 771: -#line 2585 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); +#line 2595 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 4009 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 779: +#line 2610 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 4017 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 780: +#line 2612 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("output", sev); + ctx.leave(); +} +#line 4027 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 781: +#line 2618 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("flush", flush); +} +#line 4036 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 782: +#line 2623 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("maxsize", maxsize); +} +#line 4045 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 783: +#line 2628 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("maxver", maxver); +} +#line 4054 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 784: +#line 2633 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 4062 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 785: +#line 2635 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4112 "dhcp6_parser.cc" +#line 4072 "dhcp6_parser.cc" // lalr1.cc:859 break; -#line 4116 "dhcp6_parser.cc" - +#line 4076 "dhcp6_parser.cc" // lalr1.cc:859 default: break; } } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); YYERROR; } -#endif // YY_EXCEPTIONS YY_SYMBOL_PRINT ("-> $$ =", yylhs); yypop_ (yylen); yylen = 0; YY_STACK_PRINT (); // Shift the result of the reduction. - yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); + yypush_ (YY_NULLPTR, yylhs); } goto yynewstate; - /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ @@ -4173,18 +4128,19 @@ namespace isc { namespace dhcp { | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and - the label yyerrorlab therefore never appears in user code. */ - if (false) - YYERROR; + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (false) + goto yyerrorlab; + yyerror_range[1].location = yystack_[yylen - 1].location; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); yylen = 0; goto yyerrlab1; - /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ @@ -4194,11 +4150,11 @@ namespace isc { namespace dhcp { stack_symbol_type error_token; for (;;) { - yyn = yypact_[+yystack_[0].state]; + yyn = yypact_[yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += yy_error_token_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yy_error_token_) + yyn += yyterror_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) { yyn = yytable_[yyn]; if (0 < yyn) @@ -4220,31 +4176,21 @@ namespace isc { namespace dhcp { YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); // Shift the error token. - error_token.state = state_type (yyn); - yypush_ ("Shifting", YY_MOVE (error_token)); + error_token.state = yyn; + yypush_ ("Shifting", error_token); } goto yynewstate; - - /*-------------------------------------. - | yyacceptlab -- YYACCEPT comes here. | - `-------------------------------------*/ + // Accept. yyacceptlab: yyresult = 0; goto yyreturn; - - /*-----------------------------------. - | yyabortlab -- YYABORT comes here. | - `-----------------------------------*/ + // Abort. yyabortlab: yyresult = 1; goto yyreturn; - - /*-----------------------------------------------------. - | yyreturn -- parsing is finished, return the result. | - `-----------------------------------------------------*/ yyreturn: if (!yyla.empty ()) yy_destroy_ ("Cleanup: discarding lookahead", yyla); @@ -4260,12 +4206,12 @@ namespace isc { namespace dhcp { return yyresult; } -#if YY_EXCEPTIONS catch (...) { - YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; + YYCDEBUG << "Exception caught: cleaning lookahead and stack" + << std::endl; // Do not try to display the values of the reclaimed symbols, - // as their printers might throw an exception. + // as their printer might throw an exception. if (!yyla.empty ()) yy_destroy_ (YY_NULLPTR, yyla); @@ -4276,13 +4222,12 @@ namespace isc { namespace dhcp { } throw; } -#endif // YY_EXCEPTIONS } void Dhcp6Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what ()); + error (yyexc.location, yyexc.what()); } // Generate an error message. @@ -4291,7 +4236,7 @@ namespace isc { namespace dhcp { { // Number of reported tokens (one for the "unexpected", one per // "expected"). - std::ptrdiff_t yycount = 0; + size_t yycount = 0; // Its maximum. enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; // Arguments of yyformat. @@ -4315,18 +4260,18 @@ namespace isc { namespace dhcp { - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. + scanner and before detecting a syntax error. Thus, state + merging (from LALR or IELR) and default reductions corrupt the + expected token list. However, the list is correct for + canonical LR with one exception: it will still contain any + token that will not be accepted due to an error action in a + later state. */ if (!yyla.empty ()) { - symbol_number_type yytoken = yyla.type_get (); + int yytoken = yyla.type_get (); yyarg[yycount++] = yytname_[yytoken]; - - int yyn = yypact_[+yystate]; + int yyn = yypact_[yystate]; if (!yy_pact_value_is_default_ (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in @@ -4337,7 +4282,7 @@ namespace isc { namespace dhcp { int yychecklim = yylast_ - yyn + 1; int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != yy_error_token_ + if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_ && !yy_table_value_is_error_ (yytable_[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) @@ -4358,19 +4303,18 @@ namespace isc { namespace dhcp { case N: \ yyformat = S; \ break - default: // Avoid compiler warnings. - YYCASE_ (0, YY_("syntax error")); - YYCASE_ (1, YY_("syntax error, unexpected %s")); - YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); #undef YYCASE_ } std::string yyres; // Argument number. - std::ptrdiff_t yyi = 0; + size_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) { @@ -4383,834 +4327,854 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -945; + const short int Dhcp6Parser::yypact_ninf_ = -961; const signed char Dhcp6Parser::yytable_ninf_ = -1; - const short + const short int Dhcp6Parser::yypact_[] = { - 452, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, 66, 31, 73, 76, - 95, 160, 166, 168, 175, 177, 186, 196, 262, 280, - 286, 297, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, 31, -149, 29, 199, 28, 514, 126, 75, - 77, 27, 20, 260, -41, 538, -15, 46, -945, 269, - 274, 279, 298, 316, -945, -945, -945, -945, -945, 322, - -945, 49, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, 324, 340, 365, 366, 419, 427, - 429, 432, 442, 443, 445, 455, -945, 456, 463, 466, - 470, 471, -945, -945, -945, 472, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, 477, -945, -945, -945, -945, -945, -945, -945, - 101, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, 479, -945, 109, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, 481, 482, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, 143, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, 147, -945, -945, -945, -945, - -945, 486, -945, 487, 491, -945, -945, -945, -945, -945, - -945, 171, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, 330, - 359, -945, -945, -945, -945, -945, -945, -945, -945, 393, - -945, -945, 494, -945, -945, -945, 501, -945, -945, 403, - 503, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, 504, 505, -945, -945, -945, -945, - 499, 507, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, 194, -945, -945, -945, 508, -945, - -945, 513, -945, 516, 517, -945, -945, 519, 520, -945, - -945, -945, -945, -945, -945, -945, 201, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, 213, -945, -945, -945, 521, 217, -945, - -945, -945, -945, 31, 31, -945, 331, 525, 526, 528, - 529, 532, -945, 29, -945, 533, 534, 536, 537, 539, - 540, 353, 354, 355, 356, 357, 373, 374, 375, 313, - 383, 384, 376, 541, 387, 388, 389, 390, 391, 542, - 543, 544, 392, 550, 581, 582, 587, 589, 591, 592, - 593, 594, 595, 605, 606, 608, 609, 610, 612, 422, - 613, 616, 617, 622, 623, 624, 199, -945, 625, 449, - 28, -945, 646, 648, 649, 651, 652, 461, 460, 655, - 656, 657, 514, -945, 658, 126, -945, 659, 473, 664, - 474, 475, 75, -945, 668, 669, 670, 671, 673, 674, - 678, -945, 77, -945, 692, 693, 502, 695, 696, 697, - 509, -945, 20, 698, 510, 512, -945, 260, 701, 702, - 122, -945, 515, 707, 708, 522, 715, 524, 527, 717, - 718, 530, 531, 720, 721, 722, 723, 538, -945, -15, - -945, 726, 535, 46, -945, -945, -945, 728, 727, 729, - 31, 31, 31, -945, 545, 730, 731, 732, 734, 737, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, 548, -945, -945, -945, -945, -945, -99, 549, - 551, -945, 740, 742, 743, 744, 554, 288, 745, 747, - 748, 749, 750, 751, 753, 754, 755, 756, -945, 757, - 758, 759, 560, 565, 762, -945, 763, -945, -945, 764, - 765, 566, 576, 577, -945, -945, 763, 578, 767, -945, - 580, -945, 583, -945, 584, -945, -945, -945, 763, 763, - 763, 585, 586, 588, 590, -945, 596, 597, -945, 598, - 599, 600, -945, -945, 601, -945, -945, -945, 602, 31, - -945, -945, 603, 604, -945, 607, -945, -945, 157, 575, - -945, -945, -99, 611, 614, 615, -945, -945, 771, -945, - -945, 31, 199, -15, -945, -945, -945, -945, 46, 28, - 99, 99, 770, -945, -945, -945, -945, -945, -945, -945, - -945, -945, 775, 777, 779, -945, -945, -945, -945, -945, - -945, -945, -945, 780, -51, 31, 367, 685, 782, 783, - 793, 187, 37, 202, 35, 538, -945, -945, 794, -945, - -945, 796, 797, -945, -945, -945, -945, -945, -68, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, 770, -945, - 268, 270, 276, 287, -945, -945, -945, -945, 801, 803, - 804, 807, 808, -945, 809, 810, -945, -945, -945, 811, - 812, 813, 814, -945, 315, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, 334, -945, 815, 816, - -945, -945, 817, 819, -945, -945, 818, 822, -945, -945, - 820, 824, -945, -945, 823, 825, -945, -945, -945, 70, - -945, -945, -945, 826, -945, -945, -945, 87, -945, -945, - -945, -945, 342, -945, -945, -945, 102, -945, -945, 827, - 828, -945, -945, 829, 831, -945, 832, 833, 834, 835, - 836, 837, 348, -945, -945, -945, -945, -945, -945, -945, - -945, -945, 838, 839, 840, -945, -945, -945, -945, 349, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, 350, -945, -945, -945, 841, -945, 842, -945, -945, - -945, 351, -945, -945, -945, -945, -945, 352, -945, 146, - -945, 635, -945, 843, 844, -945, -945, 845, 847, -945, - -945, -945, 846, -945, 849, -945, -945, -945, -945, 848, - 852, 853, 854, 663, 650, 665, 662, 666, 859, 672, - 675, 860, 861, 862, 676, 677, 679, 680, 99, -945, - -945, 99, -945, 770, 514, -945, 775, 20, -945, 777, - 260, -945, 779, 327, -945, 780, -51, -945, -945, 367, - -945, 863, 685, -945, 79, 782, -945, 77, -945, 783, - -41, -945, 793, 682, 683, 684, 686, 687, 688, 187, - -945, 865, 866, 689, 690, 691, 37, -945, 870, 871, - 202, -945, 694, 877, 699, 884, 35, -945, -945, 153, - 794, -945, -945, 883, 850, 126, -945, 796, 75, -945, - 797, 887, -945, -945, 417, 703, 710, 713, -945, -945, - -945, -945, -945, 719, -945, -945, 724, 725, 733, -945, - -945, -945, -945, -945, 358, -945, 360, -945, 889, -945, - 895, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, 395, -945, -945, -945, -945, -945, -945, -945, -945, - 746, -945, -945, 917, -945, -945, -945, -945, -945, 915, - 922, -945, -945, -945, -945, -945, 919, -945, 396, -945, - -945, -945, -945, -945, -945, -945, -945, 296, 760, -945, - -945, -945, -945, 769, 791, -945, -945, 798, -945, 31, - -945, -945, 938, -945, -945, -945, -945, -945, 397, -945, - -945, -945, -945, -945, -945, 800, 404, -945, 407, -945, - 821, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, 327, -945, -945, - 946, 768, -945, 79, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, 953, 795, 985, 153, -945, - -945, -945, -945, -945, -945, 830, -945, -945, 987, -945, - 851, -945, -945, 999, -945, -945, 299, -945, 25, 999, - -945, -945, 1003, 1006, 1010, -945, 421, -945, -945, -945, - -945, -945, -945, -945, 1011, 855, 856, 858, 1014, 25, - -945, 864, -945, -945, -945, 867, -945, -945, -945 + 403, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, 50, 36, 45, 47, + 51, 65, 75, 119, 154, 164, 186, 197, 198, 208, + 259, 279, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, 36, -155, 26, 685, 31, 209, 91, 105, + 108, 21, 81, 262, -25, 205, -52, 86, -961, 122, + 159, 284, 286, 306, -961, -961, -961, -961, -961, 308, + -961, 43, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, 309, 322, 323, 324, 326, 335, + 346, 348, 349, 369, 395, 396, -961, 399, 402, 413, + 418, 419, -961, -961, -961, 422, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, 428, -961, -961, -961, -961, -961, -961, -961, + -961, 76, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, 430, -961, 93, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, 431, + 432, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, 100, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, 113, -961, -961, + -961, -961, -961, 434, -961, 435, 438, -961, -961, -961, + -961, -961, -961, 121, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, 333, 340, -961, -961, -961, -961, -961, -961, -961, + -961, 408, -961, -961, 439, -961, -961, -961, 440, -961, + -961, 437, 443, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, 445, 446, -961, -961, + -961, -961, 444, 459, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, 176, -961, -961, -961, + 462, -961, -961, 464, -961, 465, 466, -961, -961, 474, + 475, -961, -961, -961, -961, -961, -961, -961, 203, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, 221, -961, -961, -961, 478, + 240, -961, -961, -961, -961, 36, 36, -961, 264, 479, + 480, 481, 482, 483, -961, 26, -961, 484, 485, 486, + 490, 491, 493, 298, 299, 300, 301, 302, 304, 312, + 314, 305, 315, 316, 318, 502, 319, 320, 329, 332, + 334, 511, 520, 522, 336, 531, 535, 536, 537, 540, + 541, 542, 543, 547, 548, 549, 550, 551, 552, 568, + 569, 375, 570, 580, 598, 601, 604, 607, 609, 685, + -961, 610, 414, 31, -961, 613, 614, 616, 617, 619, + 424, 425, 622, 624, 625, 209, -961, 626, 91, -961, + 627, 436, 628, 441, 442, 105, -961, 630, 633, 634, + 635, 636, 639, 640, -961, 108, -961, 641, 642, 447, + 644, 645, 646, 449, -961, 81, 651, 455, 457, -961, + 262, 656, 657, -54, -961, 460, 659, 660, 467, 661, + 473, 476, 662, 670, 477, 487, 671, 673, 674, 677, + 205, -961, -52, -961, 678, 488, 86, -961, -961, -961, + 679, 514, 683, 36, 36, 36, -961, 494, 687, 688, + 691, 692, 680, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, 503, -961, -961, -961, -961, + -961, -105, 507, 508, -961, 696, 703, 704, 705, 512, + 155, 708, 709, 710, 712, 711, 714, 715, 716, 747, + 748, -961, 749, 750, 751, 752, 523, 524, 755, -961, + 756, -961, -961, 757, 758, 565, 566, 567, -961, -961, + 756, 571, 760, -961, 574, -961, 575, -961, 576, -961, + -961, -961, 756, 756, 756, 577, 578, 581, 582, -961, + 583, 589, -961, 591, 592, 593, -961, -961, 594, -961, + -961, -961, 596, 36, -961, -961, 597, 599, -961, 600, + -961, -961, 102, 528, -961, -961, -105, 602, 603, 605, + -961, -961, 763, -961, -961, 36, 685, -52, -961, -961, + -961, -961, 86, 31, 106, 106, 762, -961, -961, -961, + -961, -961, -961, -961, -961, -961, 772, 790, 793, -961, + -961, -961, -961, -961, -961, -961, -961, 798, -48, 36, + 70, 706, 800, 801, 803, 245, 68, 145, 195, 94, + 205, -961, -961, 804, -961, -961, 805, 807, -961, -961, + -961, -961, -961, -68, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, 762, -961, 303, 307, 313, 321, -961, + -961, -961, -961, 811, 812, 813, 814, 815, -961, 816, + 819, -961, -961, -961, 820, 821, 823, 824, -961, 337, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, 339, -961, 825, 681, -961, -961, 826, 707, -961, + -961, 828, 827, -961, -961, 829, 833, -961, -961, 831, + 835, -961, -961, -961, 107, -961, -961, -961, 834, -961, + -961, -961, 166, -961, -961, -961, -961, 373, -961, -961, + -961, 211, -961, -961, 836, 838, -961, -961, 837, 841, + -961, 842, 843, 844, 845, 846, 847, 374, -961, -961, + -961, -961, -961, -961, -961, -961, -961, 848, 849, 852, + -961, -961, -961, -961, 377, -961, -961, -961, -961, -961, + -961, 854, 855, 856, -961, 380, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, 381, -961, -961, + -961, 857, -961, 858, -961, -961, -961, 383, -961, -961, + -961, -961, -961, 384, -961, 272, -961, 664, -961, 839, + 861, -961, -961, 859, 863, -961, -961, -961, 860, -961, + 864, -961, -961, -961, -961, 865, 867, 868, 869, 667, + 637, 675, 672, 676, 873, 682, 686, 874, 875, 876, + 689, 690, 693, 694, 106, -961, -961, 106, -961, 762, + 209, -961, 772, 81, -961, 790, 262, -961, 793, 517, + -961, 798, -48, -961, -961, 70, -961, 877, 706, -961, + -1, 800, -961, 108, -961, 801, -25, -961, 803, 697, + 698, 699, 700, 701, 702, 245, -961, 879, 881, 713, + 719, 721, 68, -961, 722, 730, 735, 145, -961, 883, + 884, 195, -961, 734, 887, 737, 888, 94, -961, -961, + 147, 804, -961, -961, 890, 900, 91, -961, 805, 105, + -961, 807, 889, -961, -961, 405, 740, 742, 744, -961, + -961, -961, -961, -961, 745, -961, -961, 753, 771, 778, + -961, -961, -961, -961, -961, 387, -961, 390, -961, 896, + -961, 897, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, 393, -961, -961, -961, -961, -961, -961, -961, + -961, 781, -961, -961, 903, -961, -961, -961, -961, -961, + 906, 905, -961, -961, -961, -961, -961, 938, -961, 394, + -961, -961, -961, -961, -961, -961, -961, -961, 97, 784, + -961, -961, -961, -961, -961, -961, -961, -961, 787, 809, + -961, -961, 840, -961, 36, -961, -961, 907, -961, -961, + -961, -961, -961, 404, -961, -961, -961, -961, -961, -961, + 850, 410, -961, 411, -961, 851, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, 517, -961, -961, 946, 759, -961, -1, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + 947, 754, 951, 147, -961, -961, -961, -961, -961, -961, + 853, -961, -961, 984, -961, 862, -961, -961, 985, -961, + -961, 273, -961, -14, 985, -961, -961, 993, 996, 1007, + -961, 412, -961, -961, -961, -961, -961, -961, -961, 1009, + 830, 866, 870, 1026, -14, -961, 872, -961, -961, -961, + 878, -961, -961, -961 }; - const short + const unsigned short int Dhcp6Parser::yydefact_[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 47, 40, 36, 35, 32, 33, 34, - 39, 3, 37, 38, 60, 5, 72, 7, 167, 9, - 316, 11, 494, 13, 519, 15, 549, 17, 419, 19, - 427, 21, 464, 23, 281, 25, 662, 27, 729, 29, - 718, 31, 49, 43, 0, 0, 0, 0, 0, 0, - 551, 0, 429, 466, 0, 0, 0, 0, 51, 0, - 50, 0, 0, 44, 70, 727, 710, 712, 714, 0, - 69, 0, 62, 64, 66, 67, 68, 65, 128, 716, - 165, 179, 181, 183, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, - 0, 0, 145, 152, 154, 0, 308, 417, 456, 507, - 509, 366, 374, 254, 271, 262, 247, 586, 541, 273, - 292, 607, 0, 631, 644, 660, 156, 158, 734, 127, - 0, 74, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 112, 113, 114, 85, 118, 119, 120, 121, 122, - 123, 116, 117, 124, 125, 126, 110, 88, 89, 90, - 91, 107, 92, 94, 93, 98, 99, 86, 111, 87, - 96, 97, 105, 106, 108, 95, 100, 101, 102, 103, - 104, 109, 115, 176, 0, 175, 0, 169, 171, 172, - 173, 174, 486, 511, 356, 358, 360, 0, 0, 364, - 362, 580, 355, 320, 321, 322, 323, 324, 325, 326, - 327, 343, 344, 345, 348, 349, 350, 351, 352, 353, - 346, 347, 354, 0, 318, 331, 332, 333, 336, 337, - 339, 334, 335, 328, 329, 341, 342, 330, 338, 340, - 505, 504, 500, 501, 499, 0, 496, 498, 502, 503, - 534, 0, 537, 0, 0, 533, 527, 528, 526, 531, - 532, 0, 521, 523, 524, 529, 530, 525, 578, 566, - 568, 570, 572, 574, 576, 565, 562, 563, 564, 0, - 552, 553, 557, 558, 555, 559, 560, 561, 556, 0, - 446, 227, 0, 450, 448, 453, 0, 442, 443, 0, - 430, 431, 433, 445, 434, 435, 436, 452, 437, 438, - 439, 440, 441, 480, 0, 0, 478, 479, 482, 483, - 0, 467, 468, 470, 471, 472, 473, 474, 475, 476, - 477, 288, 290, 285, 0, 283, 286, 287, 0, 685, - 687, 0, 690, 0, 0, 694, 698, 0, 0, 702, - 704, 706, 708, 683, 681, 682, 0, 664, 666, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 0, 731, 733, 724, 0, 0, 720, - 722, 723, 48, 0, 0, 41, 0, 0, 0, 0, - 0, 0, 59, 0, 61, 0, 0, 0, 0, 0, + 39, 3, 37, 38, 60, 5, 72, 7, 168, 9, + 330, 11, 508, 13, 533, 15, 563, 17, 433, 19, + 441, 21, 478, 23, 295, 25, 676, 27, 743, 29, + 732, 31, 49, 43, 0, 0, 0, 0, 0, 0, + 565, 0, 443, 480, 0, 0, 0, 0, 51, 0, + 50, 0, 0, 44, 70, 741, 724, 726, 728, 0, + 69, 0, 62, 64, 66, 67, 68, 65, 129, 730, + 166, 180, 182, 184, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, + 0, 0, 146, 153, 155, 0, 322, 431, 470, 521, + 523, 380, 388, 255, 272, 263, 248, 600, 555, 287, + 306, 621, 0, 274, 645, 658, 674, 157, 159, 748, + 128, 0, 74, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 112, 113, 114, 85, 118, 119, 120, 121, + 122, 123, 116, 117, 124, 125, 126, 110, 88, 89, + 90, 91, 107, 92, 94, 93, 127, 98, 99, 86, + 111, 87, 96, 97, 105, 106, 108, 95, 100, 101, + 102, 103, 104, 109, 115, 177, 0, 176, 0, 170, + 172, 173, 174, 175, 500, 525, 370, 372, 374, 0, + 0, 378, 376, 594, 369, 334, 335, 336, 337, 338, + 339, 340, 341, 357, 358, 359, 362, 363, 364, 365, + 366, 367, 360, 361, 368, 0, 332, 345, 346, 347, + 350, 351, 353, 348, 349, 342, 343, 355, 356, 344, + 352, 354, 519, 518, 514, 515, 513, 0, 510, 512, + 516, 517, 548, 0, 551, 0, 0, 547, 541, 542, + 540, 545, 546, 0, 535, 537, 538, 543, 544, 539, + 592, 580, 582, 584, 586, 588, 590, 579, 576, 577, + 578, 0, 566, 567, 571, 572, 569, 573, 574, 575, + 570, 0, 460, 228, 0, 464, 462, 467, 0, 456, + 457, 0, 444, 445, 447, 459, 448, 449, 450, 466, + 451, 452, 453, 454, 455, 494, 0, 0, 492, 493, + 496, 497, 0, 481, 482, 484, 485, 486, 487, 488, + 489, 490, 491, 302, 304, 299, 0, 297, 300, 301, + 0, 699, 701, 0, 704, 0, 0, 708, 712, 0, + 0, 716, 718, 720, 722, 697, 695, 696, 0, 678, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 0, 745, 747, 738, 0, + 0, 734, 736, 737, 48, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 59, 0, 61, 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, 73, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 495, 0, 0, 0, - 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, - 0, 550, 0, 420, 0, 0, 0, 0, 0, 0, - 0, 428, 0, 0, 0, 0, 465, 0, 0, 0, - 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 663, 0, - 730, 0, 0, 0, 719, 52, 45, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 0, 161, 162, 142, 143, 144, 0, 0, - 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, - 0, 0, 0, 0, 0, 75, 0, 178, 170, 0, - 0, 0, 0, 0, 372, 373, 0, 0, 0, 319, - 0, 497, 0, 536, 0, 539, 540, 522, 0, 0, - 0, 0, 0, 0, 0, 554, 0, 0, 444, 0, - 0, 0, 455, 432, 0, 484, 485, 469, 0, 0, - 284, 684, 0, 0, 689, 0, 692, 693, 0, 0, - 700, 701, 0, 0, 0, 0, 665, 732, 0, 726, - 721, 0, 0, 0, 711, 713, 715, 129, 0, 0, - 0, 0, 185, 164, 147, 148, 149, 150, 151, 146, - 153, 155, 310, 421, 458, 42, 508, 510, 368, 369, - 370, 371, 367, 376, 0, 49, 0, 0, 0, 543, - 275, 0, 0, 0, 0, 0, 157, 159, 0, 53, - 177, 488, 513, 357, 359, 361, 365, 363, 0, 506, - 535, 538, 579, 567, 569, 571, 573, 575, 577, 447, - 228, 451, 449, 454, 481, 289, 291, 686, 688, 691, - 696, 697, 695, 699, 703, 705, 707, 709, 185, 46, - 0, 0, 0, 0, 214, 220, 222, 224, 0, 0, - 0, 0, 0, 238, 0, 0, 241, 243, 245, 0, - 0, 0, 0, 213, 0, 191, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 205, 212, 206, 207, - 208, 203, 204, 209, 210, 211, 0, 189, 0, 186, - 187, 314, 0, 311, 312, 425, 0, 422, 423, 462, - 0, 459, 460, 380, 0, 377, 378, 260, 261, 0, - 256, 258, 259, 0, 269, 270, 266, 0, 264, 267, - 268, 252, 0, 249, 251, 590, 0, 588, 547, 0, - 544, 545, 279, 0, 276, 277, 0, 0, 0, 0, - 0, 0, 0, 294, 296, 297, 298, 299, 300, 301, - 620, 626, 0, 0, 0, 619, 616, 617, 618, 0, - 609, 611, 614, 612, 613, 615, 640, 642, 639, 637, - 638, 0, 633, 635, 636, 0, 655, 0, 658, 651, - 652, 0, 646, 648, 649, 650, 653, 0, 738, 0, - 736, 55, 492, 0, 489, 490, 517, 0, 514, 515, - 584, 583, 0, 582, 0, 71, 728, 717, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, - 182, 0, 184, 0, 0, 309, 0, 429, 418, 0, - 466, 457, 0, 0, 375, 0, 0, 255, 272, 0, - 263, 0, 0, 248, 592, 0, 587, 551, 542, 0, - 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, - 293, 0, 0, 0, 0, 0, 0, 608, 0, 0, - 0, 632, 0, 0, 0, 0, 0, 645, 661, 0, - 0, 735, 57, 0, 56, 0, 487, 0, 0, 512, - 0, 0, 581, 725, 0, 0, 0, 0, 226, 229, - 230, 231, 232, 0, 240, 233, 0, 0, 0, 235, - 236, 237, 234, 192, 0, 188, 0, 313, 0, 424, - 0, 461, 416, 395, 396, 397, 399, 400, 401, 388, - 389, 404, 405, 406, 409, 410, 411, 412, 413, 414, - 407, 408, 415, 384, 385, 386, 387, 393, 394, 392, - 398, 0, 382, 390, 402, 403, 391, 379, 257, 265, - 0, 250, 604, 0, 602, 603, 599, 600, 601, 0, - 593, 594, 596, 597, 598, 589, 0, 546, 0, 278, - 302, 303, 304, 305, 306, 307, 295, 0, 0, 625, - 628, 629, 610, 0, 0, 634, 654, 0, 657, 0, - 647, 752, 0, 750, 748, 742, 746, 747, 0, 740, - 744, 745, 743, 737, 54, 0, 0, 491, 0, 516, - 0, 216, 217, 218, 219, 215, 221, 223, 225, 239, - 242, 244, 246, 190, 315, 426, 463, 0, 381, 253, - 0, 0, 591, 0, 548, 280, 622, 623, 624, 621, - 627, 641, 643, 656, 659, 0, 0, 0, 0, 739, - 58, 493, 518, 585, 383, 0, 606, 595, 0, 749, - 0, 741, 605, 0, 751, 756, 0, 754, 0, 0, - 753, 765, 0, 0, 0, 770, 0, 758, 760, 761, - 762, 763, 764, 755, 0, 0, 0, 0, 0, 0, - 757, 0, 767, 768, 769, 0, 759, 766, 771 + 73, 0, 0, 0, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 331, 0, 0, 509, + 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, + 0, 0, 0, 0, 564, 0, 434, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 479, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 677, 0, 744, 0, 0, 0, 733, 52, 45, + 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 0, 162, 163, 143, 144, + 145, 0, 0, 0, 161, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 644, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 179, 171, 0, 0, 0, 0, 0, 386, 387, + 0, 0, 0, 333, 0, 511, 0, 550, 0, 553, + 554, 536, 0, 0, 0, 0, 0, 0, 0, 568, + 0, 0, 458, 0, 0, 0, 469, 446, 0, 498, + 499, 483, 0, 0, 298, 698, 0, 0, 703, 0, + 706, 707, 0, 0, 714, 715, 0, 0, 0, 0, + 679, 746, 0, 740, 735, 0, 0, 0, 725, 727, + 729, 130, 0, 0, 0, 0, 186, 165, 148, 149, + 150, 151, 152, 147, 154, 156, 324, 435, 472, 42, + 522, 524, 382, 383, 384, 385, 381, 390, 0, 49, + 0, 0, 0, 557, 289, 0, 0, 0, 0, 0, + 0, 158, 160, 0, 53, 178, 502, 527, 371, 373, + 375, 379, 377, 0, 520, 549, 552, 593, 581, 583, + 585, 587, 589, 591, 461, 229, 465, 463, 468, 495, + 303, 305, 700, 702, 705, 710, 711, 709, 713, 717, + 719, 721, 723, 186, 46, 0, 0, 0, 0, 215, + 221, 223, 225, 0, 0, 0, 0, 0, 239, 0, + 0, 242, 244, 246, 0, 0, 0, 0, 214, 0, + 192, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 206, 213, 207, 208, 209, 204, 205, 210, 211, + 212, 0, 190, 0, 187, 188, 328, 0, 325, 326, + 439, 0, 436, 437, 476, 0, 473, 474, 394, 0, + 391, 392, 261, 262, 0, 257, 259, 260, 0, 270, + 271, 267, 0, 265, 268, 269, 253, 0, 250, 252, + 604, 0, 602, 561, 0, 558, 559, 293, 0, 290, + 291, 0, 0, 0, 0, 0, 0, 0, 308, 310, + 311, 312, 313, 314, 315, 634, 640, 0, 0, 0, + 633, 630, 631, 632, 0, 623, 625, 628, 626, 627, + 629, 0, 0, 0, 283, 0, 276, 278, 279, 280, + 281, 282, 654, 656, 653, 651, 652, 0, 647, 649, + 650, 0, 669, 0, 672, 665, 666, 0, 660, 662, + 663, 664, 667, 0, 752, 0, 750, 55, 506, 0, + 503, 504, 531, 0, 528, 529, 598, 597, 0, 596, + 0, 71, 742, 731, 167, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 183, 0, 185, 0, + 0, 323, 0, 443, 432, 0, 480, 471, 0, 0, + 389, 0, 0, 256, 273, 0, 264, 0, 0, 249, + 606, 0, 601, 565, 556, 0, 0, 288, 0, 0, + 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, + 0, 0, 0, 622, 0, 0, 0, 0, 275, 0, + 0, 0, 646, 0, 0, 0, 0, 0, 659, 675, + 0, 0, 749, 57, 0, 56, 0, 501, 0, 0, + 526, 0, 0, 595, 739, 0, 0, 0, 0, 227, + 230, 231, 232, 233, 0, 241, 234, 0, 0, 0, + 236, 237, 238, 235, 193, 0, 189, 0, 327, 0, + 438, 0, 475, 430, 409, 410, 411, 413, 414, 415, + 402, 403, 418, 419, 420, 423, 424, 425, 426, 427, + 428, 421, 422, 429, 398, 399, 400, 401, 407, 408, + 406, 412, 0, 396, 404, 416, 417, 405, 393, 258, + 266, 0, 251, 618, 0, 616, 617, 613, 614, 615, + 0, 607, 608, 610, 611, 612, 603, 0, 560, 0, + 292, 316, 317, 318, 319, 320, 321, 309, 0, 0, + 639, 642, 643, 624, 284, 285, 286, 277, 0, 0, + 648, 668, 0, 671, 0, 661, 766, 0, 764, 762, + 756, 760, 761, 0, 754, 758, 759, 757, 751, 54, + 0, 0, 505, 0, 530, 0, 217, 218, 219, 220, + 216, 222, 224, 226, 240, 243, 245, 247, 191, 329, + 440, 477, 0, 395, 254, 0, 0, 605, 0, 562, + 294, 636, 637, 638, 635, 641, 655, 657, 670, 673, + 0, 0, 0, 0, 753, 58, 507, 532, 599, 397, + 0, 620, 609, 0, 763, 0, 755, 619, 0, 765, + 770, 0, 768, 0, 0, 767, 779, 0, 0, 0, + 784, 0, 772, 774, 775, 776, 777, 778, 769, 0, + 0, 0, 0, 0, 0, 771, 0, 781, 782, 783, + 0, 773, 780, 785 }; - const short + const short int Dhcp6Parser::yypgoto_[] = { - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -5, -945, 225, - -945, -945, -945, -945, -945, -945, 304, -945, -358, -945, - -945, -945, -74, -945, -945, -945, 618, -945, -945, -945, - -945, 339, 546, -945, -945, -62, -42, -40, -34, -30, - -29, -27, -26, 4, 5, 7, -945, 8, 9, 10, - 11, -945, 361, 21, -945, 23, -945, 24, -945, 26, - -945, 36, -945, -945, -945, -945, -945, -945, -945, -945, - 335, 547, -945, -945, -945, -945, -945, -945, -945, -945, - -945, 255, -945, 63, -945, -665, 71, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -66, -945, -699, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - 48, -945, -945, -945, -945, -945, 52, -688, -945, -945, - -945, -945, 53, -945, -945, -945, -945, -945, -945, -945, - -945, 42, -945, -945, -945, 41, 506, -945, -945, -945, - -945, -945, -945, -945, 38, -945, -945, -945, -945, -945, - -945, -944, -945, -945, -945, 69, -945, -945, -945, 74, - 552, -945, -945, -942, -945, -941, -945, 32, -945, 40, - -945, 39, -945, -945, -945, -940, -945, -945, -945, -945, - 64, -945, -945, -137, 961, -945, -945, -945, -945, -945, - 78, -945, -945, -945, 81, -945, 523, -945, -76, -945, - -945, -945, -945, -945, -70, -945, -945, -945, -945, -945, - -24, -945, -945, -945, 83, -945, -945, -945, 80, -945, - 553, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, 16, -945, -945, -945, 33, 556, -945, -945, - -58, -945, -8, -945, -945, -945, -945, -945, 19, -945, - -945, -945, 43, 559, -945, -945, -945, -945, -945, -945, - -945, -47, -945, -945, -945, 67, -945, -945, -945, 82, - -945, 555, 325, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -939, -945, -945, -945, - -945, -945, -945, -945, 85, -945, -945, -945, -119, -945, - -945, -945, -945, -945, -945, -945, 60, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, 62, - -945, -945, -945, -945, -945, -945, -945, 57, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, 362, 557, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, -945, -945, -945, -945, -945, - -945, -945, -945, -945, -945, 386, 561, -945, -945, -945, - -945, -945, -945, -945, 394, 558, -72, -945, -945, 55, - -945, -945, -122, -945, -945, -945, -945, -945, -945, -141, - -945, -945, -160, -945, -945, -945, -945, -945, -945, -945 + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -5, -961, 448, + -961, -961, -961, -961, -961, -961, 317, -961, -573, -961, + -961, -961, -74, -961, -961, -961, 615, -961, -961, -961, + -961, 356, 555, -961, -961, -62, -42, -24, -22, -21, + -18, -4, 10, 13, 14, 15, -961, 16, 27, 30, + 32, -961, 367, 34, -961, 35, -961, 37, -961, 38, + -961, 42, -961, -961, -961, -961, -961, -961, -961, -961, + 352, 572, -961, -961, -961, -961, -961, -961, -961, -961, + -961, 275, -961, 72, -961, -669, 79, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -66, -961, -703, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + 56, -961, -961, -961, -961, -961, 64, -692, -961, -961, + -961, -961, 62, -961, -961, -961, -961, -961, -961, -961, + 33, -961, -961, -961, -961, -961, -961, -961, 54, -961, + -961, -961, 53, 525, -961, -961, -961, -961, -961, -961, + -961, 49, -961, -961, -961, -961, -961, -961, -960, -961, + -961, -961, 83, -961, -961, -961, 87, 573, -961, -961, + -958, -961, -957, -961, 44, -961, 52, -961, 48, -961, + -961, -961, -956, -961, -961, -961, -961, 78, -961, -961, + -139, 991, -961, -961, -961, -961, -961, 88, -961, -961, + -961, 92, -961, 553, -961, -76, -961, -961, -961, -961, + -961, -70, -961, -961, -961, -961, -961, -40, -961, -961, + -961, 95, -961, -961, -961, 90, -961, 544, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, 39, + -961, -961, -961, 40, 584, -961, -961, -58, -961, -2, + -961, -961, -961, -961, -961, 28, -961, -961, -961, 46, + 579, -961, -961, -961, -961, -961, -961, -961, -47, -961, + -961, -961, 80, -961, -961, -961, 77, -961, 585, 338, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -955, -961, -961, -961, -961, -961, -961, + -961, 96, -961, -961, -961, -120, -961, -961, -961, -961, + -961, -961, -961, 67, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, 60, -961, -961, -961, + -961, -961, -961, -961, 55, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, 364, 546, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, -961, -961, -961, -961, -961, -961, -961, -961, + -961, -961, 407, 554, -961, -961, -961, -961, -961, -961, + -961, 415, 556, -72, -961, -961, 63, -961, -961, -118, + -961, -961, -961, -961, -961, -961, -141, -961, -961, -158, + -961, -961, -961, -961, -961, -961, -961 }; - const short + const short int Dhcp6Parser::yydefgoto_[] = { -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 88, 41, 42, - 73, 706, 92, 93, 43, 72, 89, 90, 730, 921, - 1023, 1024, 793, 45, 74, 101, 102, 103, 417, 47, - 75, 160, 161, 162, 425, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 449, 699, 179, 450, 180, 451, 181, 473, 182, - 474, 183, 184, 185, 186, 443, 187, 427, 49, 76, - 216, 217, 218, 478, 219, 188, 428, 189, 429, 190, - 430, 818, 819, 820, 961, 794, 795, 796, 939, 1165, - 797, 940, 798, 941, 799, 942, 800, 801, 515, 802, - 803, 804, 805, 806, 807, 808, 809, 810, 811, 948, - 812, 813, 951, 814, 952, 815, 953, 191, 463, 852, - 853, 854, 981, 192, 460, 839, 840, 841, 842, 193, - 462, 847, 848, 849, 850, 194, 461, 195, 466, 863, - 864, 865, 990, 65, 84, 364, 365, 366, 528, 367, - 529, 196, 467, 872, 873, 874, 875, 876, 877, 878, - 879, 197, 453, 822, 823, 824, 964, 51, 77, 253, - 254, 255, 484, 256, 485, 257, 486, 258, 490, 259, - 489, 198, 458, 712, 261, 262, 199, 459, 834, 835, - 836, 973, 1091, 1092, 200, 454, 59, 81, 826, 827, - 828, 967, 61, 82, 329, 330, 331, 332, 333, 334, - 335, 514, 336, 518, 337, 517, 338, 339, 519, 340, - 201, 455, 830, 831, 832, 970, 63, 83, 350, 351, - 352, 353, 354, 523, 355, 356, 357, 358, 264, 482, - 923, 924, 925, 1025, 53, 78, 275, 276, 277, 494, - 202, 456, 203, 457, 267, 483, 927, 928, 929, 1028, - 55, 79, 291, 292, 293, 497, 294, 295, 499, 296, - 297, 204, 465, 859, 860, 861, 987, 57, 80, 309, - 310, 311, 312, 505, 313, 506, 314, 507, 315, 508, - 316, 509, 317, 510, 318, 504, 269, 491, 932, 933, - 1031, 205, 464, 856, 857, 984, 1109, 1110, 1111, 1112, - 1113, 1180, 1114, 206, 468, 889, 890, 891, 1001, 1189, - 892, 893, 1002, 894, 895, 207, 208, 470, 901, 902, - 903, 1008, 904, 1009, 209, 471, 911, 912, 913, 914, - 1013, 915, 916, 1015, 210, 472, 67, 85, 386, 387, - 388, 389, 533, 390, 534, 391, 392, 536, 393, 394, - 395, 539, 762, 396, 540, 397, 398, 399, 543, 400, - 544, 401, 545, 402, 546, 104, 419, 105, 420, 106, - 421, 211, 426, 71, 87, 408, 409, 410, 551, 411, - 107, 418, 69, 86, 403, 404, 212, 475, 919, 920, - 1019, 1148, 1149, 1150, 1151, 1197, 1152, 1195, 1216, 1217, - 1218, 1226, 1227, 1228, 1234, 1229, 1230, 1231, 1232, 1238 + 73, 710, 92, 93, 43, 72, 89, 90, 735, 937, + 1044, 1045, 798, 45, 74, 101, 102, 103, 419, 47, + 75, 161, 162, 163, 427, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 451, 703, 180, 452, 181, 453, 182, 476, 183, + 477, 184, 185, 186, 187, 445, 188, 429, 49, 76, + 218, 219, 220, 481, 221, 189, 430, 190, 431, 191, + 432, 823, 824, 825, 977, 799, 800, 801, 955, 1190, + 802, 956, 803, 957, 804, 958, 805, 806, 518, 807, + 808, 809, 810, 811, 812, 813, 814, 815, 816, 964, + 817, 818, 967, 819, 968, 820, 969, 192, 465, 857, + 858, 859, 997, 193, 462, 844, 845, 846, 847, 194, + 464, 852, 853, 854, 855, 195, 463, 196, 472, 905, + 906, 907, 908, 909, 197, 468, 868, 869, 870, 1006, + 65, 84, 366, 367, 368, 531, 369, 532, 198, 469, + 877, 878, 879, 880, 881, 882, 883, 884, 199, 455, + 827, 828, 829, 980, 51, 77, 255, 256, 257, 487, + 258, 488, 259, 489, 260, 493, 261, 492, 200, 460, + 716, 263, 264, 201, 461, 839, 840, 841, 989, 1112, + 1113, 202, 456, 59, 81, 831, 832, 833, 983, 61, + 82, 331, 332, 333, 334, 335, 336, 337, 517, 338, + 521, 339, 520, 340, 341, 522, 342, 203, 457, 835, + 836, 837, 986, 63, 83, 352, 353, 354, 355, 356, + 526, 357, 358, 359, 360, 266, 485, 939, 940, 941, + 1046, 53, 78, 277, 278, 279, 497, 204, 458, 205, + 459, 269, 486, 943, 944, 945, 1049, 55, 79, 293, + 294, 295, 500, 296, 297, 502, 298, 299, 206, 467, + 864, 865, 866, 1003, 57, 80, 311, 312, 313, 314, + 508, 315, 509, 316, 510, 317, 511, 318, 512, 319, + 513, 320, 507, 271, 494, 948, 949, 1052, 207, 466, + 861, 862, 1000, 1130, 1131, 1132, 1133, 1134, 1205, 1135, + 208, 470, 894, 895, 896, 1017, 1214, 897, 898, 1018, + 899, 900, 209, 210, 473, 917, 918, 919, 1029, 920, + 1030, 211, 474, 927, 928, 929, 930, 1034, 931, 932, + 1036, 212, 475, 67, 85, 388, 389, 390, 391, 536, + 392, 537, 393, 394, 539, 395, 396, 397, 542, 767, + 398, 543, 399, 400, 401, 546, 402, 547, 403, 548, + 404, 549, 104, 421, 105, 422, 106, 423, 213, 428, + 71, 87, 410, 411, 412, 554, 413, 107, 420, 69, + 86, 405, 406, 214, 478, 935, 936, 1040, 1173, 1174, + 1175, 1176, 1222, 1177, 1220, 1241, 1242, 1243, 1251, 1252, + 1253, 1259, 1254, 1255, 1256, 1257, 1263 }; - const short + const unsigned short int Dhcp6Parser::yytable_[] = { - 100, 159, 215, 232, 271, 285, 305, 348, 327, 346, - 363, 383, 40, 349, 405, 233, 328, 347, 220, 265, - 278, 289, 307, 886, 341, 359, 816, 384, 846, 1084, - 268, 1085, 1086, 1090, 1096, 234, 33, 235, 34, 94, - 35, 320, 299, 236, 213, 214, 91, 237, 238, 930, - 239, 240, 423, 263, 274, 288, 306, 424, 880, 406, - 407, 837, 694, 695, 696, 697, 32, 779, 221, 266, - 279, 290, 308, 976, 342, 360, 977, 385, 361, 362, - 44, 241, 242, 46, 243, 244, 245, 246, 247, 321, - 979, 322, 323, 980, 137, 324, 325, 326, 248, 698, - 249, 250, 48, 251, 476, 985, 139, 140, 986, 477, - 272, 286, 480, 252, 139, 140, 260, 481, 273, 287, - 774, 139, 140, 139, 140, 775, 776, 777, 778, 779, - 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 138, 838, 138, 492, 138, 321, 1020, - 495, 493, 1021, 158, 99, 496, 280, 281, 282, 283, - 284, 139, 140, 139, 140, 139, 140, 50, 321, 881, - 882, 883, 884, 52, 502, 54, 905, 906, 907, 503, - 229, 298, 56, 230, 58, 1102, 1103, 299, 300, 301, - 302, 303, 304, 60, 138, 1221, 95, 530, 1222, 1223, - 1224, 1225, 531, 62, 547, 270, 96, 97, 98, 548, - 108, 109, 139, 140, 110, 99, 549, 111, 112, 113, - 553, 550, 321, 99, 99, 554, 36, 37, 38, 39, - 908, 229, 99, 1084, 230, 1085, 1086, 1090, 1096, 139, - 140, 361, 362, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 736, 64, - 99, 476, 99, 549, 99, 412, 935, 413, 936, 553, - 742, 743, 744, 414, 937, 139, 140, 66, 139, 140, - 480, 846, 141, 68, 99, 938, 1054, 142, 143, 144, - 145, 146, 1219, 147, 70, 1220, 415, 886, 148, 866, - 867, 868, 869, 870, 871, 760, 761, 149, 958, 416, - 150, 99, 1141, 959, 1142, 1143, 422, 151, 431, 321, - 343, 322, 323, 344, 345, 152, 153, 958, 511, 154, - 896, 897, 960, 155, 432, 982, 139, 140, 99, 100, - 983, 999, 1006, 1010, 1016, 547, 1000, 1007, 1011, 1017, - 1018, 958, 512, 492, 156, 157, 1173, 158, 1174, 433, - 434, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 708, 709, 710, 711, 129, 130, 131, 132, - 133, 134, 135, 136, 99, 138, 321, 99, 1177, 530, - 1198, 513, 159, 1178, 1185, 1199, 215, 495, 555, 556, - 502, 521, 1201, 139, 140, 1202, 225, 226, 232, 228, - 141, 271, 220, 435, 1239, 1186, 1187, 1188, 285, 1240, - 233, 436, 229, 437, 265, 230, 438, 278, 305, 1161, - 1162, 1163, 1164, 231, 289, 268, 439, 440, 327, 441, - 234, 348, 235, 346, 307, 99, 328, 349, 236, 442, - 444, 347, 237, 238, 341, 239, 240, 445, 263, 359, - 446, 274, 221, 383, 447, 448, 452, 405, 288, 837, - 844, 469, 845, 479, 266, 487, 488, 279, 306, 384, - 498, 500, 156, 157, 290, 501, 241, 242, 516, 243, - 244, 245, 246, 247, 308, 520, 522, 526, 524, 525, - 527, 578, 532, 248, 342, 249, 250, 535, 251, 360, - 537, 538, 99, 541, 542, 552, 557, 272, 252, 558, - 559, 260, 560, 561, 286, 273, 562, 564, 565, 385, - 566, 567, 287, 568, 569, 582, 588, 589, 590, 570, - 571, 572, 573, 574, 592, 684, 685, 686, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 575, - 576, 577, 581, 129, 130, 131, 132, 133, 134, 135, - 579, 580, 138, 583, 584, 593, 594, 585, 586, 587, - 591, 595, 222, 596, 223, 597, 598, 599, 600, 601, - 139, 140, 224, 225, 226, 227, 228, 141, 159, 602, - 603, 405, 604, 605, 606, 215, 607, 609, 608, 229, - 610, 611, 230, 148, 139, 140, 612, 613, 614, 616, - 231, 220, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 617, 885, 898, - 619, 383, 620, 621, 756, 622, 623, 624, 625, 626, - 627, 628, 630, 632, 887, 899, 909, 384, 634, 633, - 635, 636, 638, 639, 640, 641, 769, 642, 643, 156, - 157, 221, 644, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 646, 647, 648, 649, - 650, 651, 654, 381, 382, 658, 659, 652, 655, 99, - 656, 662, 663, 661, 888, 900, 910, 385, 664, 665, - 666, 668, 669, 667, 672, 673, 674, 675, 670, 671, - 678, 679, 681, 99, 682, 763, 683, 688, 689, 690, - 687, 691, 692, 693, 700, 702, 701, 703, 704, 707, - 713, 34, 714, 715, 716, 726, 718, 717, 719, 720, - 727, 733, 721, 722, 723, 724, 725, 728, 729, 731, - 732, 734, 735, 737, 738, 739, 768, 817, 740, 741, - 745, 746, 821, 747, 825, 748, 829, 833, 851, 855, - 858, 749, 750, 751, 752, 753, 754, 755, 757, 758, - 862, 918, 759, 922, 926, 943, 765, 944, 945, 766, - 767, 946, 947, 949, 950, 954, 955, 956, 957, 963, - 705, 962, 966, 965, 968, 969, 971, 972, 975, 974, - 1022, 989, 978, 988, 992, 991, 993, 994, 995, 996, - 997, 998, 1003, 1004, 1005, 1012, 1014, 1027, 1039, 1026, - 1030, 1029, 1034, 1155, 1032, 1033, 1035, 1036, 1037, 1038, - 1041, 1040, 1042, 1043, 1046, 1047, 1048, 1100, 1044, 1127, - 1128, 1045, 1049, 1050, 1133, 1134, 1052, 1051, 1120, 1121, - 1122, 1137, 1123, 1124, 1125, 1129, 1130, 1131, 1139, 1154, - 232, 1160, 1136, 327, 348, 1138, 346, 1175, 1166, 1062, - 349, 328, 233, 1176, 347, 1167, 265, 1083, 1168, 341, - 1104, 1063, 359, 305, 1169, 1094, 363, 268, 1105, 1170, - 1171, 1181, 234, 1182, 235, 1183, 1107, 1184, 1172, 307, - 236, 1064, 885, 1065, 237, 238, 898, 239, 240, 1066, - 263, 1179, 1196, 1067, 1068, 1144, 1069, 1070, 887, 1093, - 1205, 271, 899, 1145, 285, 1190, 266, 1208, 909, 342, - 1106, 1146, 360, 306, 1191, 1095, 1206, 278, 241, 242, - 289, 243, 244, 245, 246, 247, 1108, 1071, 1072, 308, - 1073, 1074, 1075, 1076, 1077, 248, 1192, 249, 250, 1210, - 251, 1209, 1213, 1193, 1078, 1200, 1079, 1080, 888, 1081, - 252, 274, 900, 260, 288, 1087, 1215, 1235, 910, 1082, - 1236, 1147, 1089, 1088, 1237, 1241, 1203, 279, 1245, 843, - 290, 770, 615, 934, 773, 1212, 1055, 618, 1098, 1053, - 1101, 1118, 1099, 764, 1119, 1057, 660, 1126, 1056, 1097, - 1204, 563, 319, 1157, 629, 653, 1214, 1059, 1058, 1159, - 1060, 631, 1243, 1242, 1244, 1061, 1117, 272, 1156, 1247, - 286, 637, 1248, 931, 1207, 273, 1132, 645, 287, 1116, - 1115, 1158, 1135, 1140, 772, 1153, 1211, 771, 1233, 1246, - 657, 0, 0, 0, 0, 0, 0, 917, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1062, 676, 0, 0, 677, 0, 1104, - 0, 1083, 0, 0, 680, 1063, 0, 1105, 0, 1094, - 0, 0, 0, 0, 1144, 1107, 0, 0, 0, 0, - 0, 0, 1145, 0, 1194, 1064, 0, 1065, 0, 0, - 1146, 0, 0, 1066, 0, 0, 0, 1067, 1068, 0, - 1069, 1070, 0, 1093, 0, 0, 0, 0, 0, 1106, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, - 0, 0, 0, 0, 0, 1108, 0, 0, 0, 0, - 0, 1071, 1072, 0, 1073, 1074, 1075, 1076, 1077, 0, - 1147, 0, 0, 0, 0, 0, 0, 0, 1078, 0, - 1079, 1080, 0, 1081, 0, 0, 0, 0, 0, 1087, - 0, 0, 0, 1082, 0, 0, 1089, 1088 + 100, 160, 217, 234, 273, 287, 307, 350, 329, 348, + 365, 385, 40, 351, 407, 235, 330, 349, 222, 267, + 280, 291, 309, 891, 343, 361, 821, 386, 851, 1105, + 270, 1106, 1107, 1111, 1117, 236, 94, 265, 276, 290, + 308, 33, 301, 34, 91, 35, 425, 215, 216, 946, + 32, 426, 44, 237, 46, 238, 239, 741, 48, 240, + 698, 699, 700, 701, 842, 363, 364, 138, 323, 747, + 748, 749, 50, 241, 223, 268, 281, 292, 310, 479, + 344, 362, 52, 387, 480, 139, 140, 242, 137, 885, + 243, 244, 245, 246, 363, 364, 483, 702, 784, 408, + 409, 484, 322, 495, 247, 1123, 1124, 248, 496, 249, + 992, 250, 251, 993, 252, 253, 498, 139, 140, 254, + 159, 499, 274, 288, 505, 262, 54, 779, 414, 506, + 275, 289, 780, 781, 782, 783, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, + 323, 843, 324, 325, 139, 140, 326, 327, 328, 138, + 1246, 56, 415, 1247, 1248, 1249, 1250, 139, 140, 995, + 272, 58, 996, 138, 99, 323, 138, 139, 140, 533, + 139, 140, 842, 849, 534, 850, 282, 283, 284, 285, + 286, 139, 140, 60, 139, 140, 231, 95, 99, 232, + 886, 887, 888, 889, 62, 64, 550, 96, 97, 98, + 231, 551, 300, 232, 1001, 66, 323, 1002, 301, 302, + 303, 304, 305, 306, 552, 99, 1211, 1212, 1213, 553, + 99, 139, 140, 139, 140, 36, 37, 38, 39, 921, + 922, 923, 1105, 556, 1106, 1107, 1111, 1117, 557, 712, + 713, 714, 715, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 765, 766, 68, 99, 129, 130, + 131, 132, 133, 134, 135, 1041, 1244, 138, 1042, 1245, + 99, 139, 140, 901, 902, 903, 70, 224, 416, 225, + 99, 139, 140, 924, 417, 139, 140, 226, 227, 228, + 229, 230, 141, 851, 99, 99, 479, 99, 1075, 418, + 552, 951, 424, 433, 231, 952, 556, 232, 148, 891, + 1166, 953, 1167, 1168, 483, 233, 434, 435, 436, 954, + 437, 323, 345, 324, 325, 346, 347, 912, 913, 438, + 974, 514, 974, 515, 99, 975, 99, 976, 139, 140, + 439, 100, 440, 441, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 871, 872, 873, + 874, 875, 876, 442, 383, 384, 998, 1015, 157, 158, + 1022, 999, 1016, 1027, 1031, 1023, 1037, 550, 1028, 1032, + 974, 1038, 1039, 495, 99, 1198, 1202, 533, 1199, 443, + 444, 1203, 1210, 446, 99, 160, 447, 1223, 99, 217, + 558, 559, 1224, 498, 505, 1264, 516, 448, 1226, 1227, + 1265, 234, 449, 450, 273, 222, 454, 1186, 1187, 1188, + 1189, 287, 471, 235, 482, 490, 491, 267, 501, 503, + 280, 307, 504, 519, 523, 524, 525, 291, 270, 527, + 528, 329, 529, 236, 350, 265, 348, 309, 276, 330, + 351, 99, 530, 560, 349, 290, 535, 343, 538, 540, + 541, 237, 361, 238, 239, 308, 385, 240, 544, 545, + 407, 223, 555, 561, 562, 563, 564, 565, 567, 568, + 569, 241, 386, 268, 570, 571, 281, 572, 573, 574, + 575, 576, 577, 292, 578, 242, 585, 581, 243, 244, + 245, 246, 579, 310, 580, 591, 582, 583, 584, 586, + 587, 686, 247, 344, 592, 248, 593, 249, 362, 250, + 251, 588, 252, 253, 589, 595, 590, 254, 594, 596, + 597, 598, 274, 262, 599, 600, 601, 602, 387, 288, + 275, 603, 604, 605, 606, 607, 608, 289, 688, 689, + 690, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 609, 610, 612, 611, 129, 130, 131, 132, + 133, 134, 135, 136, 613, 138, 323, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 614, 139, 140, 615, 227, 228, 616, 230, + 141, 617, 160, 618, 620, 407, 621, 623, 624, 217, + 625, 626, 231, 627, 628, 232, 630, 629, 631, 632, + 634, 636, 638, 233, 642, 222, 637, 643, 644, 645, + 646, 639, 640, 647, 648, 650, 651, 652, 653, 654, + 655, 656, 890, 904, 914, 658, 385, 659, 761, 660, + 662, 663, 665, 666, 667, 669, 672, 668, 892, 910, + 915, 925, 386, 670, 673, 676, 671, 677, 678, 674, + 774, 679, 682, 685, 979, 696, 157, 158, 683, 675, + 687, 223, 768, 691, 692, 693, 108, 109, 694, 695, + 110, 706, 697, 111, 112, 113, 704, 705, 707, 708, + 982, 711, 34, 717, 718, 719, 99, 720, 721, 722, + 723, 724, 731, 732, 893, 911, 916, 926, 387, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 725, 726, 727, 728, 729, 730, + 733, 734, 736, 737, 738, 739, 740, 743, 773, 822, + 742, 139, 140, 744, 745, 746, 750, 751, 141, 826, + 752, 753, 754, 142, 143, 144, 145, 146, 755, 147, + 756, 757, 758, 759, 148, 760, 762, 830, 763, 764, + 834, 770, 771, 149, 772, 838, 150, 860, 863, 856, + 867, 934, 938, 151, 942, 959, 960, 961, 962, 963, + 965, 152, 153, 966, 970, 971, 154, 972, 973, 155, + 985, 978, 981, 156, 984, 987, 988, 990, 991, 1060, + 994, 1005, 1004, 1007, 1008, 1047, 1009, 1010, 1011, 1012, + 1013, 1014, 1019, 1020, 157, 158, 1021, 159, 1024, 1025, + 1026, 1033, 1035, 1043, 1048, 1050, 1051, 1059, 1053, 1055, + 1054, 1056, 1057, 1058, 1062, 1061, 1063, 1064, 1067, 1068, + 1069, 1121, 1065, 1148, 99, 1149, 1066, 1158, 1159, 1070, + 1071, 1162, 1164, 1185, 1073, 1072, 1179, 1141, 1142, 1143, + 1144, 1145, 1146, 1180, 1200, 1201, 234, 1206, 1208, 329, + 350, 1221, 348, 1150, 1207, 1083, 351, 330, 235, 1151, + 349, 1152, 267, 1104, 1154, 343, 1125, 1084, 361, 307, + 1155, 1115, 365, 270, 1126, 1156, 1161, 1163, 236, 1191, + 265, 1192, 1128, 1193, 1194, 309, 1209, 1085, 890, 1114, + 1230, 1233, 1195, 904, 1234, 1235, 237, 914, 238, 239, + 1127, 1231, 240, 308, 892, 1086, 1169, 1087, 1088, 910, + 1196, 1089, 273, 915, 1170, 287, 241, 1197, 268, 925, + 1204, 344, 1171, 1215, 362, 1090, 1216, 1116, 280, 1238, + 242, 291, 1240, 243, 244, 245, 246, 1260, 1129, 1091, + 1261, 310, 1092, 1093, 1094, 1095, 276, 247, 1217, 290, + 248, 1262, 249, 1266, 250, 251, 1096, 252, 253, 1097, + 893, 1098, 254, 1099, 1100, 911, 1101, 1102, 262, 916, + 1270, 1103, 1267, 1108, 619, 926, 848, 1110, 1172, 1218, + 566, 1109, 775, 769, 281, 778, 709, 292, 950, 1225, + 1228, 1076, 1237, 1074, 1122, 622, 1119, 1120, 664, 1139, + 1157, 1239, 1140, 1229, 1147, 1078, 1268, 1077, 633, 1118, + 1269, 1272, 321, 1080, 661, 1079, 1081, 1273, 657, 1184, + 1137, 947, 635, 1082, 641, 1138, 1181, 1182, 1232, 1153, + 274, 1160, 1165, 288, 933, 1183, 680, 1136, 275, 777, + 649, 289, 776, 1258, 1178, 1236, 1271, 0, 681, 0, + 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1083, 0, + 0, 0, 0, 0, 1125, 0, 1104, 0, 0, 0, + 1084, 0, 1126, 0, 1115, 0, 0, 0, 0, 1169, + 1128, 0, 0, 0, 0, 0, 0, 1170, 0, 1219, + 1085, 0, 1114, 0, 0, 1171, 0, 0, 1127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, + 1087, 1088, 0, 0, 1089, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, + 1116, 0, 0, 0, 0, 0, 1129, 0, 0, 0, + 0, 0, 1091, 0, 0, 1092, 1093, 1094, 1095, 0, + 0, 1172, 0, 0, 0, 0, 0, 0, 0, 1096, + 0, 0, 1097, 0, 1098, 0, 1099, 1100, 0, 1101, + 1102, 0, 0, 0, 1103, 0, 1108, 0, 0, 0, + 1110, 0, 0, 0, 1109 }; - const short + const short int Dhcp6Parser::yycheck_[] = { 74, 75, 76, 77, 78, 79, 80, 83, 82, 83, 84, 85, 17, 83, 86, 77, 82, 83, 76, 77, - 78, 79, 80, 722, 82, 83, 691, 85, 716, 973, - 77, 973, 973, 973, 973, 77, 5, 77, 7, 10, - 9, 21, 110, 77, 16, 17, 195, 77, 77, 117, - 77, 77, 3, 77, 78, 79, 80, 8, 21, 13, - 14, 112, 161, 162, 163, 164, 0, 30, 76, 77, - 78, 79, 80, 3, 82, 83, 6, 85, 119, 120, - 7, 77, 77, 7, 77, 77, 77, 77, 77, 69, - 3, 71, 72, 6, 67, 75, 76, 77, 77, 198, - 77, 77, 7, 77, 3, 3, 86, 87, 6, 8, - 78, 79, 3, 77, 86, 87, 77, 8, 78, 79, - 21, 86, 87, 86, 87, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 68, 195, 68, 3, 68, 69, 3, - 3, 8, 6, 168, 195, 8, 81, 82, 83, 84, - 85, 86, 87, 86, 87, 86, 87, 7, 69, 132, - 133, 134, 135, 7, 3, 7, 141, 142, 143, 8, - 105, 104, 7, 108, 7, 106, 107, 110, 111, 112, - 113, 114, 115, 7, 68, 170, 167, 3, 173, 174, - 175, 176, 8, 7, 3, 79, 177, 178, 179, 8, - 11, 12, 86, 87, 15, 195, 3, 18, 19, 20, - 3, 8, 69, 195, 195, 8, 195, 196, 197, 198, - 195, 105, 195, 1177, 108, 1177, 1177, 1177, 1177, 86, - 87, 119, 120, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 626, 7, - 195, 3, 195, 3, 195, 6, 8, 3, 8, 3, - 638, 639, 640, 4, 8, 86, 87, 7, 86, 87, - 3, 979, 93, 7, 195, 8, 961, 98, 99, 100, - 101, 102, 3, 104, 7, 6, 8, 1006, 109, 122, - 123, 124, 125, 126, 127, 158, 159, 118, 3, 3, - 121, 195, 169, 8, 171, 172, 4, 128, 4, 69, - 70, 71, 72, 73, 74, 136, 137, 3, 8, 140, - 138, 139, 8, 144, 4, 3, 86, 87, 195, 423, - 8, 3, 3, 3, 3, 3, 8, 8, 8, 8, - 8, 3, 3, 3, 165, 166, 8, 168, 8, 4, - 4, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 94, 95, 96, 97, 59, 60, 61, 62, - 63, 64, 65, 66, 195, 68, 69, 195, 3, 3, - 3, 8, 476, 8, 8, 8, 480, 3, 413, 414, - 3, 8, 8, 86, 87, 8, 89, 90, 492, 92, - 93, 495, 480, 4, 3, 129, 130, 131, 502, 8, - 492, 4, 105, 4, 492, 108, 4, 495, 512, 22, - 23, 24, 25, 116, 502, 492, 4, 4, 522, 4, - 492, 527, 492, 527, 512, 195, 522, 527, 492, 4, - 4, 527, 492, 492, 522, 492, 492, 4, 492, 527, - 4, 495, 480, 547, 4, 4, 4, 549, 502, 112, - 113, 4, 115, 4, 492, 4, 4, 495, 512, 547, - 4, 4, 165, 166, 502, 4, 492, 492, 4, 492, - 492, 492, 492, 492, 512, 4, 3, 8, 4, 4, - 3, 198, 4, 492, 522, 492, 492, 4, 492, 527, - 4, 4, 195, 4, 4, 4, 195, 495, 492, 4, - 4, 492, 4, 4, 502, 495, 4, 4, 4, 547, - 4, 4, 502, 4, 4, 4, 4, 4, 4, 196, - 196, 196, 196, 196, 4, 560, 561, 562, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 196, - 196, 196, 196, 59, 60, 61, 62, 63, 64, 65, - 197, 197, 68, 196, 196, 4, 4, 198, 198, 198, - 198, 4, 78, 4, 80, 4, 4, 4, 4, 4, - 86, 87, 88, 89, 90, 91, 92, 93, 682, 4, - 4, 683, 4, 4, 4, 689, 4, 4, 196, 105, - 4, 4, 108, 109, 86, 87, 4, 4, 4, 4, - 116, 689, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 198, 722, 723, - 4, 725, 4, 4, 659, 4, 4, 196, 198, 4, - 4, 4, 4, 4, 722, 723, 724, 725, 4, 196, - 196, 196, 4, 4, 4, 4, 681, 4, 4, 165, - 166, 689, 4, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 4, 4, 196, 4, - 4, 4, 4, 165, 166, 4, 4, 198, 198, 195, - 198, 4, 4, 198, 722, 723, 724, 725, 196, 4, - 196, 4, 4, 196, 4, 4, 4, 4, 198, 198, - 4, 196, 4, 195, 7, 160, 7, 7, 7, 7, - 195, 7, 5, 195, 195, 5, 195, 5, 5, 195, - 5, 7, 5, 5, 5, 195, 5, 7, 5, 5, - 195, 195, 7, 7, 7, 7, 7, 5, 5, 5, - 5, 195, 195, 195, 7, 195, 5, 7, 195, 195, - 195, 195, 7, 195, 7, 195, 7, 7, 103, 7, - 7, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 7, 7, 195, 7, 7, 4, 195, 4, 4, 195, - 195, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 595, 6, 3, 6, 6, 3, 6, 3, 3, 6, - 195, 3, 6, 6, 3, 6, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 3, 198, 6, - 3, 6, 4, 3, 8, 6, 4, 4, 4, 196, - 198, 196, 196, 4, 4, 4, 4, 4, 196, 4, - 4, 196, 196, 196, 4, 4, 196, 198, 196, 196, - 196, 4, 196, 196, 196, 196, 196, 196, 4, 6, - 964, 4, 198, 967, 970, 196, 970, 8, 195, 973, - 970, 967, 964, 8, 970, 195, 964, 973, 195, 967, - 984, 973, 970, 987, 195, 973, 990, 964, 984, 195, - 195, 4, 964, 8, 964, 3, 984, 8, 195, 987, - 964, 973, 1006, 973, 964, 964, 1010, 964, 964, 973, - 964, 195, 4, 973, 973, 1019, 973, 973, 1006, 973, - 4, 1025, 1010, 1019, 1028, 195, 964, 4, 1016, 967, - 984, 1019, 970, 987, 195, 973, 198, 1025, 964, 964, - 1028, 964, 964, 964, 964, 964, 984, 973, 973, 987, - 973, 973, 973, 973, 973, 964, 195, 964, 964, 4, - 964, 196, 5, 195, 973, 195, 973, 973, 1006, 973, - 964, 1025, 1010, 964, 1028, 973, 7, 4, 1016, 973, - 4, 1019, 973, 973, 4, 4, 195, 1025, 4, 715, - 1028, 682, 476, 768, 689, 195, 963, 480, 976, 958, - 982, 990, 979, 672, 992, 966, 530, 999, 964, 975, - 1177, 423, 81, 1027, 492, 522, 195, 969, 967, 1030, - 970, 495, 196, 198, 196, 972, 989, 1025, 1025, 195, - 1028, 502, 195, 738, 1183, 1025, 1006, 512, 1028, 987, - 985, 1028, 1010, 1016, 688, 1020, 1198, 683, 1219, 1239, - 527, -1, -1, -1, -1, -1, -1, 725, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1177, 547, -1, -1, 549, -1, 1183, - -1, 1177, -1, -1, 553, 1177, -1, 1183, -1, 1177, - -1, -1, -1, -1, 1198, 1183, -1, -1, -1, -1, - -1, -1, 1198, -1, 1139, 1177, -1, 1177, -1, -1, - 1198, -1, -1, 1177, -1, -1, -1, 1177, 1177, -1, - 1177, 1177, -1, 1177, -1, -1, -1, -1, -1, 1183, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1177, - -1, -1, -1, -1, -1, 1183, -1, -1, -1, -1, - -1, 1177, 1177, -1, 1177, 1177, 1177, 1177, 1177, -1, - 1198, -1, -1, -1, -1, -1, -1, -1, 1177, -1, - 1177, 1177, -1, 1177, -1, -1, -1, -1, -1, 1177, - -1, -1, -1, 1177, -1, -1, 1177, 1177 + 78, 79, 80, 726, 82, 83, 695, 85, 720, 989, + 77, 989, 989, 989, 989, 77, 10, 77, 78, 79, + 80, 5, 110, 7, 199, 9, 3, 16, 17, 117, + 0, 8, 7, 77, 7, 77, 77, 630, 7, 77, + 165, 166, 167, 168, 112, 119, 120, 68, 69, 642, + 643, 644, 7, 77, 76, 77, 78, 79, 80, 3, + 82, 83, 7, 85, 8, 86, 87, 77, 67, 21, + 77, 77, 77, 77, 119, 120, 3, 202, 30, 13, + 14, 8, 21, 3, 77, 106, 107, 77, 8, 77, + 3, 77, 77, 6, 77, 77, 3, 86, 87, 77, + 172, 8, 78, 79, 3, 77, 7, 21, 6, 8, + 78, 79, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 69, 199, 71, 72, 86, 87, 75, 76, 77, 68, + 174, 7, 3, 177, 178, 179, 180, 86, 87, 3, + 79, 7, 6, 68, 199, 69, 68, 86, 87, 3, + 86, 87, 112, 113, 8, 115, 81, 82, 83, 84, + 85, 86, 87, 7, 86, 87, 105, 171, 199, 108, + 132, 133, 134, 135, 7, 7, 3, 181, 182, 183, + 105, 8, 104, 108, 3, 7, 69, 6, 110, 111, + 112, 113, 114, 115, 3, 199, 129, 130, 131, 8, + 199, 86, 87, 86, 87, 199, 200, 201, 202, 145, + 146, 147, 1202, 3, 1202, 1202, 1202, 1202, 8, 94, + 95, 96, 97, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 162, 163, 7, 199, 59, 60, + 61, 62, 63, 64, 65, 3, 3, 68, 6, 6, + 199, 86, 87, 138, 139, 140, 7, 78, 4, 80, + 199, 86, 87, 199, 8, 86, 87, 88, 89, 90, + 91, 92, 93, 995, 199, 199, 3, 199, 977, 3, + 3, 8, 4, 4, 105, 8, 3, 108, 109, 1022, + 173, 8, 175, 176, 3, 116, 4, 4, 4, 8, + 4, 69, 70, 71, 72, 73, 74, 142, 143, 4, + 3, 8, 3, 3, 199, 8, 199, 8, 86, 87, + 4, 425, 4, 4, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 122, 123, 124, + 125, 126, 127, 4, 169, 170, 3, 3, 169, 170, + 3, 8, 8, 3, 3, 8, 3, 3, 8, 8, + 3, 8, 8, 3, 199, 8, 3, 3, 8, 4, + 4, 8, 8, 4, 199, 479, 4, 3, 199, 483, + 415, 416, 8, 3, 3, 3, 8, 4, 8, 8, + 8, 495, 4, 4, 498, 483, 4, 22, 23, 24, + 25, 505, 4, 495, 4, 4, 4, 495, 4, 4, + 498, 515, 4, 4, 4, 8, 3, 505, 495, 4, + 4, 525, 8, 495, 530, 495, 530, 515, 498, 525, + 530, 199, 3, 199, 530, 505, 4, 525, 4, 4, + 4, 495, 530, 495, 495, 515, 550, 495, 4, 4, + 552, 483, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 495, 550, 495, 4, 4, 498, 4, 200, 200, + 200, 200, 200, 505, 200, 495, 4, 202, 495, 495, + 495, 495, 200, 515, 200, 4, 201, 201, 200, 200, + 200, 7, 495, 525, 4, 495, 4, 495, 530, 495, + 495, 202, 495, 495, 202, 4, 202, 495, 202, 4, + 4, 4, 498, 495, 4, 4, 4, 4, 550, 505, + 498, 4, 4, 4, 4, 4, 4, 505, 563, 564, + 565, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 4, 4, 4, 200, 59, 60, 61, 62, + 63, 64, 65, 66, 4, 68, 69, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 4, 86, 87, 4, 89, 90, 4, 92, + 93, 4, 686, 4, 4, 687, 202, 4, 4, 693, + 4, 4, 105, 4, 200, 108, 4, 202, 4, 4, + 4, 4, 4, 116, 4, 693, 200, 4, 4, 4, + 4, 200, 200, 4, 4, 4, 4, 200, 4, 4, + 4, 202, 726, 727, 728, 4, 730, 202, 663, 202, + 4, 4, 202, 4, 4, 4, 4, 200, 726, 727, + 728, 729, 730, 200, 4, 4, 200, 4, 4, 202, + 685, 4, 4, 4, 3, 5, 169, 170, 200, 202, + 7, 693, 164, 199, 7, 7, 11, 12, 7, 7, + 15, 5, 199, 18, 19, 20, 199, 199, 5, 5, + 3, 199, 7, 5, 5, 5, 199, 5, 7, 5, + 5, 5, 199, 199, 726, 727, 728, 729, 730, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 7, 7, 7, 7, 7, 7, + 5, 5, 5, 5, 199, 199, 199, 7, 5, 7, + 199, 86, 87, 199, 199, 199, 199, 199, 93, 7, + 199, 199, 199, 98, 99, 100, 101, 102, 199, 104, + 199, 199, 199, 199, 109, 199, 199, 7, 199, 199, + 7, 199, 199, 118, 199, 7, 121, 7, 7, 103, + 7, 7, 7, 128, 7, 4, 4, 4, 4, 4, + 4, 136, 137, 4, 4, 4, 141, 4, 4, 144, + 3, 6, 6, 148, 6, 6, 3, 6, 3, 202, + 6, 3, 6, 6, 3, 6, 4, 4, 4, 4, + 4, 4, 4, 4, 169, 170, 4, 172, 4, 4, + 4, 4, 4, 199, 3, 6, 3, 200, 8, 4, + 6, 4, 4, 4, 202, 200, 200, 4, 4, 4, + 4, 4, 200, 4, 199, 4, 200, 4, 4, 200, + 200, 4, 4, 4, 200, 202, 6, 200, 200, 200, + 200, 200, 200, 3, 8, 8, 980, 4, 3, 983, + 986, 4, 986, 200, 8, 989, 986, 983, 980, 200, + 986, 200, 980, 989, 202, 983, 1000, 989, 986, 1003, + 200, 989, 1006, 980, 1000, 200, 202, 200, 980, 199, + 980, 199, 1000, 199, 199, 1003, 8, 989, 1022, 989, + 4, 4, 199, 1027, 200, 4, 980, 1031, 980, 980, + 1000, 202, 980, 1003, 1022, 989, 1040, 989, 989, 1027, + 199, 989, 1046, 1031, 1040, 1049, 980, 199, 980, 1037, + 199, 983, 1040, 199, 986, 989, 199, 989, 1046, 5, + 980, 1049, 7, 980, 980, 980, 980, 4, 1000, 989, + 4, 1003, 989, 989, 989, 989, 1046, 980, 199, 1049, + 980, 4, 980, 4, 980, 980, 989, 980, 980, 989, + 1022, 989, 980, 989, 989, 1027, 989, 989, 980, 1031, + 4, 989, 202, 989, 479, 1037, 719, 989, 1040, 199, + 425, 989, 686, 676, 1046, 693, 598, 1049, 773, 199, + 199, 979, 199, 974, 998, 483, 992, 995, 533, 1006, + 1027, 199, 1008, 1202, 1015, 982, 200, 980, 495, 991, + 200, 199, 81, 985, 530, 983, 986, 199, 525, 1051, + 1003, 743, 498, 988, 505, 1005, 1046, 1048, 1208, 1022, + 1046, 1031, 1037, 1049, 730, 1049, 550, 1001, 1046, 692, + 515, 1049, 687, 1244, 1041, 1223, 1264, -1, 552, -1, + 556, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1202, -1, + -1, -1, -1, -1, 1208, -1, 1202, -1, -1, -1, + 1202, -1, 1208, -1, 1202, -1, -1, -1, -1, 1223, + 1208, -1, -1, -1, -1, -1, -1, 1223, -1, 1164, + 1202, -1, 1202, -1, -1, 1223, -1, -1, 1208, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1202, -1, + 1202, 1202, -1, -1, 1202, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1202, -1, + 1202, -1, -1, -1, -1, -1, 1208, -1, -1, -1, + -1, -1, 1202, -1, -1, 1202, 1202, 1202, 1202, -1, + -1, 1223, -1, -1, -1, -1, -1, -1, -1, 1202, + -1, -1, 1202, -1, 1202, -1, 1202, 1202, -1, 1202, + 1202, -1, -1, -1, 1202, -1, 1202, -1, -1, -1, + 1202, -1, -1, -1, 1202 }; - const short + const unsigned short int Dhcp6Parser::yystos_[] = { - 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 0, 5, 7, 9, 195, 196, 197, 198, - 216, 217, 218, 223, 7, 232, 7, 238, 7, 277, - 7, 376, 7, 453, 7, 469, 7, 486, 7, 405, - 7, 411, 7, 435, 7, 352, 7, 555, 7, 601, - 7, 592, 224, 219, 233, 239, 278, 377, 454, 470, - 487, 406, 412, 436, 353, 556, 602, 593, 216, 225, - 226, 195, 221, 222, 10, 167, 177, 178, 179, 195, - 231, 234, 235, 236, 584, 586, 588, 599, 11, 12, + 0, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 0, 5, 7, 9, 199, 200, 201, 202, + 220, 221, 222, 227, 7, 236, 7, 242, 7, 281, + 7, 387, 7, 464, 7, 480, 7, 497, 7, 416, + 7, 422, 7, 446, 7, 363, 7, 566, 7, 612, + 7, 603, 228, 223, 237, 243, 282, 388, 465, 481, + 498, 417, 423, 447, 364, 567, 613, 604, 220, 229, + 230, 199, 225, 226, 10, 171, 181, 182, 183, 199, + 235, 238, 239, 240, 595, 597, 599, 610, 11, 12, 15, 18, 19, 20, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 86, 87, 93, 98, 99, 100, 101, 102, 104, 109, 118, - 121, 128, 136, 137, 140, 144, 165, 166, 168, 231, - 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, - 264, 266, 268, 270, 271, 272, 273, 275, 284, 286, - 288, 326, 332, 338, 344, 346, 360, 370, 390, 395, - 403, 429, 459, 461, 480, 510, 522, 534, 535, 543, - 553, 590, 605, 16, 17, 231, 279, 280, 281, 283, - 459, 461, 78, 80, 88, 89, 90, 91, 92, 105, - 108, 116, 231, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 256, 257, 258, 259, 262, 264, - 266, 268, 270, 378, 379, 380, 382, 384, 386, 388, - 390, 393, 394, 429, 447, 459, 461, 463, 480, 505, - 79, 231, 386, 388, 429, 455, 456, 457, 459, 461, - 81, 82, 83, 84, 85, 231, 386, 388, 429, 459, - 461, 471, 472, 473, 475, 476, 478, 479, 104, 110, - 111, 112, 113, 114, 115, 231, 429, 459, 461, 488, - 489, 490, 491, 493, 495, 497, 499, 501, 503, 403, - 21, 69, 71, 72, 75, 76, 77, 231, 306, 413, - 414, 415, 416, 417, 418, 419, 421, 423, 425, 426, - 428, 459, 461, 70, 73, 74, 231, 306, 417, 423, - 437, 438, 439, 440, 441, 443, 444, 445, 446, 459, - 461, 119, 120, 231, 354, 355, 356, 358, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 165, 166, 231, 459, 461, 557, 558, 559, 560, - 562, 564, 565, 567, 568, 569, 572, 574, 575, 576, - 578, 580, 582, 603, 604, 605, 13, 14, 594, 595, - 596, 598, 6, 3, 4, 8, 3, 237, 600, 585, - 587, 589, 4, 3, 8, 243, 591, 276, 285, 287, - 289, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 274, 4, 4, 4, 4, 4, 260, - 263, 265, 4, 371, 404, 430, 460, 462, 391, 396, - 333, 345, 339, 327, 511, 481, 347, 361, 523, 4, - 536, 544, 554, 267, 269, 606, 3, 8, 282, 4, - 3, 8, 448, 464, 381, 383, 385, 4, 4, 389, - 387, 506, 3, 8, 458, 3, 8, 474, 4, 477, - 4, 4, 3, 8, 504, 492, 494, 496, 498, 500, - 502, 8, 3, 8, 420, 307, 4, 424, 422, 427, - 4, 8, 3, 442, 4, 4, 8, 3, 357, 359, - 3, 8, 4, 561, 563, 4, 566, 4, 4, 570, - 573, 4, 4, 577, 579, 581, 583, 3, 8, 3, - 8, 597, 4, 3, 8, 216, 216, 195, 4, 4, - 4, 4, 4, 235, 4, 4, 4, 4, 4, 4, - 196, 196, 196, 196, 196, 196, 196, 196, 198, 197, - 197, 196, 4, 196, 196, 198, 198, 198, 4, 4, - 4, 198, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 196, 4, - 4, 4, 4, 4, 4, 241, 4, 198, 280, 4, - 4, 4, 4, 4, 196, 198, 4, 4, 4, 379, - 4, 456, 4, 196, 4, 196, 196, 472, 4, 4, - 4, 4, 4, 4, 4, 490, 4, 4, 196, 4, - 4, 4, 198, 415, 4, 198, 198, 439, 4, 4, - 355, 198, 4, 4, 196, 4, 196, 196, 4, 4, - 198, 198, 4, 4, 4, 4, 558, 604, 4, 196, - 595, 4, 7, 7, 216, 216, 216, 195, 7, 7, - 7, 7, 5, 195, 161, 162, 163, 164, 198, 261, - 195, 195, 5, 5, 5, 218, 220, 195, 94, 95, - 96, 97, 392, 5, 5, 5, 5, 7, 5, 5, - 5, 7, 7, 7, 7, 7, 195, 195, 5, 5, - 227, 5, 5, 195, 195, 195, 227, 195, 7, 195, - 195, 195, 227, 227, 227, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 216, 195, 195, 195, - 158, 159, 571, 160, 261, 195, 195, 195, 5, 216, - 240, 603, 594, 279, 21, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 231, 294, 295, 296, 299, 301, 303, - 305, 306, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 319, 320, 322, 324, 294, 7, 290, 291, - 292, 7, 372, 373, 374, 7, 407, 408, 409, 7, - 431, 432, 433, 7, 397, 398, 399, 112, 195, 334, - 335, 336, 337, 225, 113, 115, 336, 340, 341, 342, - 343, 103, 328, 329, 330, 7, 512, 513, 7, 482, - 483, 484, 7, 348, 349, 350, 122, 123, 124, 125, - 126, 127, 362, 363, 364, 365, 366, 367, 368, 369, - 21, 132, 133, 134, 135, 231, 308, 459, 461, 524, - 525, 526, 529, 530, 532, 533, 138, 139, 231, 459, - 461, 537, 538, 539, 541, 141, 142, 143, 195, 459, - 461, 545, 546, 547, 548, 550, 551, 557, 7, 607, - 608, 228, 7, 449, 450, 451, 7, 465, 466, 467, - 117, 491, 507, 508, 290, 8, 8, 8, 8, 297, - 300, 302, 304, 4, 4, 4, 4, 4, 318, 4, - 4, 321, 323, 325, 4, 4, 4, 4, 3, 8, - 8, 293, 6, 3, 375, 6, 3, 410, 6, 3, - 434, 6, 3, 400, 6, 3, 3, 6, 6, 3, - 6, 331, 3, 8, 514, 3, 6, 485, 6, 3, - 351, 6, 3, 4, 4, 4, 4, 4, 4, 3, - 8, 527, 531, 4, 4, 4, 3, 8, 540, 542, - 3, 8, 4, 549, 4, 552, 3, 8, 8, 609, - 3, 6, 195, 229, 230, 452, 6, 3, 468, 6, - 3, 509, 8, 6, 4, 4, 4, 4, 196, 198, - 196, 198, 196, 4, 196, 196, 4, 4, 4, 196, - 196, 198, 196, 295, 294, 292, 378, 374, 413, 409, - 437, 433, 231, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 256, 257, 258, 259, 262, 264, - 266, 268, 270, 306, 370, 382, 384, 386, 388, 390, - 394, 401, 402, 429, 459, 461, 505, 399, 335, 341, - 4, 329, 106, 107, 231, 306, 429, 459, 461, 515, - 516, 517, 518, 519, 521, 513, 488, 484, 354, 350, - 196, 196, 196, 196, 196, 196, 363, 4, 4, 196, - 196, 196, 525, 4, 4, 538, 198, 4, 196, 4, - 546, 169, 171, 172, 231, 306, 459, 461, 610, 611, - 612, 613, 615, 608, 6, 3, 455, 451, 471, 467, - 4, 22, 23, 24, 25, 298, 195, 195, 195, 195, - 195, 195, 195, 8, 8, 8, 8, 3, 8, 195, - 520, 4, 8, 3, 8, 8, 129, 130, 131, 528, - 195, 195, 195, 195, 216, 616, 4, 614, 3, 8, - 195, 8, 8, 195, 402, 4, 198, 517, 4, 196, - 4, 611, 195, 5, 195, 7, 617, 618, 619, 3, - 6, 170, 173, 174, 175, 176, 620, 621, 622, 624, - 625, 626, 627, 618, 623, 4, 4, 4, 628, 3, - 8, 4, 198, 196, 196, 4, 621, 195, 195 + 121, 128, 136, 137, 141, 144, 148, 169, 170, 172, + 235, 244, 245, 246, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 266, 268, 270, 272, 274, 275, 276, 277, 279, 288, + 290, 292, 330, 336, 342, 348, 350, 357, 371, 381, + 401, 406, 414, 440, 470, 472, 491, 521, 533, 545, + 546, 554, 564, 601, 616, 16, 17, 235, 283, 284, + 285, 287, 470, 472, 78, 80, 88, 89, 90, 91, + 92, 105, 108, 116, 235, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, + 266, 268, 270, 272, 274, 389, 390, 391, 393, 395, + 397, 399, 401, 404, 405, 440, 458, 470, 472, 474, + 491, 516, 79, 235, 397, 399, 440, 466, 467, 468, + 470, 472, 81, 82, 83, 84, 85, 235, 397, 399, + 440, 470, 472, 482, 483, 484, 486, 487, 489, 490, + 104, 110, 111, 112, 113, 114, 115, 235, 440, 470, + 472, 499, 500, 501, 502, 504, 506, 508, 510, 512, + 514, 414, 21, 69, 71, 72, 75, 76, 77, 235, + 310, 424, 425, 426, 427, 428, 429, 430, 432, 434, + 436, 437, 439, 470, 472, 70, 73, 74, 235, 310, + 428, 434, 448, 449, 450, 451, 452, 454, 455, 456, + 457, 470, 472, 119, 120, 235, 365, 366, 367, 369, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 169, 170, 235, 470, 472, 568, 569, + 570, 571, 573, 575, 576, 578, 579, 580, 583, 585, + 586, 587, 589, 591, 593, 614, 615, 616, 13, 14, + 605, 606, 607, 609, 6, 3, 4, 8, 3, 241, + 611, 596, 598, 600, 4, 3, 8, 247, 602, 280, + 289, 291, 293, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 278, 4, 4, 4, 4, + 4, 264, 267, 269, 4, 382, 415, 441, 471, 473, + 402, 407, 337, 349, 343, 331, 522, 492, 358, 372, + 534, 4, 351, 547, 555, 565, 271, 273, 617, 3, + 8, 286, 4, 3, 8, 459, 475, 392, 394, 396, + 4, 4, 400, 398, 517, 3, 8, 469, 3, 8, + 485, 4, 488, 4, 4, 3, 8, 515, 503, 505, + 507, 509, 511, 513, 8, 3, 8, 431, 311, 4, + 435, 433, 438, 4, 8, 3, 453, 4, 4, 8, + 3, 368, 370, 3, 8, 4, 572, 574, 4, 577, + 4, 4, 581, 584, 4, 4, 588, 590, 592, 594, + 3, 8, 3, 8, 608, 4, 3, 8, 220, 220, + 199, 4, 4, 4, 4, 4, 239, 4, 4, 4, + 4, 4, 4, 200, 200, 200, 200, 200, 200, 200, + 200, 202, 201, 201, 200, 4, 200, 200, 202, 202, + 202, 4, 4, 4, 202, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 200, 4, 4, 4, 4, 4, 4, 4, 245, + 4, 202, 284, 4, 4, 4, 4, 4, 200, 202, + 4, 4, 4, 390, 4, 467, 4, 200, 4, 200, + 200, 483, 4, 4, 4, 4, 4, 4, 4, 501, + 4, 4, 200, 4, 4, 4, 202, 426, 4, 202, + 202, 450, 4, 4, 366, 202, 4, 4, 200, 4, + 200, 200, 4, 4, 202, 202, 4, 4, 4, 4, + 569, 615, 4, 200, 606, 4, 7, 7, 220, 220, + 220, 199, 7, 7, 7, 7, 5, 199, 165, 166, + 167, 168, 202, 265, 199, 199, 5, 5, 5, 222, + 224, 199, 94, 95, 96, 97, 403, 5, 5, 5, + 5, 7, 5, 5, 5, 7, 7, 7, 7, 7, + 7, 199, 199, 5, 5, 231, 5, 5, 199, 199, + 199, 231, 199, 7, 199, 199, 199, 231, 231, 231, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 220, 199, 199, 199, 162, 163, 582, 164, 265, + 199, 199, 199, 5, 220, 244, 614, 605, 283, 21, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 235, 298, + 299, 300, 303, 305, 307, 309, 310, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 323, 324, 326, + 328, 298, 7, 294, 295, 296, 7, 383, 384, 385, + 7, 418, 419, 420, 7, 442, 443, 444, 7, 408, + 409, 410, 112, 199, 338, 339, 340, 341, 229, 113, + 115, 340, 344, 345, 346, 347, 103, 332, 333, 334, + 7, 523, 524, 7, 493, 494, 495, 7, 359, 360, + 361, 122, 123, 124, 125, 126, 127, 373, 374, 375, + 376, 377, 378, 379, 380, 21, 132, 133, 134, 135, + 235, 312, 470, 472, 535, 536, 537, 540, 541, 543, + 544, 138, 139, 140, 235, 352, 353, 354, 355, 356, + 470, 472, 142, 143, 235, 470, 472, 548, 549, 550, + 552, 145, 146, 147, 199, 470, 472, 556, 557, 558, + 559, 561, 562, 568, 7, 618, 619, 232, 7, 460, + 461, 462, 7, 476, 477, 478, 117, 502, 518, 519, + 294, 8, 8, 8, 8, 301, 304, 306, 308, 4, + 4, 4, 4, 4, 322, 4, 4, 325, 327, 329, + 4, 4, 4, 4, 3, 8, 8, 297, 6, 3, + 386, 6, 3, 421, 6, 3, 445, 6, 3, 411, + 6, 3, 3, 6, 6, 3, 6, 335, 3, 8, + 525, 3, 6, 496, 6, 3, 362, 6, 3, 4, + 4, 4, 4, 4, 4, 3, 8, 538, 542, 4, + 4, 4, 3, 8, 4, 4, 4, 3, 8, 551, + 553, 3, 8, 4, 560, 4, 563, 3, 8, 8, + 620, 3, 6, 199, 233, 234, 463, 6, 3, 479, + 6, 3, 520, 8, 6, 4, 4, 4, 4, 200, + 202, 200, 202, 200, 4, 200, 200, 4, 4, 4, + 200, 200, 202, 200, 299, 298, 296, 389, 385, 424, + 420, 448, 444, 235, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 260, 261, 262, 263, 266, + 268, 270, 272, 274, 310, 381, 393, 395, 397, 399, + 401, 405, 412, 413, 440, 470, 472, 516, 410, 339, + 345, 4, 333, 106, 107, 235, 310, 440, 470, 472, + 526, 527, 528, 529, 530, 532, 524, 499, 495, 365, + 361, 200, 200, 200, 200, 200, 200, 374, 4, 4, + 200, 200, 200, 536, 202, 200, 200, 353, 4, 4, + 549, 202, 4, 200, 4, 557, 173, 175, 176, 235, + 310, 470, 472, 621, 622, 623, 624, 626, 619, 6, + 3, 466, 462, 482, 478, 4, 22, 23, 24, 25, + 302, 199, 199, 199, 199, 199, 199, 199, 8, 8, + 8, 8, 3, 8, 199, 531, 4, 8, 3, 8, + 8, 129, 130, 131, 539, 199, 199, 199, 199, 220, + 627, 4, 625, 3, 8, 199, 8, 8, 199, 413, + 4, 202, 528, 4, 200, 4, 622, 199, 5, 199, + 7, 628, 629, 630, 3, 6, 174, 177, 178, 179, + 180, 631, 632, 633, 635, 636, 637, 638, 629, 634, + 4, 4, 4, 639, 3, 8, 4, 202, 200, 200, + 4, 632, 199, 199 }; - const short + const unsigned short int Dhcp6Parser::yyr1_[] = { - 0, 199, 201, 200, 202, 200, 203, 200, 204, 200, - 205, 200, 206, 200, 207, 200, 208, 200, 209, 200, - 210, 200, 211, 200, 212, 200, 213, 200, 214, 200, - 215, 200, 216, 216, 216, 216, 216, 216, 216, 217, - 219, 218, 220, 221, 221, 222, 222, 224, 223, 225, - 225, 226, 226, 228, 227, 229, 229, 230, 230, 231, - 233, 232, 234, 234, 235, 235, 235, 235, 235, 235, - 237, 236, 239, 238, 240, 240, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 243, 242, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 260, 259, 261, 261, 261, - 261, 261, 263, 262, 265, 264, 267, 266, 269, 268, - 270, 271, 272, 274, 273, 276, 275, 278, 277, 279, - 279, 280, 280, 280, 280, 280, 282, 281, 283, 285, - 284, 287, 286, 289, 288, 290, 290, 291, 291, 293, - 292, 294, 294, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 297, 296, 298, 298, 298, 298, - 300, 299, 302, 301, 304, 303, 305, 307, 306, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 318, 317, - 319, 321, 320, 323, 322, 325, 324, 327, 326, 328, - 328, 329, 331, 330, 333, 332, 334, 334, 335, 335, - 336, 337, 339, 338, 340, 340, 341, 341, 341, 342, - 343, 345, 344, 347, 346, 348, 348, 349, 349, 351, - 350, 353, 352, 354, 354, 354, 355, 355, 357, 356, - 359, 358, 361, 360, 362, 362, 363, 363, 363, 363, - 363, 363, 364, 365, 366, 367, 368, 369, 371, 370, - 372, 372, 373, 373, 375, 374, 377, 376, 378, 378, - 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, - 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, - 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, - 379, 379, 379, 379, 379, 379, 381, 380, 383, 382, - 385, 384, 387, 386, 389, 388, 391, 390, 392, 392, - 392, 392, 393, 394, 396, 395, 397, 397, 398, 398, - 400, 399, 401, 401, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 404, 403, 406, - 405, 407, 407, 408, 408, 410, 409, 412, 411, 413, - 413, 414, 414, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 416, 417, 418, 420, 419, 422, 421, - 424, 423, 425, 427, 426, 428, 430, 429, 431, 431, - 432, 432, 434, 433, 436, 435, 437, 437, 438, 438, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 440, - 442, 441, 443, 444, 445, 446, 448, 447, 449, 449, - 450, 450, 452, 451, 454, 453, 455, 455, 456, 456, - 456, 456, 456, 456, 456, 458, 457, 460, 459, 462, - 461, 464, 463, 465, 465, 466, 466, 468, 467, 470, - 469, 471, 471, 472, 472, 472, 472, 472, 472, 472, - 472, 472, 472, 472, 474, 473, 475, 477, 476, 478, - 479, 481, 480, 482, 482, 483, 483, 485, 484, 487, - 486, 488, 488, 489, 489, 490, 490, 490, 490, 490, - 490, 490, 490, 490, 490, 490, 492, 491, 494, 493, - 496, 495, 498, 497, 500, 499, 502, 501, 504, 503, - 506, 505, 507, 507, 509, 508, 511, 510, 512, 512, - 514, 513, 515, 515, 516, 516, 517, 517, 517, 517, - 517, 517, 517, 518, 520, 519, 521, 523, 522, 524, - 524, 525, 525, 525, 525, 525, 525, 525, 525, 525, - 527, 526, 528, 528, 528, 529, 531, 530, 532, 533, - 534, 536, 535, 537, 537, 538, 538, 538, 538, 538, - 540, 539, 542, 541, 544, 543, 545, 545, 546, 546, - 546, 546, 546, 546, 547, 549, 548, 550, 552, 551, - 554, 553, 556, 555, 557, 557, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 559, 561, 560, 563, 562, 564, - 566, 565, 567, 568, 570, 569, 571, 571, 573, 572, - 574, 575, 577, 576, 579, 578, 581, 580, 583, 582, - 585, 584, 587, 586, 589, 588, 591, 590, 593, 592, - 594, 594, 595, 595, 597, 596, 598, 600, 599, 602, - 601, 603, 603, 604, 606, 605, 607, 607, 609, 608, - 610, 610, 611, 611, 611, 611, 611, 611, 611, 612, - 614, 613, 616, 615, 617, 617, 619, 618, 620, 620, - 621, 621, 621, 621, 621, 623, 622, 624, 625, 626, - 628, 627 + 0, 203, 205, 204, 206, 204, 207, 204, 208, 204, + 209, 204, 210, 204, 211, 204, 212, 204, 213, 204, + 214, 204, 215, 204, 216, 204, 217, 204, 218, 204, + 219, 204, 220, 220, 220, 220, 220, 220, 220, 221, + 223, 222, 224, 225, 225, 226, 226, 228, 227, 229, + 229, 230, 230, 232, 231, 233, 233, 234, 234, 235, + 237, 236, 238, 238, 239, 239, 239, 239, 239, 239, + 241, 240, 243, 242, 244, 244, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, + 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 264, 263, 265, 265, + 265, 265, 265, 267, 266, 269, 268, 271, 270, 273, + 272, 274, 275, 276, 278, 277, 280, 279, 282, 281, + 283, 283, 284, 284, 284, 284, 284, 286, 285, 287, + 289, 288, 291, 290, 293, 292, 294, 294, 295, 295, + 297, 296, 298, 298, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 301, 300, 302, 302, 302, + 302, 304, 303, 306, 305, 308, 307, 309, 311, 310, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 322, + 321, 323, 325, 324, 327, 326, 329, 328, 331, 330, + 332, 332, 333, 335, 334, 337, 336, 338, 338, 339, + 339, 340, 341, 343, 342, 344, 344, 345, 345, 345, + 346, 347, 349, 348, 351, 350, 352, 352, 353, 353, + 353, 353, 353, 353, 354, 355, 356, 358, 357, 359, + 359, 360, 360, 362, 361, 364, 363, 365, 365, 365, + 366, 366, 368, 367, 370, 369, 372, 371, 373, 373, + 374, 374, 374, 374, 374, 374, 375, 376, 377, 378, + 379, 380, 382, 381, 383, 383, 384, 384, 386, 385, + 388, 387, 389, 389, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 392, 391, 394, 393, 396, 395, 398, 397, 400, 399, + 402, 401, 403, 403, 403, 403, 404, 405, 407, 406, + 408, 408, 409, 409, 411, 410, 412, 412, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 415, 414, 417, 416, 418, 418, 419, 419, 421, + 420, 423, 422, 424, 424, 425, 425, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 427, 428, 429, + 431, 430, 433, 432, 435, 434, 436, 438, 437, 439, + 441, 440, 442, 442, 443, 443, 445, 444, 447, 446, + 448, 448, 449, 449, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 451, 453, 452, 454, 455, 456, 457, + 459, 458, 460, 460, 461, 461, 463, 462, 465, 464, + 466, 466, 467, 467, 467, 467, 467, 467, 467, 469, + 468, 471, 470, 473, 472, 475, 474, 476, 476, 477, + 477, 479, 478, 481, 480, 482, 482, 483, 483, 483, + 483, 483, 483, 483, 483, 483, 483, 483, 485, 484, + 486, 488, 487, 489, 490, 492, 491, 493, 493, 494, + 494, 496, 495, 498, 497, 499, 499, 500, 500, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 503, 502, 505, 504, 507, 506, 509, 508, 511, 510, + 513, 512, 515, 514, 517, 516, 518, 518, 520, 519, + 522, 521, 523, 523, 525, 524, 526, 526, 527, 527, + 528, 528, 528, 528, 528, 528, 528, 529, 531, 530, + 532, 534, 533, 535, 535, 536, 536, 536, 536, 536, + 536, 536, 536, 536, 538, 537, 539, 539, 539, 540, + 542, 541, 543, 544, 545, 547, 546, 548, 548, 549, + 549, 549, 549, 549, 551, 550, 553, 552, 555, 554, + 556, 556, 557, 557, 557, 557, 557, 557, 558, 560, + 559, 561, 563, 562, 565, 564, 567, 566, 568, 568, + 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 569, 569, 569, 570, 572, + 571, 574, 573, 575, 577, 576, 578, 579, 581, 580, + 582, 582, 584, 583, 585, 586, 588, 587, 590, 589, + 592, 591, 594, 593, 596, 595, 598, 597, 600, 599, + 602, 601, 604, 603, 605, 605, 606, 606, 608, 607, + 609, 611, 610, 613, 612, 614, 614, 615, 617, 616, + 618, 618, 620, 619, 621, 621, 622, 622, 622, 622, + 622, 622, 622, 623, 625, 624, 627, 626, 628, 628, + 630, 629, 631, 631, 632, 632, 632, 632, 632, 634, + 633, 635, 636, 637, 639, 638 }; - const signed char + const unsigned char Dhcp6Parser::yyr2_[] = { 0, 2, 0, 3, 0, 3, 0, 3, 0, 3, @@ -5225,72 +5189,73 @@ namespace isc { namespace dhcp { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 0, 4, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, - 3, 3, 3, 0, 4, 0, 6, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 0, 4, 3, 0, - 6, 0, 6, 0, 6, 0, 1, 1, 3, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 4, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, + 4, 3, 3, 3, 0, 4, 0, 6, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 0, 4, 3, + 0, 6, 0, 6, 0, 6, 0, 1, 1, 3, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 3, 0, 4, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, - 3, 0, 4, 0, 4, 0, 4, 0, 6, 1, - 3, 1, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 0, 6, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 1, 3, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, - 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 1, 1, - 1, 1, 3, 3, 0, 6, 0, 1, 1, 3, + 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, + 1, 0, 4, 0, 4, 0, 4, 3, 0, 4, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, + 4, 3, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 0, 4, 0, 6, 1, 3, 1, + 1, 1, 1, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 0, 6, 0, 6, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, - 4, 0, 1, 1, 3, 0, 4, 0, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 0, 4, 0, 4, - 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 3, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 3, 0, 4, 3, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 6, 1, 1, 0, 4, 0, 6, 1, 3, - 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 3, 0, 6, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 1, 3, 0, 4, 3, 3, - 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, - 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, + 0, 4, 1, 1, 1, 1, 3, 3, 0, 6, + 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 0, 4, 3, - 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, - 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 0, 6, 3, 0, 6, 0, - 4, 1, 3, 1, 0, 6, 1, 3, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 0, 6, 1, 3, 0, 4, 1, 3, - 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, - 0, 4 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 6, 0, 4, 0, 1, 1, 3, 0, + 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, + 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 1, 1, 3, 3, + 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 6, 1, 1, 0, 4, + 0, 6, 1, 3, 0, 4, 0, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 1, 1, 1, 3, + 0, 4, 3, 3, 3, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 3, 0, 4, 0, 6, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 0, 4, 3, 0, 4, 3, 3, 0, 4, + 1, 1, 0, 4, 3, 3, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 6, 0, 4, 1, 3, 1, 1, 0, 6, + 3, 0, 6, 0, 4, 1, 3, 1, 0, 6, + 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 3, 0, 4, 0, 6, 1, 3, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 0, + 4, 3, 3, 3, 0, 4 }; @@ -5341,28 +5306,29 @@ namespace isc { namespace dhcp { "\"max-reclaim-leases\"", "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", "\"server-id\"", "\"LLT\"", "\"EN\"", "\"LL\"", "\"identifier\"", "\"htype\"", "\"time\"", "\"enterprise-id\"", - "\"dhcp4o6-port\"", "\"control-socket\"", "\"socket-type\"", - "\"socket-name\"", "\"dhcp-queue-control\"", "\"enable-queue\"", - "\"queue-type\"", "\"capacity\"", "\"dhcp-ddns\"", "\"enable-updates\"", - "\"qualifying-suffix\"", "\"server-ip\"", "\"server-port\"", - "\"sender-ip\"", "\"sender-port\"", "\"max-queue-size\"", - "\"ncr-protocol\"", "\"ncr-format\"", "\"override-no-update\"", - "\"override-client-update\"", "\"replace-client-name\"", - "\"generated-prefix\"", "\"UDP\"", "\"TCP\"", "\"JSON\"", - "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"", - "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"Logging\"", - "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", - "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", - "\"Dhcp4\"", "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON", - "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", - "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS", - "SUB_OPTION_DEF", "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", - "SUB_DHCP_DDNS", "SUB_LOGGING", "SUB_CONFIG_CONTROL", - "\"constant string\"", "\"integer\"", "\"floating point\"", - "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5", - "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", - "$@15", "value", "sub_json", "map2", "$@16", "map_value", "map_content", - "not_empty_map", "list_generic", "$@17", "list_content", + "\"dhcp4o6-port\"", "\"multi-threading\"", "\"enable-multi-threading\"", + "\"thread-pool-size\"", "\"packet-queue-size\"", "\"control-socket\"", + "\"socket-type\"", "\"socket-name\"", "\"dhcp-queue-control\"", + "\"enable-queue\"", "\"queue-type\"", "\"capacity\"", "\"dhcp-ddns\"", + "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"", + "\"server-port\"", "\"sender-ip\"", "\"sender-port\"", + "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"", + "\"override-no-update\"", "\"override-client-update\"", + "\"replace-client-name\"", "\"generated-prefix\"", "\"UDP\"", "\"TCP\"", + "\"JSON\"", "\"when-present\"", "\"never\"", "\"always\"", + "\"when-not-present\"", "\"hostname-char-set\"", + "\"hostname-char-replacement\"", "\"Logging\"", "\"loggers\"", + "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", + "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "\"Dhcp4\"", + "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", + "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", + "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF", + "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING", + "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"", + "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", + "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", + "$@13", "$@14", "$@15", "value", "sub_json", "map2", "$@16", "map_value", + "map_content", "not_empty_map", "list_generic", "$@17", "list_content", "not_empty_list", "list_strings", "$@18", "list_strings_content", "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@19", "global_objects", "global_object", "dhcp6_object", "$@20", "sub_dhcp6", @@ -5393,160 +5359,163 @@ namespace isc { namespace dhcp { "duid_id", "string_id", "host_reservation_identifiers", "$@48", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@49", - "hooks_libraries", "$@50", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@51", - "sub_hooks_library", "$@52", "hooks_params", "hooks_param", "library", - "$@53", "parameters", "$@54", "expired_leases_processing", "$@55", + "dhcp_multi_threading", "$@50", "multi_threading_params", + "multi_threading_param", "enable_multi_threading", "thread_pool_size", + "packet_queue_size", "hooks_libraries", "$@51", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@52", + "sub_hooks_library", "$@53", "hooks_params", "hooks_param", "library", + "$@54", "parameters", "$@55", "expired_leases_processing", "$@56", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet6_list", "$@56", - "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@57", - "sub_subnet6", "$@58", "subnet6_params", "subnet6_param", "subnet", - "$@59", "interface", "$@60", "interface_id", "$@61", "client_class", - "$@62", "require_client_classes", "$@63", "reservation_mode", "$@64", - "hr_mode", "id", "rapid_commit", "shared_networks", "$@65", + "unwarned_reclaim_cycles", "subnet6_list", "$@57", + "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@58", + "sub_subnet6", "$@59", "subnet6_params", "subnet6_param", "subnet", + "$@60", "interface", "$@61", "interface_id", "$@62", "client_class", + "$@63", "require_client_classes", "$@64", "reservation_mode", "$@65", + "hr_mode", "id", "rapid_commit", "shared_networks", "$@66", "shared_networks_content", "shared_networks_list", "shared_network", - "$@66", "shared_network_params", "shared_network_param", - "option_def_list", "$@67", "sub_option_def_list", "$@68", + "$@67", "shared_network_params", "shared_network_param", + "option_def_list", "$@68", "sub_option_def_list", "$@69", "option_def_list_content", "not_empty_option_def_list", - "option_def_entry", "$@69", "sub_option_def", "$@70", + "option_def_entry", "$@70", "sub_option_def", "$@71", "option_def_params", "not_empty_option_def_params", "option_def_param", - "option_def_name", "code", "option_def_code", "option_def_type", "$@71", - "option_def_record_types", "$@72", "space", "$@73", "option_def_space", - "option_def_encapsulate", "$@74", "option_def_array", "option_data_list", - "$@75", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@76", "sub_option_data", "$@77", + "option_def_name", "code", "option_def_code", "option_def_type", "$@72", + "option_def_record_types", "$@73", "space", "$@74", "option_def_space", + "option_def_encapsulate", "$@75", "option_def_array", "option_data_list", + "$@76", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@77", "sub_option_data", "$@78", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@78", + "option_data_param", "option_data_name", "option_data_data", "$@79", "option_data_code", "option_data_space", "option_data_csv_format", - "option_data_always_send", "pools_list", "$@79", "pools_list_content", - "not_empty_pools_list", "pool_list_entry", "$@80", "sub_pool6", "$@81", - "pool_params", "pool_param", "pool_entry", "$@82", "user_context", - "$@83", "comment", "$@84", "pd_pools_list", "$@85", + "option_data_always_send", "pools_list", "$@80", "pools_list_content", + "not_empty_pools_list", "pool_list_entry", "$@81", "sub_pool6", "$@82", + "pool_params", "pool_param", "pool_entry", "$@83", "user_context", + "$@84", "comment", "$@85", "pd_pools_list", "$@86", "pd_pools_list_content", "not_empty_pd_pools_list", "pd_pool_entry", - "$@86", "sub_pd_pool", "$@87", "pd_pool_params", "pd_pool_param", - "pd_prefix", "$@88", "pd_prefix_len", "excluded_prefix", "$@89", - "excluded_prefix_len", "pd_delegated_len", "reservations", "$@90", + "$@87", "sub_pd_pool", "$@88", "pd_pool_params", "pd_pool_param", + "pd_prefix", "$@89", "pd_prefix_len", "excluded_prefix", "$@90", + "excluded_prefix_len", "pd_delegated_len", "reservations", "$@91", "reservations_list", "not_empty_reservations_list", "reservation", - "$@91", "sub_reservation", "$@92", "reservation_params", + "$@92", "sub_reservation", "$@93", "reservation_params", "not_empty_reservation_params", "reservation_param", "ip_addresses", - "$@93", "prefixes", "$@94", "duid", "$@95", "hw_address", "$@96", - "hostname", "$@97", "flex_id_value", "$@98", - "reservation_client_classes", "$@99", "relay", "$@100", "relay_map", - "ip_address", "$@101", "client_classes", "$@102", "client_classes_list", - "client_class_entry", "$@103", "client_class_params", + "$@94", "prefixes", "$@95", "duid", "$@96", "hw_address", "$@97", + "hostname", "$@98", "flex_id_value", "$@99", + "reservation_client_classes", "$@100", "relay", "$@101", "relay_map", + "ip_address", "$@102", "client_classes", "$@103", "client_classes_list", + "client_class_entry", "$@104", "client_class_params", "not_empty_client_class_params", "client_class_param", - "client_class_name", "client_class_test", "$@104", "only_if_required", - "server_id", "$@105", "server_id_params", "server_id_param", - "server_id_type", "$@106", "duid_type", "htype", "identifier", "$@107", - "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@108", - "control_socket_params", "control_socket_param", "socket_type", "$@109", - "socket_name", "$@110", "dhcp_queue_control", "$@111", + "client_class_name", "client_class_test", "$@105", "only_if_required", + "server_id", "$@106", "server_id_params", "server_id_param", + "server_id_type", "$@107", "duid_type", "htype", "identifier", "$@108", + "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@109", + "control_socket_params", "control_socket_param", "socket_type", "$@110", + "socket_name", "$@111", "dhcp_queue_control", "$@112", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@112", "capacity", "arbitrary_map_entry", "$@113", - "dhcp_ddns", "$@114", "sub_dhcp_ddns", "$@115", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@116", - "server_ip", "$@117", "server_port", "sender_ip", "$@118", "sender_port", - "max_queue_size", "ncr_protocol", "$@119", "ncr_protocol_value", - "ncr_format", "$@120", "dep_override_no_update", - "dep_override_client_update", "dep_replace_client_name", "$@121", - "dep_generated_prefix", "$@122", "dep_hostname_char_set", "$@123", - "dep_hostname_char_replacement", "$@124", "dhcp4_json_object", "$@125", - "dhcpddns_json_object", "$@126", "control_agent_json_object", "$@127", - "config_control", "$@128", "sub_config_control", "$@129", + "queue_type", "$@113", "capacity", "arbitrary_map_entry", "$@114", + "dhcp_ddns", "$@115", "sub_dhcp_ddns", "$@116", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@117", + "server_ip", "$@118", "server_port", "sender_ip", "$@119", "sender_port", + "max_queue_size", "ncr_protocol", "$@120", "ncr_protocol_value", + "ncr_format", "$@121", "dep_override_no_update", + "dep_override_client_update", "dep_replace_client_name", "$@122", + "dep_generated_prefix", "$@123", "dep_hostname_char_set", "$@124", + "dep_hostname_char_replacement", "$@125", "dhcp4_json_object", "$@126", + "dhcpddns_json_object", "$@127", "control_agent_json_object", "$@128", + "config_control", "$@129", "sub_config_control", "$@130", "config_control_params", "config_control_param", "config_databases", - "$@130", "config_fetch_wait_time", "logging_object", "$@131", - "sub_logging", "$@132", "logging_params", "logging_param", "loggers", - "$@133", "loggers_entries", "logger_entry", "$@134", "logger_params", - "logger_param", "debuglevel", "severity", "$@135", "output_options_list", - "$@136", "output_options_list_content", "output_entry", "$@137", - "output_params_list", "output_params", "output", "$@138", "flush", - "maxsize", "maxver", "pattern", "$@139", YY_NULLPTR + "$@131", "config_fetch_wait_time", "logging_object", "$@132", + "sub_logging", "$@133", "logging_params", "logging_param", "loggers", + "$@134", "loggers_entries", "logger_entry", "$@135", "logger_params", + "logger_param", "debuglevel", "severity", "$@136", "output_options_list", + "$@137", "output_options_list_content", "output_entry", "$@138", + "output_params_list", "output_params", "output", "$@139", "flush", + "maxsize", "maxver", "pattern", "$@140", YY_NULLPTR }; #if PARSER6_DEBUG - const short + const unsigned short int Dhcp6Parser::yyrline_[] = { - 0, 283, 283, 283, 284, 284, 285, 285, 286, 286, - 287, 287, 288, 288, 289, 289, 290, 290, 291, 291, - 292, 292, 293, 293, 294, 294, 295, 295, 296, 296, - 297, 297, 305, 306, 307, 308, 309, 310, 311, 314, - 319, 319, 330, 333, 334, 337, 341, 348, 348, 355, - 356, 359, 363, 370, 370, 377, 378, 381, 385, 396, - 406, 406, 421, 422, 426, 427, 428, 429, 430, 431, - 434, 434, 449, 449, 458, 459, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 518, 518, - 526, 531, 536, 541, 546, 551, 556, 561, 566, 571, - 576, 581, 586, 591, 596, 601, 601, 609, 612, 615, - 618, 621, 627, 627, 635, 635, 643, 643, 651, 651, - 659, 664, 669, 674, 674, 682, 682, 693, 693, 702, - 703, 706, 707, 708, 709, 710, 713, 713, 723, 729, - 729, 741, 741, 753, 753, 763, 764, 767, 768, 771, - 771, 781, 782, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, - 802, 803, 804, 805, 808, 808, 815, 816, 817, 818, - 821, 821, 829, 829, 837, 837, 845, 850, 850, 858, - 863, 868, 873, 878, 883, 888, 893, 898, 903, 903, - 911, 916, 916, 924, 924, 932, 932, 940, 940, 950, - 951, 953, 955, 955, 973, 973, 983, 984, 987, 988, - 991, 996, 1001, 1001, 1011, 1012, 1015, 1016, 1017, 1020, - 1025, 1032, 1032, 1042, 1042, 1052, 1053, 1056, 1057, 1060, - 1060, 1070, 1070, 1080, 1081, 1082, 1085, 1086, 1089, 1089, - 1097, 1097, 1105, 1105, 1116, 1117, 1120, 1121, 1122, 1123, - 1124, 1125, 1128, 1133, 1138, 1143, 1148, 1153, 1161, 1161, - 1174, 1175, 1178, 1179, 1186, 1186, 1212, 1212, 1223, 1224, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, - 1258, 1259, 1260, 1261, 1262, 1263, 1266, 1266, 1274, 1274, - 1282, 1282, 1290, 1290, 1298, 1298, 1308, 1308, 1315, 1316, - 1317, 1318, 1321, 1326, 1334, 1334, 1345, 1346, 1350, 1351, - 1354, 1354, 1362, 1363, 1366, 1367, 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, 1405, 1405, 1418, - 1418, 1427, 1428, 1431, 1432, 1437, 1437, 1452, 1452, 1466, - 1467, 1470, 1471, 1474, 1475, 1476, 1477, 1478, 1479, 1480, - 1481, 1482, 1483, 1486, 1488, 1493, 1495, 1495, 1503, 1503, - 1511, 1511, 1519, 1521, 1521, 1529, 1538, 1538, 1550, 1551, - 1556, 1557, 1562, 1562, 1574, 1574, 1586, 1587, 1592, 1593, - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1609, - 1611, 1611, 1619, 1621, 1623, 1628, 1636, 1636, 1648, 1649, - 1652, 1653, 1656, 1656, 1666, 1666, 1675, 1676, 1679, 1680, - 1681, 1682, 1683, 1684, 1685, 1688, 1688, 1696, 1696, 1721, - 1721, 1751, 1751, 1763, 1764, 1767, 1768, 1771, 1771, 1783, - 1783, 1795, 1796, 1799, 1800, 1801, 1802, 1803, 1804, 1805, - 1806, 1807, 1808, 1809, 1812, 1812, 1820, 1825, 1825, 1833, - 1838, 1846, 1846, 1856, 1857, 1860, 1861, 1864, 1864, 1873, - 1873, 1882, 1883, 1886, 1887, 1891, 1892, 1893, 1894, 1895, - 1896, 1897, 1898, 1899, 1900, 1901, 1904, 1904, 1914, 1914, - 1924, 1924, 1932, 1932, 1940, 1940, 1948, 1948, 1956, 1956, - 1969, 1969, 1979, 1980, 1983, 1983, 1994, 1994, 2004, 2005, - 2008, 2008, 2018, 2019, 2022, 2023, 2026, 2027, 2028, 2029, - 2030, 2031, 2032, 2035, 2037, 2037, 2045, 2053, 2053, 2065, - 2066, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, - 2080, 2080, 2087, 2088, 2089, 2092, 2097, 2097, 2105, 2110, - 2117, 2124, 2124, 2134, 2135, 2138, 2139, 2140, 2141, 2142, - 2145, 2145, 2153, 2153, 2163, 2163, 2175, 2176, 2179, 2180, - 2181, 2182, 2183, 2184, 2187, 2192, 2192, 2200, 2205, 2205, - 2214, 2214, 2226, 2226, 2236, 2237, 2240, 2241, 2242, 2243, - 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, - 2254, 2255, 2256, 2257, 2260, 2265, 2265, 2273, 2273, 2281, - 2286, 2286, 2294, 2299, 2304, 2304, 2312, 2313, 2316, 2316, - 2325, 2331, 2337, 2337, 2345, 2345, 2354, 2354, 2363, 2363, - 2373, 2373, 2380, 2380, 2387, 2387, 2396, 2396, 2407, 2407, - 2417, 2418, 2422, 2423, 2426, 2426, 2436, 2446, 2446, 2456, - 2456, 2467, 2468, 2472, 2476, 2476, 2488, 2489, 2493, 2493, - 2501, 2502, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2514, - 2519, 2519, 2527, 2527, 2537, 2538, 2541, 2541, 2549, 2550, - 2553, 2554, 2555, 2556, 2557, 2560, 2560, 2568, 2573, 2578, - 2583, 2583 + 0, 289, 289, 289, 290, 290, 291, 291, 292, 292, + 293, 293, 294, 294, 295, 295, 296, 296, 297, 297, + 298, 298, 299, 299, 300, 300, 301, 301, 302, 302, + 303, 303, 311, 312, 313, 314, 315, 316, 317, 320, + 325, 325, 336, 339, 340, 343, 347, 354, 354, 361, + 362, 365, 369, 376, 376, 383, 384, 387, 391, 402, + 412, 412, 428, 429, 433, 434, 435, 436, 437, 438, + 441, 441, 456, 456, 465, 466, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 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, 526, + 526, 534, 539, 544, 549, 554, 559, 564, 569, 574, + 579, 584, 589, 594, 599, 604, 609, 609, 617, 620, + 623, 626, 629, 635, 635, 643, 643, 651, 651, 659, + 659, 667, 672, 677, 682, 682, 690, 690, 701, 701, + 710, 711, 714, 715, 716, 717, 718, 721, 721, 731, + 736, 736, 748, 748, 760, 760, 770, 771, 774, 775, + 778, 778, 788, 789, 792, 793, 794, 795, 796, 797, + 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, + 808, 809, 810, 811, 812, 815, 815, 822, 823, 824, + 825, 828, 828, 836, 836, 844, 844, 852, 857, 857, + 865, 870, 875, 880, 885, 890, 895, 900, 905, 910, + 910, 918, 923, 923, 931, 931, 939, 939, 947, 947, + 957, 958, 960, 962, 962, 980, 980, 990, 991, 994, + 995, 998, 1003, 1008, 1008, 1018, 1019, 1022, 1023, 1024, + 1027, 1032, 1039, 1039, 1051, 1051, 1063, 1064, 1067, 1068, + 1069, 1070, 1071, 1072, 1075, 1080, 1085, 1090, 1090, 1100, + 1101, 1104, 1105, 1108, 1108, 1118, 1118, 1128, 1129, 1130, + 1133, 1134, 1137, 1137, 1145, 1145, 1153, 1153, 1164, 1165, + 1168, 1169, 1170, 1171, 1172, 1173, 1176, 1181, 1186, 1191, + 1196, 1201, 1209, 1209, 1222, 1223, 1226, 1227, 1234, 1234, + 1260, 1260, 1271, 1272, 1276, 1277, 1278, 1279, 1280, 1281, + 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, + 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, + 1314, 1314, 1322, 1322, 1330, 1330, 1338, 1338, 1346, 1346, + 1356, 1356, 1363, 1364, 1365, 1366, 1369, 1374, 1381, 1381, + 1392, 1393, 1397, 1398, 1401, 1401, 1409, 1410, 1413, 1414, + 1415, 1416, 1417, 1418, 1419, 1420, 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, 1452, 1452, 1465, 1465, 1474, 1475, 1478, 1479, 1484, + 1484, 1499, 1499, 1513, 1514, 1517, 1518, 1521, 1522, 1523, + 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1533, 1535, 1540, + 1542, 1542, 1550, 1550, 1558, 1558, 1566, 1568, 1568, 1576, + 1585, 1585, 1597, 1598, 1603, 1604, 1609, 1609, 1621, 1621, + 1633, 1634, 1639, 1640, 1645, 1646, 1647, 1648, 1649, 1650, + 1651, 1652, 1653, 1656, 1658, 1658, 1666, 1668, 1670, 1675, + 1683, 1683, 1695, 1696, 1699, 1700, 1703, 1703, 1713, 1713, + 1723, 1724, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1736, + 1736, 1744, 1744, 1769, 1769, 1799, 1799, 1811, 1812, 1815, + 1816, 1819, 1819, 1831, 1831, 1843, 1844, 1847, 1848, 1849, + 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1860, 1860, + 1868, 1873, 1873, 1881, 1886, 1894, 1894, 1904, 1905, 1908, + 1909, 1912, 1912, 1921, 1921, 1930, 1931, 1934, 1935, 1939, + 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, + 1952, 1952, 1962, 1962, 1972, 1972, 1980, 1980, 1988, 1988, + 1996, 1996, 2004, 2004, 2017, 2017, 2027, 2028, 2031, 2031, + 2042, 2042, 2052, 2053, 2056, 2056, 2066, 2067, 2070, 2071, + 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2083, 2085, 2085, + 2093, 2101, 2101, 2113, 2114, 2117, 2118, 2119, 2120, 2121, + 2122, 2123, 2124, 2125, 2128, 2128, 2135, 2136, 2137, 2140, + 2145, 2145, 2153, 2158, 2165, 2172, 2172, 2182, 2183, 2186, + 2187, 2188, 2189, 2190, 2193, 2193, 2201, 2201, 2212, 2212, + 2224, 2225, 2228, 2229, 2230, 2231, 2232, 2233, 2236, 2241, + 2241, 2249, 2254, 2254, 2263, 2263, 2275, 2275, 2285, 2286, + 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2309, 2314, + 2314, 2322, 2322, 2330, 2335, 2335, 2343, 2348, 2353, 2353, + 2361, 2362, 2365, 2365, 2374, 2380, 2386, 2386, 2394, 2394, + 2403, 2403, 2412, 2412, 2423, 2423, 2430, 2430, 2437, 2437, + 2446, 2446, 2457, 2457, 2467, 2468, 2472, 2473, 2476, 2476, + 2486, 2496, 2496, 2506, 2506, 2517, 2518, 2522, 2526, 2526, + 2538, 2539, 2543, 2543, 2551, 2552, 2555, 2556, 2557, 2558, + 2559, 2560, 2561, 2564, 2569, 2569, 2577, 2577, 2587, 2588, + 2591, 2591, 2599, 2600, 2603, 2604, 2605, 2606, 2607, 2610, + 2610, 2618, 2623, 2628, 2633, 2633 }; // Print the state stack on the debug stream. @@ -5558,19 +5527,19 @@ namespace isc { namespace dhcp { i = yystack_.begin (), i_end = yystack_.end (); i != i_end; ++i) - *yycdebug_ << ' ' << int (i->state); - *yycdebug_ << '\n'; + *yycdebug_ << ' ' << i->state; + *yycdebug_ << std::endl; } // Report on the debug stream that the rule \a yyrule is going to be reduced. void Dhcp6Parser::yy_reduce_print_ (int yyrule) { - int yylno = yyrline_[yyrule]; + unsigned int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):\n"; + << " (line " << yylno << "):" << std::endl; // The symbols being reduced. for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", @@ -5579,11 +5548,10 @@ namespace isc { namespace dhcp { #endif // PARSER6_DEBUG -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 5585 "dhcp6_parser.cc" - -#line 2591 "dhcp6_parser.yy" +#line 5554 "dhcp6_parser.cc" // lalr1.cc:1167 +#line 2641 "dhcp6_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index c5b35bda6c..2948e553e2 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -30,7 +30,6 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. - /** ** \file dhcp6_parser.h ** Define the isc::dhcp::parser class. @@ -38,13 +37,10 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED -// "%code requires" blocks. -#line 17 "dhcp6_parser.yy" +// // "%code requires" blocks. +#line 17 "dhcp6_parser.yy" // lalr1.cc:377 #include #include @@ -56,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 60 "dhcp6_parser.h" +#line 56 "dhcp6_parser.h" // lalr1.cc:377 # include # include // std::abort @@ -64,64 +60,39 @@ using namespace std; # include # include # include - -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - -// Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_MOVE std::move -# define YY_MOVE_OR_COPY move -# define YY_MOVE_REF(Type) Type&& -# define YY_RVREF(Type) Type&& -# define YY_COPY(Type) Type -#else -# define YY_MOVE -# define YY_MOVE_OR_COPY copy -# define YY_MOVE_REF(Type) Type& -# define YY_RVREF(Type) const Type& -# define YY_COPY(Type) const Type& -#endif - -// Support noexcept when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_NOEXCEPT noexcept -# define YY_NOTHROW -#else -# define YY_NOEXCEPT -# define YY_NOTHROW throw () -#endif - -// Support constexpr when possible. -#if 201703 <= YY_CPLUSPLUS -# define YY_CONSTEXPR constexpr -#else -# define YY_CONSTEXPR -#endif +# include "stack.hh" # include "location.hh" #include -#ifndef YY_ASSERT +#ifndef YYASSERT # include -# define YY_ASSERT assert +# define YYASSERT assert #endif -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else -# define YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + #ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) # else -# define YY_ATTRIBUTE_UNUSED +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif @@ -132,13 +103,13 @@ using namespace std; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -151,39 +122,6 @@ using namespace std; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - /* Debug traces. */ #ifndef PARSER6_DEBUG # if defined YYDEBUG @@ -197,175 +135,120 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:377 namespace isc { namespace dhcp { -#line 203 "dhcp6_parser.h" +#line 141 "dhcp6_parser.h" // lalr1.cc:377 - - /// A Bison parser. - class Dhcp6Parser - { - public: -#ifndef PARSER6_STYPE - /// A buffer to store and retrieve objects. + /// A char[S] 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 + /// via the current state. + template + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) + variant () + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template - semantic_type (YY_RVREF (T) t) + variant (const T& t) : yytypeid_ (&typeid (T)) { - YY_ASSERT (sizeof (T) <= size); - new (yyas_ ()) T (YY_MOVE (t)); + YYASSERT (sizeof (T) <= S); + new (yyas_ ()) T (t); } /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~variant () { - YY_ASSERT (!yytypeid_); + YYASSERT (!yytypeid_); } -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template - T& - emplace (U&&... u) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (std::forward (u)...); - } -# else - /// Instantiate an empty \a T in here. - template - T& - emplace () - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (); - } - - /// Instantiate a \a T in here from \a t. - template - T& - emplace (const T& t) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (t); - } -# endif - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. template T& build () { - return emplace (); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); + yytypeid_ = & typeid (T); + return *new (yyas_ ()) T; } /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. template T& build (const T& t) { - return emplace (t); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); + yytypeid_ = & typeid (T); + return *new (yyas_ ()) T (t); } /// Accessor to a built \a T. template T& - as () YY_NOEXCEPT + as () { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } /// Const accessor to a built \a T (for %printer). template const T& - as () const YY_NOEXCEPT + as () const { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } - /// Swap the content with \a that, of same type. + /// Swap the content with \a other, of same type. /// /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsibility. + /// should not be the variant's responsability. /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). + /// variant::move (). template void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as (), that.as ()); + YYASSERT (yytypeid_); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as (), other.as ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. + /// Destroys \a other. template void - move (self_type& that) + move (self_type& other) { -# if 201103L <= YY_CPLUSPLUS - emplace (std::move (that.as ())); -# else - emplace (); - swap (that); -# endif - that.destroy (); + build (); + swap (other); + other.destroy (); } -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. + /// Copy the content of \a other to this. template void - move (self_type&& that) + copy (const self_type& other) { - emplace (std::move (that.as ())); - that.destroy (); - } -#endif - - /// Copy the content of \a that to this. - template - void - copy (const self_type& that) - { - emplace (that.as ()); + build (other.as ()); } /// Destroy the stored \a T. @@ -379,13 +262,13 @@ namespace isc { namespace dhcp { private: /// Prohibit blind copies. - self_type& operator= (const self_type&); - semantic_type (const self_type&); + self_type& operator=(const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast (yyp); @@ -394,12 +277,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast (yyp); } + union + { + /// Strongest alignment constraints. + long double yyalign_me; + /// A buffer large enough to store any of the semantic values. + char yyraw[S]; + } yybuffer_; + + /// Whether the content is built: if defined, the name of the stored type. + const std::type_info *yytypeid_; + }; + + + /// A Bison parser. + class Dhcp6Parser + { + public: +#ifndef PARSER6_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -410,37 +311,23 @@ namespace isc { namespace dhcp { // hr_mode // duid_type // ncr_protocol_value - char dummy1[sizeof (ElementPtr)]; + char dummy1[sizeof(ElementPtr)]; // "boolean" - char dummy2[sizeof (bool)]; + char dummy2[sizeof(bool)]; // "floating point" - char dummy3[sizeof (double)]; + char dummy3[sizeof(double)]; // "integer" - char dummy4[sizeof (int64_t)]; + char dummy4[sizeof(int64_t)]; // "constant string" - char dummy5[sizeof (std::string)]; - }; - - /// The size of the largest semantic type. - enum { size = sizeof (union_type) }; - - /// A buffer to store semantic values. - union - { - /// Strongest alignment constraints. - long double yyalign_me; - /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; - - /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; - }; + char dummy5[sizeof(std::string)]; +}; + /// Symbol semantic values. + typedef variant semantic_type; #else typedef PARSER6_STYPE semantic_type; #endif @@ -450,18 +337,7 @@ namespace isc { namespace dhcp { /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - + syntax_error (const location_type& l, const std::string& m); location_type location; }; @@ -605,68 +481,72 @@ namespace isc { namespace dhcp { TOKEN_TIME = 389, TOKEN_ENTERPRISE_ID = 390, TOKEN_DHCP4O6_PORT = 391, - TOKEN_CONTROL_SOCKET = 392, - TOKEN_SOCKET_TYPE = 393, - TOKEN_SOCKET_NAME = 394, - TOKEN_DHCP_QUEUE_CONTROL = 395, - TOKEN_ENABLE_QUEUE = 396, - TOKEN_QUEUE_TYPE = 397, - TOKEN_CAPACITY = 398, - TOKEN_DHCP_DDNS = 399, - TOKEN_ENABLE_UPDATES = 400, - TOKEN_QUALIFYING_SUFFIX = 401, - TOKEN_SERVER_IP = 402, - TOKEN_SERVER_PORT = 403, - TOKEN_SENDER_IP = 404, - TOKEN_SENDER_PORT = 405, - TOKEN_MAX_QUEUE_SIZE = 406, - TOKEN_NCR_PROTOCOL = 407, - TOKEN_NCR_FORMAT = 408, - TOKEN_OVERRIDE_NO_UPDATE = 409, - TOKEN_OVERRIDE_CLIENT_UPDATE = 410, - TOKEN_REPLACE_CLIENT_NAME = 411, - TOKEN_GENERATED_PREFIX = 412, - TOKEN_UDP = 413, - TOKEN_TCP = 414, - TOKEN_JSON = 415, - TOKEN_WHEN_PRESENT = 416, - TOKEN_NEVER = 417, - TOKEN_ALWAYS = 418, - TOKEN_WHEN_NOT_PRESENT = 419, - TOKEN_HOSTNAME_CHAR_SET = 420, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 421, - TOKEN_LOGGING = 422, - TOKEN_LOGGERS = 423, - TOKEN_OUTPUT_OPTIONS = 424, - TOKEN_OUTPUT = 425, - TOKEN_DEBUGLEVEL = 426, - TOKEN_SEVERITY = 427, - TOKEN_FLUSH = 428, - TOKEN_MAXSIZE = 429, - TOKEN_MAXVER = 430, - TOKEN_PATTERN = 431, - TOKEN_DHCP4 = 432, - TOKEN_DHCPDDNS = 433, - TOKEN_CONTROL_AGENT = 434, - TOKEN_TOPLEVEL_JSON = 435, - TOKEN_TOPLEVEL_DHCP6 = 436, - TOKEN_SUB_DHCP6 = 437, - TOKEN_SUB_INTERFACES6 = 438, - TOKEN_SUB_SUBNET6 = 439, - TOKEN_SUB_POOL6 = 440, - TOKEN_SUB_PD_POOL = 441, - TOKEN_SUB_RESERVATION = 442, - TOKEN_SUB_OPTION_DEFS = 443, - TOKEN_SUB_OPTION_DEF = 444, - TOKEN_SUB_OPTION_DATA = 445, - TOKEN_SUB_HOOKS_LIBRARY = 446, - TOKEN_SUB_DHCP_DDNS = 447, - TOKEN_SUB_LOGGING = 448, - TOKEN_SUB_CONFIG_CONTROL = 449, - TOKEN_STRING = 450, - TOKEN_INTEGER = 451, - TOKEN_FLOAT = 452, - TOKEN_BOOLEAN = 453 + TOKEN_DHCP_MULTI_THREADING = 392, + TOKEN_ENABLE_MULTI_THREADING = 393, + TOKEN_THREAD_POOL_SIZE = 394, + TOKEN_PACKET_QUEUE_SIZE = 395, + TOKEN_CONTROL_SOCKET = 396, + TOKEN_SOCKET_TYPE = 397, + TOKEN_SOCKET_NAME = 398, + TOKEN_DHCP_QUEUE_CONTROL = 399, + TOKEN_ENABLE_QUEUE = 400, + TOKEN_QUEUE_TYPE = 401, + TOKEN_CAPACITY = 402, + TOKEN_DHCP_DDNS = 403, + TOKEN_ENABLE_UPDATES = 404, + TOKEN_QUALIFYING_SUFFIX = 405, + TOKEN_SERVER_IP = 406, + TOKEN_SERVER_PORT = 407, + TOKEN_SENDER_IP = 408, + TOKEN_SENDER_PORT = 409, + TOKEN_MAX_QUEUE_SIZE = 410, + TOKEN_NCR_PROTOCOL = 411, + TOKEN_NCR_FORMAT = 412, + TOKEN_OVERRIDE_NO_UPDATE = 413, + TOKEN_OVERRIDE_CLIENT_UPDATE = 414, + TOKEN_REPLACE_CLIENT_NAME = 415, + TOKEN_GENERATED_PREFIX = 416, + TOKEN_UDP = 417, + TOKEN_TCP = 418, + TOKEN_JSON = 419, + TOKEN_WHEN_PRESENT = 420, + TOKEN_NEVER = 421, + TOKEN_ALWAYS = 422, + TOKEN_WHEN_NOT_PRESENT = 423, + TOKEN_HOSTNAME_CHAR_SET = 424, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 425, + TOKEN_LOGGING = 426, + TOKEN_LOGGERS = 427, + TOKEN_OUTPUT_OPTIONS = 428, + TOKEN_OUTPUT = 429, + TOKEN_DEBUGLEVEL = 430, + TOKEN_SEVERITY = 431, + TOKEN_FLUSH = 432, + TOKEN_MAXSIZE = 433, + TOKEN_MAXVER = 434, + TOKEN_PATTERN = 435, + TOKEN_DHCP4 = 436, + TOKEN_DHCPDDNS = 437, + TOKEN_CONTROL_AGENT = 438, + TOKEN_TOPLEVEL_JSON = 439, + TOKEN_TOPLEVEL_DHCP6 = 440, + TOKEN_SUB_DHCP6 = 441, + TOKEN_SUB_INTERFACES6 = 442, + TOKEN_SUB_SUBNET6 = 443, + TOKEN_SUB_POOL6 = 444, + TOKEN_SUB_PD_POOL = 445, + TOKEN_SUB_RESERVATION = 446, + TOKEN_SUB_OPTION_DEFS = 447, + TOKEN_SUB_OPTION_DEF = 448, + TOKEN_SUB_OPTION_DATA = 449, + TOKEN_SUB_HOOKS_LIBRARY = 450, + TOKEN_SUB_DHCP_DDNS = 451, + TOKEN_SUB_LOGGING = 452, + TOKEN_SUB_CONFIG_CONTROL = 453, + TOKEN_STRING = 454, + TOKEN_INTEGER = 455, + TOKEN_FLOAT = 456, + TOKEN_BOOLEAN = 457 }; }; @@ -685,7 +565,7 @@ namespace isc { namespace dhcp { /// A complete symbol. /// /// Expects its Base type to provide access to the symbol type - /// via type_get (). + /// via type_get(). /// /// Provide access to semantic value and location. template @@ -695,154 +575,39 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that); -#endif + basic_symbol (); /// Copy constructor. - basic_symbol (const basic_symbol& that); + basic_symbol (const basic_symbol& other); /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif + + basic_symbol (typename Base::kind_type t, const location_type& l); + + basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const double v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); + + basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); + + + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + const semantic_type& v, + const location_type& l); /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + ~basic_symbol (); /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. -switch (yytype) - { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; - - case 198: // "boolean" - value.template destroy< bool > (); - break; - - case 197: // "floating point" - value.template destroy< double > (); - break; - - case 196: // "integer" - value.template destroy< int64_t > (); - break; - - case 195: // "constant string" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); - } + void clear (); /// Whether empty. - bool empty () const YY_NOEXCEPT; + bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -854,10 +619,8 @@ switch (yytype) location_type location; private: -#if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); -#endif + basic_symbol& operator= (const basic_symbol& other); }; /// Type access provider for token (enum) based symbols. @@ -866,13 +629,8 @@ switch (yytype) /// Default constructor. by_type (); -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_type (by_type&& that); -#endif - /// Copy constructor. - by_type (const by_type& that); + by_type (const by_type& other); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -888,7 +646,10 @@ switch (yytype) /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const; + + /// The token. + token_type token () const; /// The symbol type. /// \a empty_symbol when empty. @@ -897,90 +658,818 @@ switch (yytype) }; /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol - { - /// Superclass. - typedef basic_symbol super_type; + typedef basic_symbol symbol_type; - /// Empty symbol. - symbol_type () {} + // Symbol constructors declarations. + static inline + symbol_type + make_END (const location_type& l); + + static inline + symbol_type + make_COMMA (const location_type& l); + + static inline + symbol_type + make_COLON (const location_type& l); + + static inline + symbol_type + make_LSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_RSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_LCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_RCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_NULL_TYPE (const location_type& l); + + static inline + symbol_type + make_DHCP6 (const location_type& l); + + static inline + symbol_type + make_DATA_DIRECTORY (const location_type& l); + + static inline + symbol_type + make_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_CONFIG_DATABASES (const location_type& l); + + static inline + symbol_type + make_CONFIG_FETCH_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_INTERFACES_CONFIG (const location_type& l); + + static inline + symbol_type + make_INTERFACES (const location_type& l); + + static inline + symbol_type + make_RE_DETECT (const location_type& l); + + static inline + symbol_type + make_LEASE_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASES (const location_type& l); + + static inline + symbol_type + make_TYPE (const location_type& l); + + static inline + symbol_type + make_MEMFILE (const location_type& l); + + static inline + symbol_type + make_MYSQL (const location_type& l); + + static inline + symbol_type + make_POSTGRESQL (const location_type& l); + + static inline + symbol_type + make_CQL (const location_type& l); + + static inline + symbol_type + make_USER (const location_type& l); + + static inline + symbol_type + make_PASSWORD (const location_type& l); + + static inline + symbol_type + make_HOST (const location_type& l); + + static inline + symbol_type + make_PORT (const location_type& l); + + static inline + symbol_type + make_PERSIST (const location_type& l); + + static inline + symbol_type + make_LFC_INTERVAL (const location_type& l); + + static inline + symbol_type + make_READONLY (const location_type& l); + + static inline + symbol_type + make_CONNECT_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_MAX_RECONNECT_TRIES (const location_type& l); + + static inline + symbol_type + make_RECONNECT_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + + static inline + symbol_type + make_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_SERIAL_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_REQUEST_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_TCP_KEEPALIVE (const location_type& l); + + static inline + symbol_type + make_TCP_NODELAY (const location_type& l); + + static inline + symbol_type + make_MAX_ROW_ERRORS (const location_type& l); + + static inline + symbol_type + make_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MIN_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MAX_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_RENEW_TIMER (const location_type& l); + + static inline + symbol_type + make_REBIND_TIMER (const location_type& l); + + static inline + symbol_type + make_CALCULATE_TEE_TIMES (const location_type& l); + + static inline + symbol_type + make_T1_PERCENT (const location_type& l); + + static inline + symbol_type + make_T2_PERCENT (const location_type& l); + + static inline + symbol_type + make_DECLINE_PROBATION_PERIOD (const location_type& l); + + static inline + symbol_type + make_SERVER_TAG (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l); + + static inline + symbol_type + make_DDNS_SEND_UPDATES (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_DDNS_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_DDNS_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_STORE_EXTENDED_INFO (const location_type& l); + + static inline + symbol_type + make_SUBNET6 (const location_type& l); + + static inline + symbol_type + make_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_NAME (const location_type& l); + + static inline + symbol_type + make_DATA (const location_type& l); + + static inline + symbol_type + make_CODE (const location_type& l); + + static inline + symbol_type + make_SPACE (const location_type& l); + + static inline + symbol_type + make_CSV_FORMAT (const location_type& l); + + static inline + symbol_type + make_ALWAYS_SEND (const location_type& l); + + static inline + symbol_type + make_RECORD_TYPES (const location_type& l); + + static inline + symbol_type + make_ENCAPSULATE (const location_type& l); + + static inline + symbol_type + make_ARRAY (const location_type& l); + + static inline + symbol_type + make_POOLS (const location_type& l); + + static inline + symbol_type + make_POOL (const location_type& l); + + static inline + symbol_type + make_PD_POOLS (const location_type& l); + + static inline + symbol_type + make_PREFIX (const location_type& l); + + static inline + symbol_type + make_PREFIX_LEN (const location_type& l); + + static inline + symbol_type + make_EXCLUDED_PREFIX (const location_type& l); + + static inline + symbol_type + make_EXCLUDED_PREFIX_LEN (const location_type& l); + + static inline + symbol_type + make_DELEGATED_LEN (const location_type& l); + + static inline + symbol_type + make_USER_CONTEXT (const location_type& l); + + static inline + symbol_type + make_COMMENT (const location_type& l); + + static inline + symbol_type + make_SUBNET (const location_type& l); + + static inline + symbol_type + make_INTERFACE (const location_type& l); + + static inline + symbol_type + make_INTERFACE_ID (const location_type& l); + + static inline + symbol_type + make_ID (const location_type& l); + + static inline + symbol_type + make_RAPID_COMMIT (const location_type& l); + + static inline + symbol_type + make_RESERVATION_MODE (const location_type& l); + + static inline + symbol_type + make_DISABLED (const location_type& l); + + static inline + symbol_type + make_OUT_OF_POOL (const location_type& l); + + static inline + symbol_type + make_GLOBAL (const location_type& l); + + static inline + symbol_type + make_ALL (const location_type& l); + + static inline + symbol_type + make_SHARED_NETWORKS (const location_type& l); + + static inline + symbol_type + make_MAC_SOURCES (const location_type& l); + + static inline + symbol_type + make_RELAY_SUPPLIED_OPTIONS (const location_type& l); + + static inline + symbol_type + make_HOST_RESERVATION_IDENTIFIERS (const location_type& l); + + static inline + symbol_type + make_SANITY_CHECKS (const location_type& l); + + static inline + symbol_type + make_LEASE_CHECKS (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_REQUIRE_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_TEST (const location_type& l); + + static inline + symbol_type + make_ONLY_IF_REQUIRED (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASS (const location_type& l); + + static inline + symbol_type + make_RESERVATIONS (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESSES (const location_type& l); + + static inline + symbol_type + make_PREFIXES (const location_type& l); + + static inline + symbol_type + make_DUID (const location_type& l); + + static inline + symbol_type + make_HW_ADDRESS (const location_type& l); + + static inline + symbol_type + make_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_FLEX_ID (const location_type& l); + + static inline + symbol_type + make_RELAY (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESS (const location_type& l); + + static inline + symbol_type + make_HOOKS_LIBRARIES (const location_type& l); + + static inline + symbol_type + make_LIBRARY (const location_type& l); + + static inline + symbol_type + make_PARAMETERS (const location_type& l); + + static inline + symbol_type + make_EXPIRED_LEASES_PROCESSING (const location_type& l); + + static inline + symbol_type + make_RECLAIM_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_HOLD_RECLAIMED_TIME (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_LEASES (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_TIME (const location_type& l); + + static inline + symbol_type + make_UNWARNED_RECLAIM_CYCLES (const location_type& l); + + static inline + symbol_type + make_SERVER_ID (const location_type& l); + + static inline + symbol_type + make_LLT (const location_type& l); + + static inline + symbol_type + make_EN (const location_type& l); + + static inline + symbol_type + make_LL (const location_type& l); + + static inline + symbol_type + make_IDENTIFIER (const location_type& l); + + static inline + symbol_type + make_HTYPE (const location_type& l); + + static inline + symbol_type + make_TIME (const location_type& l); + + static inline + symbol_type + make_ENTERPRISE_ID (const location_type& l); + + static inline + symbol_type + make_DHCP4O6_PORT (const location_type& l); + + static inline + symbol_type + make_DHCP_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_ENABLE_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_THREAD_POOL_SIZE (const location_type& l); + + static inline + symbol_type + make_PACKET_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_CONTROL_SOCKET (const location_type& l); + + static inline + symbol_type + make_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_SOCKET_NAME (const location_type& l); + + static inline + symbol_type + make_DHCP_QUEUE_CONTROL (const location_type& l); + + static inline + symbol_type + make_ENABLE_QUEUE (const location_type& l); + + static inline + symbol_type + make_QUEUE_TYPE (const location_type& l); + + static inline + symbol_type + make_CAPACITY (const location_type& l); + + static inline + symbol_type + make_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_ENABLE_UPDATES (const location_type& l); + + static inline + symbol_type + make_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_SERVER_IP (const location_type& l); + + static inline + symbol_type + make_SERVER_PORT (const location_type& l); + + static inline + symbol_type + make_SENDER_IP (const location_type& l); + + static inline + symbol_type + make_SENDER_PORT (const location_type& l); + + static inline + symbol_type + make_MAX_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_NCR_PROTOCOL (const location_type& l); + + static inline + symbol_type + make_NCR_FORMAT (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_UDP (const location_type& l); + + static inline + symbol_type + make_TCP (const location_type& l); + + static inline + symbol_type + make_JSON (const location_type& l); + + static inline + symbol_type + make_WHEN_PRESENT (const location_type& l); + + static inline + symbol_type + make_NEVER (const location_type& l); + + static inline + symbol_type + make_ALWAYS (const location_type& l); + + static inline + symbol_type + make_WHEN_NOT_PRESENT (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_SET (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l); + + static inline + symbol_type + make_LOGGING (const location_type& l); + + static inline + symbol_type + make_LOGGERS (const location_type& l); + + static inline + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); + + static inline + symbol_type + make_OUTPUT (const location_type& l); + + static inline + symbol_type + make_DEBUGLEVEL (const location_type& l); + + static inline + symbol_type + make_SEVERITY (const location_type& l); + + static inline + symbol_type + make_FLUSH (const location_type& l); + + static inline + symbol_type + make_MAXSIZE (const location_type& l); + + static inline + symbol_type + make_MAXVER (const location_type& l); + + static inline + symbol_type + make_PATTERN (const location_type& l); + + static inline + symbol_type + make_DHCP4 (const location_type& l); + + static inline + symbol_type + make_DHCPDDNS (const location_type& l); + + static inline + symbol_type + make_CONTROL_AGENT (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_JSON (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_DHCP6 (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP6 (const location_type& l); + + static inline + symbol_type + make_SUB_INTERFACES6 (const location_type& l); + + static inline + symbol_type + make_SUB_SUBNET6 (const location_type& l); + + static inline + symbol_type + make_SUB_POOL6 (const location_type& l); + + static inline + symbol_type + make_SUB_PD_POOL (const location_type& l); + + static inline + symbol_type + make_SUB_RESERVATION (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEFS (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_SUB_HOOKS_LIBRARY (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_SUB_LOGGING (const location_type& l); + + static inline + symbol_type + make_SUB_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_STRING (const std::string& v, const location_type& l); + + static inline + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); + + static inline + symbol_type + make_FLOAT (const double& v, const location_type& l); + + static inline + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); - /// 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_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_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || 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_RE_DETECT || 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_CQL || 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_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || 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_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_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || 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_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || 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_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || 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_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || 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_UDP || 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_LOGGING || 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_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || 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_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - YY_ASSERT (tok == token::TOKEN_END || 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_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || 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_RE_DETECT || 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_CQL || 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_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || 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_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_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || 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_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || 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_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || 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_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || 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_UDP || 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_LOGGING || 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_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || 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_LOGGING || 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); - } -#else - symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_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); - } -#else - symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_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); - } -#else - symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_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); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } -#endif - }; /// Build a parser object. Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg); virtual ~Dhcp6Parser (); - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); - /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -1007,2971 +1496,13 @@ switch (yytype) /// Report a syntax error. void error (const syntax_error& err); - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOKEN_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMA (location_type l) - { - return symbol_type (token::TOKEN_COMMA, std::move (l)); - } -#else - static - symbol_type - make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COLON (location_type l) - { - return symbol_type (token::TOKEN_COLON, std::move (l)); - } -#else - static - symbol_type - make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NULL_TYPE (location_type l) - { - return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); - } -#else - static - symbol_type - make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA_DIRECTORY (location_type l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, std::move (l)); - } -#else - static - symbol_type - make_DATA_DIRECTORY (const location_type& l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES_CONFIG (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RE_DETECT (location_type l) - { - return symbol_type (token::TOKEN_RE_DETECT, std::move (l)); - } -#else - static - symbol_type - make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TYPE (location_type l) - { - return symbol_type (token::TOKEN_TYPE, std::move (l)); - } -#else - static - symbol_type - make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MEMFILE (location_type l) - { - return symbol_type (token::TOKEN_MEMFILE, std::move (l)); - } -#else - static - symbol_type - make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MYSQL (location_type l) - { - return symbol_type (token::TOKEN_MYSQL, std::move (l)); - } -#else - static - symbol_type - make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POSTGRESQL (location_type l) - { - return symbol_type (token::TOKEN_POSTGRESQL, std::move (l)); - } -#else - static - symbol_type - make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CQL (location_type l) - { - return symbol_type (token::TOKEN_CQL, std::move (l)); - } -#else - static - symbol_type - make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER (location_type l) - { - return symbol_type (token::TOKEN_USER, std::move (l)); - } -#else - static - symbol_type - make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PASSWORD (location_type l) - { - return symbol_type (token::TOKEN_PASSWORD, std::move (l)); - } -#else - static - symbol_type - make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST (location_type l) - { - return symbol_type (token::TOKEN_HOST, std::move (l)); - } -#else - static - symbol_type - make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PORT (location_type l) - { - return symbol_type (token::TOKEN_PORT, std::move (l)); - } -#else - static - symbol_type - make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PERSIST (location_type l) - { - return symbol_type (token::TOKEN_PERSIST, std::move (l)); - } -#else - static - symbol_type - make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LFC_INTERVAL (location_type l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l)); - } -#else - static - symbol_type - make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_READONLY (location_type l) - { - return symbol_type (token::TOKEN_READONLY, std::move (l)); - } -#else - static - symbol_type - make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONNECT_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECONNECT_TRIES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECONNECT_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_KEYSPACE (location_type l) - { - return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); - } -#else - static - symbol_type - make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERIAL_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_SERIAL_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUEST_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_KEEPALIVE (location_type l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l)); - } -#else - static - symbol_type - make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_NODELAY (location_type l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l)); - } -#else - static - symbol_type - make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_ROW_ERRORS (location_type l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l)); - } -#else - static - symbol_type - make_MAX_ROW_ERRORS (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RENEW_TIMER (location_type l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l)); - } -#else - static - symbol_type - make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REBIND_TIMER (location_type l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l)); - } -#else - static - symbol_type - make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CALCULATE_TEE_TIMES (location_type l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l)); - } -#else - static - symbol_type - make_CALCULATE_TEE_TIMES (const location_type& l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T1_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T1_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T1_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T1_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T2_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T2_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T2_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T2_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DECLINE_PROBATION_PERIOD (location_type l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l)); - } -#else - static - symbol_type - make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_TAG (location_type l) - { - return symbol_type (token::TOKEN_SERVER_TAG, std::move (l)); - } -#else - static - symbol_type - make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_SEND_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_DDNS_SEND_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STORE_EXTENDED_INFO (location_type l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l)); - } -#else - static - symbol_type - make_STORE_EXTENDED_INFO (const location_type& l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NAME (location_type l) - { - return symbol_type (token::TOKEN_NAME, std::move (l)); - } -#else - static - symbol_type - make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA (location_type l) - { - return symbol_type (token::TOKEN_DATA, std::move (l)); - } -#else - static - symbol_type - make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CODE (location_type l) - { - return symbol_type (token::TOKEN_CODE, std::move (l)); - } -#else - static - symbol_type - make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SPACE (location_type l) - { - return symbol_type (token::TOKEN_SPACE, std::move (l)); - } -#else - static - symbol_type - make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CSV_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS_SEND (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECORD_TYPES (location_type l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l)); - } -#else - static - symbol_type - make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENCAPSULATE (location_type l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l)); - } -#else - static - symbol_type - make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ARRAY (location_type l) - { - return symbol_type (token::TOKEN_ARRAY, std::move (l)); - } -#else - static - symbol_type - make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOLS (location_type l) - { - return symbol_type (token::TOKEN_POOLS, std::move (l)); - } -#else - static - symbol_type - make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOL (location_type l) - { - return symbol_type (token::TOKEN_POOL, std::move (l)); - } -#else - static - symbol_type - make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PD_POOLS (location_type l) - { - return symbol_type (token::TOKEN_PD_POOLS, std::move (l)); - } -#else - static - symbol_type - make_PD_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_PD_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DELEGATED_LEN (location_type l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, std::move (l)); - } -#else - static - symbol_type - make_DELEGATED_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER_CONTEXT (location_type l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); - } -#else - static - symbol_type - make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMENT (location_type l) - { - return symbol_type (token::TOKEN_COMMENT, std::move (l)); - } -#else - static - symbol_type - make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE_ID (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ID (location_type l) - { - return symbol_type (token::TOKEN_ID, std::move (l)); - } -#else - static - symbol_type - make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RAPID_COMMIT (location_type l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, std::move (l)); - } -#else - static - symbol_type - make_RAPID_COMMIT (const location_type& l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATION_MODE (location_type l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l)); - } -#else - static - symbol_type - make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DISABLED (location_type l) - { - return symbol_type (token::TOKEN_DISABLED, std::move (l)); - } -#else - static - symbol_type - make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUT_OF_POOL (location_type l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l)); - } -#else - static - symbol_type - make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GLOBAL (location_type l) - { - return symbol_type (token::TOKEN_GLOBAL, std::move (l)); - } -#else - static - symbol_type - make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALL (location_type l) - { - return symbol_type (token::TOKEN_ALL, std::move (l)); - } -#else - static - symbol_type - make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SHARED_NETWORKS (location_type l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l)); - } -#else - static - symbol_type - make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAC_SOURCES (location_type l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, std::move (l)); - } -#else - static - symbol_type - make_MAC_SOURCES (const location_type& l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (location_type l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l)); - } -#else - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SANITY_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TEST (location_type l) - { - return symbol_type (token::TOKEN_TEST, std::move (l)); - } -#else - static - symbol_type - make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ONLY_IF_REQUIRED (location_type l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l)); - } -#else - static - symbol_type - make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASS (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATIONS (location_type l) - { - return symbol_type (token::TOKEN_RESERVATIONS, std::move (l)); - } -#else - static - symbol_type - make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESSES (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIXES (location_type l) - { - return symbol_type (token::TOKEN_PREFIXES, std::move (l)); - } -#else - static - symbol_type - make_PREFIXES (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIXES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DUID (location_type l) - { - return symbol_type (token::TOKEN_DUID, std::move (l)); - } -#else - static - symbol_type - make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HW_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLEX_ID (location_type l) - { - return symbol_type (token::TOKEN_FLEX_ID, std::move (l)); - } -#else - static - symbol_type - make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY (location_type l) - { - return symbol_type (token::TOKEN_RELAY, std::move (l)); - } -#else - static - symbol_type - make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOOKS_LIBRARIES (location_type l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l)); - } -#else - static - symbol_type - make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARAMETERS (location_type l) - { - return symbol_type (token::TOKEN_PARAMETERS, std::move (l)); - } -#else - static - symbol_type - make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (location_type l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l)); - } -#else - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOLD_RECLAIMED_TIME (location_type l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l)); - } -#else - static - symbol_type - make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_LEASES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_TIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (location_type l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l)); - } -#else - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_ID (location_type l) - { - return symbol_type (token::TOKEN_SERVER_ID, std::move (l)); - } -#else - static - symbol_type - make_SERVER_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LLT (location_type l) - { - return symbol_type (token::TOKEN_LLT, std::move (l)); - } -#else - static - symbol_type - make_LLT (const location_type& l) - { - return symbol_type (token::TOKEN_LLT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EN (location_type l) - { - return symbol_type (token::TOKEN_EN, std::move (l)); - } -#else - static - symbol_type - make_EN (const location_type& l) - { - return symbol_type (token::TOKEN_EN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LL (location_type l) - { - return symbol_type (token::TOKEN_LL, std::move (l)); - } -#else - static - symbol_type - make_LL (const location_type& l) - { - return symbol_type (token::TOKEN_LL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IDENTIFIER (location_type l) - { - return symbol_type (token::TOKEN_IDENTIFIER, std::move (l)); - } -#else - static - symbol_type - make_IDENTIFIER (const location_type& l) - { - return symbol_type (token::TOKEN_IDENTIFIER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HTYPE (location_type l) - { - return symbol_type (token::TOKEN_HTYPE, std::move (l)); - } -#else - static - symbol_type - make_HTYPE (const location_type& l) - { - return symbol_type (token::TOKEN_HTYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TIME (location_type l) - { - return symbol_type (token::TOKEN_TIME, std::move (l)); - } -#else - static - symbol_type - make_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENTERPRISE_ID (location_type l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, std::move (l)); - } -#else - static - symbol_type - make_ENTERPRISE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4O6_PORT (location_type l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l)); - } -#else - static - symbol_type - make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_SOCKET (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_NAME (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_QUEUE_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_QUEUE (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_QUEUE (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUEUE_TYPE (location_type l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l)); - } -#else - static - symbol_type - make_QUEUE_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CAPACITY (location_type l) - { - return symbol_type (token::TOKEN_CAPACITY, std::move (l)); - } -#else - static - symbol_type - make_CAPACITY (const location_type& l) - { - return symbol_type (token::TOKEN_CAPACITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_IP (location_type l) - { - return symbol_type (token::TOKEN_SERVER_IP, std::move (l)); - } -#else - static - symbol_type - make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SERVER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_IP (location_type l) - { - return symbol_type (token::TOKEN_SENDER_IP, std::move (l)); - } -#else - static - symbol_type - make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SENDER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_PROTOCOL (location_type l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); - } -#else - static - symbol_type - make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UDP (location_type l) - { - return symbol_type (token::TOKEN_UDP, std::move (l)); - } -#else - static - symbol_type - make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP (location_type l) - { - return symbol_type (token::TOKEN_TCP, std::move (l)); - } -#else - static - symbol_type - make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_JSON (location_type l) - { - return symbol_type (token::TOKEN_JSON, std::move (l)); - } -#else - static - symbol_type - make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEVER (location_type l) - { - return symbol_type (token::TOKEN_NEVER, std::move (l)); - } -#else - static - symbol_type - make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_NOT_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_SET (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGERS (location_type l) - { - return symbol_type (token::TOKEN_LOGGERS, std::move (l)); - } -#else - static - symbol_type - make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DEBUGLEVEL (location_type l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); - } -#else - static - symbol_type - make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SEVERITY (location_type l) - { - return symbol_type (token::TOKEN_SEVERITY, std::move (l)); - } -#else - static - symbol_type - make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH (location_type l) - { - return symbol_type (token::TOKEN_FLUSH, std::move (l)); - } -#else - static - symbol_type - make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXSIZE (location_type l) - { - return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); - } -#else - static - symbol_type - make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXVER (location_type l) - { - return symbol_type (token::TOKEN_MAXVER, std::move (l)); - } -#else - static - symbol_type - make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PATTERN (location_type l) - { - return symbol_type (token::TOKEN_PATTERN, std::move (l)); - } -#else - static - symbol_type - make_PATTERN (const location_type& l) - { - return symbol_type (token::TOKEN_PATTERN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCPDDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCPDDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCPDDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCPDDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_AGENT (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_AGENT (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_JSON (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_INTERFACES6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, std::move (l)); - } -#else - static - symbol_type - make_SUB_INTERFACES6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUB_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_POOL6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_POOL6, std::move (l)); - } -#else - static - symbol_type - make_SUB_POOL6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_PD_POOL (location_type l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, std::move (l)); - } -#else - static - symbol_type - make_SUB_PD_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_RESERVATION (location_type l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l)); - } -#else - static - symbol_type - make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEFS (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_HOOKS_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_SUB_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STRING (std::string v, location_type l) - { - return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTEGER (int64_t v, location_type l) - { - return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLOAT (double v, location_type l) - { - return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOLEAN (bool v, location_type l) - { - return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_BOOLEAN (const bool& v, const location_type& l) - { - return symbol_type (token::TOKEN_BOOLEAN, v, l); - } -#endif - - private: /// This class is not copyable. Dhcp6Parser (const Dhcp6Parser&); Dhcp6Parser& operator= (const Dhcp6Parser&); - /// Stored state numbers (used for stacks). - typedef short state_type; + /// State numbers. + typedef int state_type; /// Generate an error message. /// \param yystate the state where the error occurred. @@ -3982,7 +1513,7 @@ switch (yytype) /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack - static state_type yy_lr_goto_state_ (state_type yystate, int yysym); + state_type yy_lr_goto_state_ (state_type yystate, int yysym); /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check @@ -3992,46 +1523,44 @@ switch (yytype) /// \param yyvalue the value to check static bool yy_table_value_is_error_ (int yyvalue); - static const short yypact_ninf_; + static const short int yypact_ninf_; static const signed char yytable_ninf_; /// Convert a scanner token number \a t to a symbol number. - /// In theory \a t should be a token_type, but character literals - /// are valid, yet not members of the token_type enum. - static token_number_type yytranslate_ (int t); + static token_number_type yytranslate_ (token_type t); // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short int yypact_[]; - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const short yydefact_[]; + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned short int yydefact_[]; - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + // YYPGOTO[NTERM-NUM]. + static const short int yypgoto_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short int yydefgoto_[]; - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const short yytable_[]; + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short int yytable_[]; - static const short yycheck_[]; + static const short int yycheck_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const short yystos_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short int yystos_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const short yyr1_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short int yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const signed char yyr2_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; /// Convert the symbol name \a n to a form suitable for a diagnostic. @@ -4041,16 +1570,15 @@ switch (yytype) /// For a symbol, its name in clear. static const char* const yytname_[]; #if PARSER6_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const short yyrline_[]; + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short int yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. virtual void yystack_print_ (); - /// Debugging level. + // Debugging. int yydebug_; - /// Debug stream. std::ostream* yycdebug_; /// \brief Display a symbol type, value and location. @@ -4072,30 +1600,29 @@ switch (yytype) struct by_state { /// Default constructor. - by_state () YY_NOEXCEPT; + by_state (); /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; + by_state (kind_type s); /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; + by_state (const by_state& other); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); /// Steal the symbol type from \a that. void move (by_state& that); /// The (internal) type number (corresponding to \a state). /// \a empty_symbol when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const; /// The state number used to denote an empty symbol. - /// We use the initial state, as it does not have a value. - enum { empty_state = 0 }; + enum { empty_state = -1 }; /// The state. /// \a empty when empty. @@ -4109,134 +1636,12 @@ switch (yytype) typedef basic_symbol super_type; /// Construct an empty symbol. stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); - - /// Assignment, needed by push_back by other implementations. - /// Needed by some other old implementations. + stack_symbol_type (state_type s, symbol_type& sym); + /// Assignment, needed by push_back. stack_symbol_type& operator= (const stack_symbol_type& that); -#endif }; - /// A stack with random access from its top. - template > - class stack - { - public: - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - typedef typename S::size_type size_type; - typedef typename std::ptrdiff_t index_type; - - stack (size_type n = 200) - : seq_ (n) - {} - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (index_type i) const - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (index_type i) - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (YY_MOVE_REF (T) t) - { - seq_.push_back (T ()); - operator[] (0).move (t); - } - - /// Pop elements from the stack. - void - pop (std::ptrdiff_t n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } - - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } - - /// Number of elements on the stack. - index_type - size () const YY_NOEXCEPT - { - return index_type (seq_.size ()); - } - - std::ptrdiff_t - ssize () const YY_NOEXCEPT - { - return std::ptrdiff_t (size ()); - } - - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.rbegin (); - } - - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.rend (); - } - - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, index_type range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (index_type i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - index_type range_; - }; - - private: - stack (const stack&); - stack& operator= (const stack&); - /// The wrapped container. - S seq_; - }; - - /// Stack type. typedef stack stack_type; @@ -4246,33 +1651,31 @@ switch (yytype) /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. - /// \param sym the symbol + /// \param s the symbol /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + void yypush_ (const char* m, stack_symbol_type& s); /// Push a new look ahead token on the state on the stack. /// \param m a debug message to display /// if null, no trace is output. /// \param s the state /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, state_type s, symbol_type& sym); - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); - - /// Some specific tokens. - static const token_number_type yy_error_token_ = 1; - static const token_number_type yy_undef_token_ = 2; + /// Pop \a n symbols the three stacks. + void yypop_ (unsigned int n = 1); /// Constants. enum { yyeof_ = 0, - yylast_ = 1217, ///< Last index in yytable_. - yynnts_ = 430, ///< Number of nonterminal symbols. + yylast_ = 1254, ///< Last index in yytable_. + yynnts_ = 437, ///< Number of nonterminal symbols. yyfinal_ = 32, ///< Termination state number. - yyntokens_ = 199 ///< Number of tokens. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 203 ///< Number of tokens. }; @@ -4280,17 +1683,16 @@ switch (yytype) isc::dhcp::Parser6Context& ctx; }; + // Symbol number corresponding to token number t. inline Dhcp6Parser::token_number_type - Dhcp6Parser::yytranslate_ (int t) + Dhcp6Parser::yytranslate_ (token_type t) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. static const token_number_type translate_table[] = { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4335,93 +1737,65 @@ switch (yytype) 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198 + 195, 196, 197, 198, 199, 200, 201, 202 }; - const int user_token_number_max_ = 453; + const unsigned int user_token_number_max_ = 457; + const token_number_type undef_token_ = 2; - if (t <= 0) + if (static_cast(t) <= yyeof_) return yyeof_; - else if (t <= user_token_number_max_) + else if (static_cast (t) <= user_token_number_max_) return translate_table[t]; else - return yy_undef_token_; + return undef_token_; } + inline + Dhcp6Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + // basic_symbol. -#if 201103L <= YY_CPLUSPLUS template - Dhcp6Parser::basic_symbol::basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->type_get ()) - { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case 198: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case 197: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case 196: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case 195: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } -#endif + inline + Dhcp6Parser::basic_symbol::basic_symbol () + : value () + {} template - Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& that) - : Base (that) + inline + Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& other) + : Base (other) , value () - , location (that.location) + , location (other.location) { - switch (this->type_get ()) + switch (other.type_get ()) { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.copy< ElementPtr > (YY_MOVE (that.value)); + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value + value.copy< ElementPtr > (other.value); break; - case 198: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); + case 202: // "boolean" + value.copy< bool > (other.value); break; - case 197: // "floating point" - value.copy< double > (YY_MOVE (that.value)); + case 201: // "floating point" + value.copy< double > (other.value); break; - case 196: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); + case 200: // "integer" + value.copy< int64_t > (other.value); break; - case 195: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); + case 199: // "constant string" + value.copy< std::string > (other.value); break; default: @@ -4431,52 +1805,198 @@ switch (yytype) } + template + inline + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) + : Base (t) + , value () + , location (l) + { + (void) v; + switch (this->type_get ()) + { + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value + value.copy< ElementPtr > (v); + break; + + case 202: // "boolean" + value.copy< bool > (v); + break; + + case 201: // "floating point" + value.copy< double > (v); + break; + + case 200: // "integer" + value.copy< int64_t > (v); + break; + + case 199: // "constant string" + value.copy< std::string > (v); + break; + + default: + break; + } +} + + + // Implementation of basic_symbol constructor for each type. template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , value () + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + + template + inline + Dhcp6Parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + inline + void + Dhcp6Parser::basic_symbol::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; + + case 202: // "boolean" + value.template destroy< bool > (); + break; + + case 201: // "floating point" + value.template destroy< double > (); + break; + + case 200: // "integer" + value.template destroy< int64_t > (); + break; + + case 199: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template + inline bool - Dhcp6Parser::basic_symbol::empty () const YY_NOEXCEPT + Dhcp6Parser::basic_symbol::empty () const { return Base::type_get () == empty_symbol; } template + inline void Dhcp6Parser::basic_symbol::move (basic_symbol& s) { - super_type::move (s); - switch (this->type_get ()) + super_type::move(s); + switch (this->type_get ()) { - case 216: // value - case 220: // map_value - case 261: // ddns_replace_client_name_value - case 298: // db_type - case 392: // hr_mode - case 528: // duid_type - case 571: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); + case 220: // value + case 224: // map_value + case 265: // ddns_replace_client_name_value + case 302: // db_type + case 403: // hr_mode + case 539: // duid_type + case 582: // ncr_protocol_value + value.move< ElementPtr > (s.value); break; - case 198: // "boolean" - value.move< bool > (YY_MOVE (s.value)); + case 202: // "boolean" + value.move< bool > (s.value); break; - case 197: // "floating point" - value.move< double > (YY_MOVE (s.value)); + case 201: // "floating point" + value.move< double > (s.value); break; - case 196: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); + case 200: // "integer" + value.move< int64_t > (s.value); break; - case 195: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); + case 199: // "constant string" + value.move< std::string > (s.value); break; default: break; } - location = YY_MOVE (s.location); + location = s.location; } // by_type. @@ -4485,18 +2005,9 @@ switch (yytype) : type (empty_symbol) {} -#if 201103L <= YY_CPLUSPLUS inline - Dhcp6Parser::by_type::by_type (by_type&& that) - : type (that.type) - { - that.clear (); - } -#endif - - inline - Dhcp6Parser::by_type::by_type (const by_type& that) - : type (that.type) + Dhcp6Parser::by_type::by_type (const by_type& other) + : type (other.type) {} inline @@ -4521,15 +2032,1256 @@ switch (yytype) inline int - Dhcp6Parser::by_type::type_get () const YY_NOEXCEPT + Dhcp6Parser::by_type::type_get () const { return type; } -#line 14 "dhcp6_parser.yy" -} } // isc::dhcp -#line 4532 "dhcp6_parser.h" + inline + Dhcp6Parser::token_type + Dhcp6Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short int + yytoken_number_[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457 + }; + return static_cast (yytoken_number_[type]); + } + // Implementation of make_symbol for each symbol type. + Dhcp6Parser::symbol_type + Dhcp6Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA_DIRECTORY (const location_type& l) + { + return symbol_type (token::TOKEN_DATA_DIRECTORY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_DATABASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_FETCH_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES_CONFIG (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RE_DETECT (const location_type& l) + { + return symbol_type (token::TOKEN_RE_DETECT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_DATABASE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MEMFILE (const location_type& l) + { + return symbol_type (token::TOKEN_MEMFILE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MYSQL (const location_type& l) + { + return symbol_type (token::TOKEN_MYSQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POSTGRESQL (const location_type& l) + { + return symbol_type (token::TOKEN_POSTGRESQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CQL (const location_type& l) + { + return symbol_type (token::TOKEN_CQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST (const location_type& l) + { + return symbol_type (token::TOKEN_HOST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PERSIST (const location_type& l) + { + return symbol_type (token::TOKEN_PERSIST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LFC_INTERVAL (const location_type& l) + { + return symbol_type (token::TOKEN_LFC_INTERVAL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_READONLY (const location_type& l) + { + return symbol_type (token::TOKEN_READONLY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONNECT_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECONNECT_TRIES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECONNECT_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_CONSISTENCY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERIAL_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUEST_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_KEEPALIVE (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_NODELAY (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_NODELAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_ROW_ERRORS (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MIN_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RENEW_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_RENEW_TIMER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REBIND_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_REBIND_TIMER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CALCULATE_TEE_TIMES (const location_type& l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T1_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T1_PERCENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T2_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T2_PERCENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DECLINE_PROBATION_PERIOD (const location_type& l) + { + return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_TAG (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_TAG, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_SEND_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STORE_EXTENDED_INFO (const location_type& l) + { + return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DEF, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CODE (const location_type& l) + { + return symbol_type (token::TOKEN_CODE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SPACE (const location_type& l) + { + return symbol_type (token::TOKEN_SPACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CSV_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_CSV_FORMAT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS_SEND (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS_SEND, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECORD_TYPES (const location_type& l) + { + return symbol_type (token::TOKEN_RECORD_TYPES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENCAPSULATE (const location_type& l) + { + return symbol_type (token::TOKEN_ENCAPSULATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ARRAY (const location_type& l) + { + return symbol_type (token::TOKEN_ARRAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_POOLS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PD_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_PD_POOLS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIX_LEN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DELEGATED_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_DELEGATED_LEN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RAPID_COMMIT (const location_type& l) + { + return symbol_type (token::TOKEN_RAPID_COMMIT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATION_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATION_MODE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DISABLED (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLED, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUT_OF_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_OUT_OF_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GLOBAL (const location_type& l) + { + return symbol_type (token::TOKEN_GLOBAL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALL (const location_type& l) + { + return symbol_type (token::TOKEN_ALL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SHARED_NETWORKS (const location_type& l) + { + return symbol_type (token::TOKEN_SHARED_NETWORKS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAC_SOURCES (const location_type& l) + { + return symbol_type (token::TOKEN_MAC_SOURCES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) + { + return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SANITY_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_SANITY_CHECKS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_CHECKS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASSES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUIRE_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TEST (const location_type& l) + { + return symbol_type (token::TOKEN_TEST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ONLY_IF_REQUIRED (const location_type& l) + { + return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATIONS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESSES (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESSES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIXES (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIXES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DUID (const location_type& l) + { + return symbol_type (token::TOKEN_DUID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HW_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_HW_ADDRESS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLEX_ID (const location_type& l) + { + return symbol_type (token::TOKEN_FLEX_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOOKS_LIBRARIES (const location_type& l) + { + return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_LIBRARY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PARAMETERS (const location_type& l) + { + return symbol_type (token::TOKEN_PARAMETERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING (const location_type& l) + { + return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_LEASES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_ID (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LLT (const location_type& l) + { + return symbol_type (token::TOKEN_LLT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EN (const location_type& l) + { + return symbol_type (token::TOKEN_EN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LL (const location_type& l) + { + return symbol_type (token::TOKEN_LL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IDENTIFIER (const location_type& l) + { + return symbol_type (token::TOKEN_IDENTIFIER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HTYPE (const location_type& l) + { + return symbol_type (token::TOKEN_HTYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENTERPRISE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ENTERPRISE_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4O6_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4O6_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_THREAD_POOL_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PACKET_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_SOCKET (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_QUEUE_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_QUEUE (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_QUEUE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_QUEUE_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_QUEUE_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CAPACITY (const location_type& l) + { + return symbol_type (token::TOKEN_CAPACITY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_DDNS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_UPDATES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_IP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_IP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_GENERATED_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UDP (const location_type& l) + { + return symbol_type (token::TOKEN_UDP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_PRESENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NEVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEVER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_NOT_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_SET (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGING (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGERS (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DEBUGLEVEL (const location_type& l) + { + return symbol_type (token::TOKEN_DEBUGLEVEL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SEVERITY (const location_type& l) + { + return symbol_type (token::TOKEN_SEVERITY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXSIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAXSIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXVER (const location_type& l) + { + return symbol_type (token::TOKEN_MAXVER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PATTERN (const location_type& l) + { + return symbol_type (token::TOKEN_PATTERN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCPDDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCPDDNS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_AGENT (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_INTERFACES6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_INTERFACES6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_SUBNET6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_SUBNET6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_POOL6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_POOL6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_PD_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_PD_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_RESERVATION (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_RESERVATION, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEFS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_HOOKS_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_LOGGING (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_LOGGING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STRING (const std::string& v, const location_type& l) + { + return symbol_type (token::TOKEN_STRING, v, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTEGER (const int64_t& v, const location_type& l) + { + return symbol_type (token::TOKEN_INTEGER, v, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLOAT (const double& v, const location_type& l) + { + return symbol_type (token::TOKEN_FLOAT, v, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_BOOLEAN (const bool& v, const location_type& l) + { + return symbol_type (token::TOKEN_BOOLEAN, v, l); + } + + +#line 14 "dhcp6_parser.yy" // lalr1.cc:377 +} } // isc::dhcp +#line 3285 "dhcp6_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index e7df556cdd..239704683c 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,9 +1,8 @@ -// Generated 202004050939 -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -39,178 +38,44 @@ #ifndef YY_PARSER6_LOCATION_HH_INCLUDED # define YY_PARSER6_LOCATION_HH_INCLUDED -# include -# include +# include "position.hh" -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // location.cc:296 namespace isc { namespace dhcp { -#line 59 "location.hh" - - /// A point in a source file. - class position - { - public: - /// Type for line and column numbers. - typedef int counter_type; - - /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - { - filename = fn; - line = l; - column = c; - } - - /** \name Line and Column related manipulators - ** \{ */ - /// (line related) Advance to the COUNT next lines. - void lines (counter_type count = 1) - { - if (count) - { - column = 1; - line = add_ (line, count, 1); - } - } - - /// (column related) Advance to the COUNT next columns. - void columns (counter_type count = 1) - { - column = add_ (column, count, 1); - } - /** \} */ - - /// File name to which this position refers. - std::string* filename; - /// Current line number. - counter_type line; - /// Current column number. - counter_type column; - - private: - /// Compute max (min, lhs+rhs). - static counter_type add_ (counter_type lhs, counter_type rhs, counter_type min) - { - return lhs + rhs < min ? min : lhs + rhs; - } - }; - - /// Add \a width columns, in place. - inline position& - operator+= (position& res, position::counter_type width) - { - res.columns (width); - return res; - } - - /// Add \a width columns. - inline position - operator+ (position res, position::counter_type width) - { - return res += width; - } - - /// Subtract \a width columns, in place. - inline position& - operator-= (position& res, position::counter_type width) - { - return res += -width; - } - - /// Subtract \a width columns. - inline position - operator- (position res, position::counter_type width) - { - return res -= width; - } - - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template - std::basic_ostream& - operator<< (std::basic_ostream& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - - /// Two points in a source file. +#line 46 "location.hh" // location.cc:296 + /// Abstract a location. class location { public: - /// Type for line and column numbers. - typedef position::counter_type counter_type; /// Construct a location from \a b to \a e. location (const position& b, const position& e) : begin (b) , end (e) - {} + { + } /// Construct a 0-width location in \a p. explicit location (const position& p = position ()) : begin (p) , end (p) - {} + { + } /// Construct a 0-width location in \a f, \a l, \a c. explicit location (std::string* f, - counter_type l = 1, - counter_type c = 1) + unsigned int l = 1u, + unsigned int c = 1u) : begin (f, l, c) , end (f, l, c) - {} + { + } /// Initialization. void initialize (std::string* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) + unsigned int l = 1u, + unsigned int c = 1u) { begin.initialize (f, l, c); end = begin; @@ -226,13 +91,13 @@ namespace isc { namespace dhcp { } /// Extend the current location to the COUNT next columns. - void columns (counter_type count = 1) + void columns (int count = 1) { end += count; } /// Extend the current location to the COUNT next lines. - void lines (counter_type count = 1) + void lines (int count = 1) { end.lines (count); } @@ -247,45 +112,39 @@ namespace isc { namespace dhcp { }; /// Join two locations, in place. - inline location& - operator+= (location& res, const location& end) + inline location& operator+= (location& res, const location& end) { res.end = end.end; return res; } /// Join two locations. - inline location - operator+ (location res, const location& end) + inline location operator+ (location res, const location& end) { return res += end; } /// Add \a width columns to the end position, in place. - inline location& - operator+= (location& res, location::counter_type width) + inline location& operator+= (location& res, int width) { res.columns (width); return res; } /// Add \a width columns to the end position. - inline location - operator+ (location res, location::counter_type width) + inline location operator+ (location res, int width) { return res += width; } /// Subtract \a width columns to the end position, in place. - inline location& - operator-= (location& res, location::counter_type width) + inline location& operator-= (location& res, int width) { return res += -width; } /// Subtract \a width columns to the end position. - inline location - operator- (location res, location::counter_type width) + inline location operator- (location res, int width) { return res -= width; } @@ -311,11 +170,10 @@ namespace isc { namespace dhcp { ** Avoid duplicate information. */ template - std::basic_ostream& + inline std::basic_ostream& operator<< (std::basic_ostream& ostr, const location& loc) { - location::counter_type end_col - = 0 < loc.end.column ? loc.end.column - 1 : 0; + unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -328,8 +186,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // location.cc:296 } } // isc::dhcp -#line 333 "location.hh" - +#line 192 "location.hh" // location.cc:296 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index db8eb17ff1..2ee80e6d0a 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,12 +1,180 @@ -// Generated 202004050939 -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined in "location.hh". -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system -// 3. if you used to include it, include "location.hh" instead. +// Positions for Bison parsers in C++ -#include "location.hh" +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 . + +// As a special exception, you may create a larger work that contains +// part or all of the Bison parser skeleton and distribute that work +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file position.hh + ** Define the isc::dhcp::position class. + */ + +#ifndef YY_PARSER6_POSITION_HH_INCLUDED +# define YY_PARSER6_POSITION_HH_INCLUDED + +# include // std::max +# include +# include + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +#line 14 "dhcp6_parser.yy" // location.cc:296 +namespace isc { namespace dhcp { +#line 56 "position.hh" // location.cc:296 + /// Abstract a position. + class position + { + public: + /// Construct a position. + explicit position (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + : filename (f) + , line (l) + , column (c) + { + } + + + /// Initialization. + void initialize (std::string* fn = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + { + filename = fn; + line = l; + column = c; + } + + /** \name Line and Column related manipulators + ** \{ */ + /// (line related) Advance to the COUNT next lines. + void lines (int count = 1) + { + if (count) + { + column = 1u; + line = add_ (line, count, 1); + } + } + + /// (column related) Advance to the COUNT next columns. + void columns (int count = 1) + { + column = add_ (column, count, 1); + } + /** \} */ + + /// File name to which this position refers. + std::string* filename; + /// Current line number. + unsigned int line; + /// Current column number. + unsigned int column; + + private: + /// Compute max(min, lhs+rhs) (provided min <= lhs). + static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) + { + return (0 < rhs || -static_cast(rhs) < lhs + ? rhs + lhs + : min); + } + }; + + /// Add \a width columns, in place. + inline position& + operator+= (position& res, int width) + { + res.columns (width); + return res; + } + + /// Add \a width columns. + inline position + operator+ (position res, int width) + { + return res += width; + } + + /// Subtract \a width columns, in place. + inline position& + operator-= (position& res, int width) + { + return res += -width; + } + + /// Subtract \a width columns. + inline position + operator- (position res, int width) + { + return res -= width; + } + + /// Compare two position objects. + inline bool + operator== (const position& pos1, const position& pos2) + { + return (pos1.line == pos2.line + && pos1.column == pos2.column + && (pos1.filename == pos2.filename + || (pos1.filename && pos2.filename + && *pos1.filename == *pos2.filename))); + } + + /// Compare two position objects. + inline bool + operator!= (const position& pos1, const position& pos2) + { + return !(pos1 == pos2); + } + + /** \brief Intercept output stream redirection. + ** \param ostr the destination output stream + ** \param pos a reference to the position to redirect + */ + template + inline std::basic_ostream& + operator<< (std::basic_ostream& ostr, const position& pos) + { + if (pos.filename) + ostr << *pos.filename << ':'; + return ostr << pos.line << '.' << pos.column; + } + +#line 14 "dhcp6_parser.yy" // location.cc:296 +} } // isc::dhcp +#line 180 "position.hh" // location.cc:296 +#endif // !YY_PARSER6_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index d829fc8348..db2863a06e 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,9 +1,157 @@ -// Generated 202004050939 -// A Bison parser, made by GNU Bison 3.5.3. +// A Bison parser, made by GNU Bison 3.0.4. -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined with the parser itself. -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system. +// Stack handling for Bison parsers in C++ + +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 . + +// As a special exception, you may create a larger work that contains +// part or all of the Bison parser skeleton and distribute that work +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file stack.hh + ** Define the isc::dhcp::stack class. + */ + +#ifndef YY_PARSER6_STACK_HH_INCLUDED +# define YY_PARSER6_STACK_HH_INCLUDED + +# include + +#line 14 "dhcp6_parser.yy" // stack.hh:132 +namespace isc { namespace dhcp { +#line 46 "stack.hh" // stack.hh:132 + template > + class stack + { + public: + // Hide our reversed order. + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; + + stack () + : seq_ () + { + seq_.reserve (200); + } + + stack (unsigned int n) + : seq_ (n) + {} + + inline + T& + operator[] (unsigned int i) + { + return seq_[seq_.size () - 1 - i]; + } + + inline + const T& + operator[] (unsigned int i) const + { + return seq_[seq_.size () - 1 - i]; + } + + /// Steal the contents of \a t. + /// + /// Close to move-semantics. + inline + void + push (T& t) + { + seq_.push_back (T()); + operator[](0).move (t); + } + + inline + void + pop (unsigned int n = 1) + { + for (; n; --n) + seq_.pop_back (); + } + + void + clear () + { + seq_.clear (); + } + + inline + typename S::size_type + size () const + { + return seq_.size (); + } + + inline + const_iterator + begin () const + { + return seq_.rbegin (); + } + + inline + const_iterator + end () const + { + return seq_.rend (); + } + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Present a slice of the top of a stack. + template > + class slice + { + public: + slice (const S& stack, unsigned int range) + : stack_ (stack) + , range_ (range) + {} + + inline + const T& + operator [] (unsigned int i) const + { + return stack_[range_ - i]; + } + + private: + const S& stack_; + unsigned int range_; + }; + +#line 14 "dhcp6_parser.yy" // stack.hh:132 +} } // isc::dhcp +#line 156 "stack.hh" // stack.hh:132 + +#endif // !YY_PARSER6_STACK_HH_INCLUDED diff --git a/src/bin/dhcp6/tests/config_parser_unittest.cc b/src/bin/dhcp6/tests/config_parser_unittest.cc index 217be4b5ec..0ece7f25e1 100644 --- a/src/bin/dhcp6/tests/config_parser_unittest.cc +++ b/src/bin/dhcp6/tests/config_parser_unittest.cc @@ -7749,7 +7749,7 @@ TEST_F(Dhcp6ParserTest, multiThreadingDefaultSettings) { "{" " \"enable-multi-threading\": false,\n" " \"thread-pool-size\": 0,\n" - " \"packet-queue-size\": 0\n" + " \"packet-queue-size\": 64\n" "}"; ConstElementPtr param; ASSERT_NO_THROW(param = Element::fromJSON(content_json)) @@ -7769,7 +7769,7 @@ TEST_F(Dhcp6ParserTest, multiThreadingSettings) { "}"; std::string config = "{ " + genIfaceConfig() + "," + "\"subnet6\": [ ], " - "\"multi-threading\": " + content_json; + "\"multi-threading\": " + content_json + "}"; ConstElementPtr json; ASSERT_NO_THROW(json = parseDHCP6(config)); diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index efff94a14d..6d0260fb01 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -1925,10 +1925,31 @@ const char* EXTRACTED_CONFIGS[] = { " \"interfaces\": [ \"*\" ],\n" " \"re-detect\": false\n" " },\n" +" \"preferred-lifetime\": 3000,\n" +" \"rebind-timer\": 2000,\n" +" \"renew-timer\": 1000,\n" +" \"statistic-default-sample-age\": 5,\n" +" \"statistic-default-sample-count\": 10,\n" +" \"valid-lifetime\": 4000\n" +" }\n", + // CONFIGURATION 61 +"{\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" +" \"subnet6\": [ ]\n" +" }\n", + // CONFIGURATION 62 +"{\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" " \"multi-threading\": {\n" -" \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 0,\n" -" \"thread-pool-size\": 0\n" +" \"enable-multi-threading\": true,\n" +" \"packet-queue-size\": 1024,\n" +" \"thread-pool-size\": 48\n" " },\n" " \"subnet6\": [ ]\n" " }\n" @@ -1984,7 +2005,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2007,6 +2028,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -2065,7 +2088,7 @@ const char* UNPARSED_CONFIGS[] = { " \"min-valid-lifetime\": 3000,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2088,6 +2111,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -2172,7 +2197,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2195,6 +2220,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -2350,7 +2377,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2373,6 +2400,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -2528,7 +2557,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2551,6 +2580,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -2710,7 +2741,7 @@ const char* UNPARSED_CONFIGS[] = { " \"min-valid-lifetime\": 3000,\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2733,6 +2764,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -2817,7 +2850,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2840,6 +2873,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -2921,7 +2956,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -2944,6 +2979,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3025,7 +3062,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3048,6 +3085,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3161,7 +3200,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3184,6 +3223,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3264,7 +3305,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3287,6 +3328,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3369,7 +3412,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3392,6 +3435,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3476,7 +3521,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3499,6 +3544,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3598,7 +3645,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3621,6 +3668,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -3703,7 +3752,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3734,6 +3783,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -3788,7 +3839,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3819,6 +3870,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -3873,7 +3926,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3913,6 +3966,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -3967,7 +4022,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -3998,6 +4053,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4052,7 +4109,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -4083,6 +4140,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4137,7 +4196,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -4177,6 +4236,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -4257,7 +4318,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -4280,6 +4341,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -4377,7 +4440,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -4427,6 +4490,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -4507,7 +4572,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -4566,6 +4631,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -4620,7 +4687,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -4696,6 +4763,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -4776,7 +4845,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -4799,6 +4868,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -4922,7 +4993,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -4945,6 +5016,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5078,7 +5151,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -5116,6 +5189,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5196,7 +5271,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -5238,6 +5313,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5318,7 +5395,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -5341,6 +5418,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -5395,7 +5474,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -5418,6 +5497,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -5472,7 +5553,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -5495,6 +5576,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5575,7 +5658,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -5598,6 +5681,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5678,7 +5763,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -5701,6 +5786,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5859,7 +5946,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -5882,6 +5969,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -5977,7 +6066,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6000,6 +6089,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -6103,7 +6194,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6126,6 +6217,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -6206,7 +6299,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6229,6 +6322,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -6309,7 +6404,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6332,6 +6427,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -6412,7 +6509,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6435,6 +6532,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -6640,7 +6739,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6673,6 +6772,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -6766,7 +6867,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"client-link-addr-option\", \"remote-id\", \"subscriber-id\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6789,6 +6890,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -6843,7 +6946,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"client-link-addr-option\", \"remote-id\", \"subscriber-id\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6866,6 +6969,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -6920,7 +7025,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -6943,6 +7048,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -7127,7 +7234,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7150,6 +7257,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -7256,7 +7365,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7279,6 +7388,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -7333,7 +7444,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7354,6 +7465,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -7408,7 +7521,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7429,6 +7542,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -7483,7 +7598,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7504,6 +7619,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -7558,7 +7675,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7579,6 +7696,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -7647,7 +7766,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7670,6 +7789,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -7750,7 +7871,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7773,6 +7894,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -7853,7 +7976,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7876,6 +7999,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -7957,7 +8082,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -7980,6 +8105,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -8066,7 +8193,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8089,6 +8216,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -8175,7 +8304,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8198,6 +8327,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -8280,7 +8411,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8303,6 +8434,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -8386,7 +8519,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8409,6 +8542,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -8511,7 +8646,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8534,6 +8669,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -8616,7 +8753,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [\n" @@ -8729,6 +8866,8 @@ const char* UNPARSED_CONFIGS[] = { " \"valid-lifetime\": 7200\n" " }\n" " ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n" @@ -8783,7 +8922,7 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 4,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8858,6 +8997,8 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [\n" " {\n" @@ -8978,7 +9119,86 @@ const char* UNPARSED_CONFIGS[] = { " \"mac-sources\": [ \"any\" ],\n" " \"multi-threading\": {\n" " \"enable-multi-threading\": false,\n" -" \"packet-queue-size\": 0,\n" +" \"packet-queue-size\": 64,\n" +" \"thread-pool-size\": 0\n" +" },\n" +" \"option-data\": [ ],\n" +" \"option-def\": [ ],\n" +" \"preferred-lifetime\": 3000,\n" +" \"rebind-timer\": 2000,\n" +" \"relay-supplied-options\": [ \"65\" ],\n" +" \"renew-timer\": 1000,\n" +" \"reservation-mode\": \"all\",\n" +" \"sanity-checks\": {\n" +" \"lease-checks\": \"warn\"\n" +" },\n" +" \"server-id\": {\n" +" \"enterprise-id\": 0,\n" +" \"htype\": 0,\n" +" \"identifier\": \"\",\n" +" \"persist\": true,\n" +" \"time\": 0,\n" +" \"type\": \"LLT\"\n" +" },\n" +" \"server-tag\": \"\",\n" +" \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 5,\n" +" \"statistic-default-sample-count\": 10,\n" +" \"store-extended-info\": false,\n" +" \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" +" \"valid-lifetime\": 4000\n" +" }\n", + // CONFIGURATION 61 +"{\n" +" \"calculate-tee-times\": true,\n" +" \"ddns-generated-prefix\": \"myhost\",\n" +" \"ddns-override-client-update\": false,\n" +" \"ddns-override-no-update\": false,\n" +" \"ddns-qualifying-suffix\": \"\",\n" +" \"ddns-replace-client-name\": \"never\",\n" +" \"ddns-send-updates\": true,\n" +" \"decline-probation-period\": 86400,\n" +" \"dhcp-ddns\": {\n" +" \"enable-updates\": false,\n" +" \"max-queue-size\": 1024,\n" +" \"ncr-format\": \"JSON\",\n" +" \"ncr-protocol\": \"UDP\",\n" +" \"sender-ip\": \"0.0.0.0\",\n" +" \"sender-port\": 0,\n" +" \"server-ip\": \"127.0.0.1\",\n" +" \"server-port\": 53001\n" +" },\n" +" \"dhcp-queue-control\": {\n" +" \"capacity\": 500,\n" +" \"enable-queue\": false,\n" +" \"queue-type\": \"kea-ring6\"\n" +" },\n" +" \"dhcp4o6-port\": 0,\n" +" \"expired-leases-processing\": {\n" +" \"flush-reclaimed-timer-wait-time\": 25,\n" +" \"hold-reclaimed-time\": 3600,\n" +" \"max-reclaim-leases\": 100,\n" +" \"max-reclaim-time\": 250,\n" +" \"reclaim-timer-wait-time\": 10,\n" +" \"unwarned-reclaim-cycles\": 5\n" +" },\n" +" \"hooks-libraries\": [ ],\n" +" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\" ],\n" +" \"hostname-char-replacement\": \"\",\n" +" \"hostname-char-set\": \"[^A-Za-z0-9.-]\",\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" +" \"lease-database\": {\n" +" \"type\": \"memfile\"\n" +" },\n" +" \"mac-sources\": [ \"any\" ],\n" +" \"multi-threading\": {\n" +" \"enable-multi-threading\": false,\n" +" \"packet-queue-size\": 64,\n" " \"thread-pool-size\": 0\n" " },\n" " \"option-data\": [ ],\n" @@ -8999,6 +9219,85 @@ const char* UNPARSED_CONFIGS[] = { " },\n" " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" +" \"store-extended-info\": false,\n" +" \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" +" \"valid-lifetime\": 7200\n" +" }\n", + // CONFIGURATION 62 +"{\n" +" \"calculate-tee-times\": true,\n" +" \"ddns-generated-prefix\": \"myhost\",\n" +" \"ddns-override-client-update\": false,\n" +" \"ddns-override-no-update\": false,\n" +" \"ddns-qualifying-suffix\": \"\",\n" +" \"ddns-replace-client-name\": \"never\",\n" +" \"ddns-send-updates\": true,\n" +" \"decline-probation-period\": 86400,\n" +" \"dhcp-ddns\": {\n" +" \"enable-updates\": false,\n" +" \"max-queue-size\": 1024,\n" +" \"ncr-format\": \"JSON\",\n" +" \"ncr-protocol\": \"UDP\",\n" +" \"sender-ip\": \"0.0.0.0\",\n" +" \"sender-port\": 0,\n" +" \"server-ip\": \"127.0.0.1\",\n" +" \"server-port\": 53001\n" +" },\n" +" \"dhcp-queue-control\": {\n" +" \"capacity\": 500,\n" +" \"enable-queue\": false,\n" +" \"queue-type\": \"kea-ring6\"\n" +" },\n" +" \"dhcp4o6-port\": 0,\n" +" \"expired-leases-processing\": {\n" +" \"flush-reclaimed-timer-wait-time\": 25,\n" +" \"hold-reclaimed-time\": 3600,\n" +" \"max-reclaim-leases\": 100,\n" +" \"max-reclaim-time\": 250,\n" +" \"reclaim-timer-wait-time\": 10,\n" +" \"unwarned-reclaim-cycles\": 5\n" +" },\n" +" \"hooks-libraries\": [ ],\n" +" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\" ],\n" +" \"hostname-char-replacement\": \"\",\n" +" \"hostname-char-set\": \"[^A-Za-z0-9.-]\",\n" +" \"interfaces-config\": {\n" +" \"interfaces\": [ \"*\" ],\n" +" \"re-detect\": false\n" +" },\n" +" \"lease-database\": {\n" +" \"type\": \"memfile\"\n" +" },\n" +" \"mac-sources\": [ \"any\" ],\n" +" \"multi-threading\": {\n" +" \"enable-multi-threading\": true,\n" +" \"packet-queue-size\": 1024,\n" +" \"thread-pool-size\": 48\n" +" },\n" +" \"option-data\": [ ],\n" +" \"option-def\": [ ],\n" +" \"preferred-lifetime\": 3600,\n" +" \"relay-supplied-options\": [ \"65\" ],\n" +" \"reservation-mode\": \"all\",\n" +" \"sanity-checks\": {\n" +" \"lease-checks\": \"warn\"\n" +" },\n" +" \"server-id\": {\n" +" \"enterprise-id\": 0,\n" +" \"htype\": 0,\n" +" \"identifier\": \"\",\n" +" \"persist\": true,\n" +" \"time\": 0,\n" +" \"type\": \"LLT\"\n" +" },\n" +" \"server-tag\": \"\",\n" +" \"shared-networks\": [ ],\n" +" \"statistic-default-sample-age\": 0,\n" +" \"statistic-default-sample-count\": 20,\n" " \"store-extended-info\": false,\n" " \"subnet6\": [ ],\n" " \"t1-percent\": 0.5,\n"