diff options
Diffstat (limited to 'src/bin/dhcp6')
-rw-r--r-- | src/bin/dhcp6/dhcp6_lexer.cc | 2146 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_lexer.ll | 12 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.cc | 5930 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.h | 7422 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.yy | 10 | ||||
-rw-r--r-- | src/bin/dhcp6/json_config_parser.cc | 1 | ||||
-rw-r--r-- | src/bin/dhcp6/location.hh | 203 | ||||
-rw-r--r-- | src/bin/dhcp6/position.hh | 192 | ||||
-rw-r--r-- | src/bin/dhcp6/stack.hh | 166 | ||||
-rw-r--r-- | src/bin/dhcp6/tests/get_config_unittest.cc | 78 | ||||
-rw-r--r-- | src/bin/dhcp6/tests/get_config_unittest.cc.skel | 15 |
11 files changed, 7160 insertions, 9015 deletions
diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 9b213ecc5a..0b794a1fd5 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -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 208 -#define YY_END_OF_BUFFER 209 +#define YY_NUM_RULES 209 +#define YY_END_OF_BUFFER 210 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,21 +700,21 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1903] = +static const flex_int16_t yy_accept[1926] = { 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, + 202, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 208, 10, 11, 208, 1, 202, 199, 202, 202, + 208, 201, 200, 208, 208, 208, 208, 208, 195, 196, + 208, 208, 208, 197, 198, 5, 5, 5, 208, 208, + 208, 10, 11, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 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, 201, 201, - 0, 200, 201, 3, 2, 6, 0, 201, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 1, 202, 202, + 0, 201, 202, 3, 2, 6, 0, 202, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -722,196 +722,198 @@ static const flex_int16_t yy_accept[1903] = 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, 163, 0, 0, 164, 0, 0, + 8, 0, 0, 0, 164, 0, 0, 165, 0, 0, - 0, 0, 0, 0, 0, 192, 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, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 206, 204, 0, - 203, 202, 0, 0, 0, 0, 0, 0, 162, 0, - 28, 0, 27, 0, 0, 120, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 207, 205, 0, + 204, 203, 0, 0, 0, 0, 0, 0, 163, 0, + 28, 0, 27, 0, 0, 121, 0, 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, 117, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 205, 202, 0, 0, 0, 0, 0, 29, + 0, 0, 206, 203, 0, 0, 0, 0, 0, 29, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 0, 0, 0, 98, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, + 122, 0, 0, 0, 0, 0, 0, 0, 99, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 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, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 107, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 108, 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, 142, 0, 167, + 0, 0, 0, 0, 0, 0, 0, 143, 0, 168, 51, 0, 56, 0, 0, 0, 0, 0, 37, 34, - 33, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 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, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 119, 0, 0, 0, 0, 0, 0, 0, 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, 135, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 133, 0, 0, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 111, 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, 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, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 130, - 0, 0, 0, 0, 0, 0, 0, 134, 52, 0, + 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 136, 0, 60, 0, 0, 0, 0, 0, + 161, 131, 0, 0, 0, 0, 0, 0, 0, 135, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 137, 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, 92, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 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, 149, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - + 0, 150, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 101, 0, 0, 0, 146, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 102, 0, 0, 0, 147, 0, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 189, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 161, 14, 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, 162, 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, 152, 0, - 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 148, 165, 0, 40, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 159, 54, 0, 103, - 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, - 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, + 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, - 17, 0, 15, 0, 183, 182, 0, 0, 0, 69, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 141, + 149, 166, 0, 40, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 0, 185, + 0, 20, 0, 0, 0, 96, 0, 0, 0, 0, + 0, 160, 54, 0, 104, 0, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 127, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 0, 145, 0, 43, 0, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 0, 114, 80, 0, 0, - 153, 0, 0, 0, 0, 0, 144, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 0, 0, 129, 0, + 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 97, 119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 17, 0, 15, 0, + 184, 183, 0, 0, 0, 69, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, - 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 177, 0, 186, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, + 146, 0, 43, 0, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 0, 115, 80, 0, 0, 154, 0, 0, + 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, + 0, 0, 109, 0, 0, 130, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 107, 0, 0, 0, 169, 0, 0, 0, 0, 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, 0, 139, - 47, 0, 0, 0, 70, 181, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, - 0, 44, 0, 18, 0, 0, 0, 72, 0, 0, - 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 0, 128, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 140, 47, 0, + 0, 0, 70, 182, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, + 44, 0, 18, 0, 0, 0, 72, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 0, 129, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 158, 0, 0, 0, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 94, 0, 0, 0, 0, 36, + 67, 0, 0, 0, 95, 0, 0, 0, 0, 36, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 0, 0, 179, 0, 0, 0, 0, - 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 25, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, + 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 116, 0, 0, 0, 180, 0, 0, 0, + + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 0, 78, - 0, 77, 0, 21, 73, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 172, 0, 0, - 0, 0, 71, 0, 0, 0, 66, 0, 23, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 0, 91, - + 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 174, 0, 78, 0, 77, 0, 21, 73, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 0, 173, 0, 0, 0, 0, 71, 0, 0, 0, + + 66, 0, 23, 0, 0, 94, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 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, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 0, 0, 90, - 0, 0, 178, 0, 0, 0, 0, 189, 75, 74, - 22, 0, 123, 140, 0, 0, 0, 86, 0, 0, - 0, 0, 0, 0, 170, 0, 175, 0, 88, 81, - 0, 0, 0, 0, 0, 0, 169, 0, 0, 26, - 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, - 0, 0, 0, 124, 84, 0, 0, 0, 0, 83, - - 171, 0 + 0, 0, 49, 0, 0, 90, 0, 0, 0, 179, + 0, 0, 0, 0, 190, 75, 74, 22, 0, 124, + 141, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 171, 0, 176, 0, 88, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 26, + + 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 0, 92, 0, 125, 84, 0, 0, + 0, 0, 83, 172, 0 } ; static const YY_CHAR yy_ec[256] = @@ -958,445 +960,449 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1915] = +static const flex_int16_t yy_base[1938] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2304, 2305, 34, 2300, 145, 0, 207, 2305, 214, 221, - 13, 228, 2305, 2280, 118, 25, 2, 6, 2305, 2305, - 73, 11, 17, 2305, 2305, 2305, 104, 2288, 2241, 0, - 2278, 108, 2295, 24, 256, 2305, 67, 2244, 2264, 84, - 75, 2264, 88, 226, 91, 89, 284, 196, 203, 279, - 193, 224, 216, 60, 242, 2244, 286, 288, 314, 300, - 319, 2227, 204, 324, 356, 329, 2246, 0, 380, 400, - 420, 427, 406, 2305, 0, 2305, 385, 443, 238, 241, - 310, 269, 299, 314, 2305, 2243, 2284, 2305, 405, 2305, - - 419, 400, 2241, 2282, 326, 10, 262, 407, 224, 409, - 352, 206, 2281, 0, 472, 412, 2223, 415, 2231, 406, - 2227, 2216, 2217, 2222, 444, 2232, 2215, 2224, 327, 433, - 226, 2218, 2216, 445, 2205, 2263, 399, 2208, 2261, 2201, - 2224, 2221, 2221, 2215, 339, 2208, 2206, 2207, 2199, 2204, - 2198, 412, 2209, 2202, 2193, 2192, 2206, 462, 2244, 2191, - 443, 2203, 421, 2191, 482, 2192, 445, 2204, 2201, 2202, - 293, 2200, 2235, 2234, 477, 2180, 2180, 2184, 2180, 2172, - 2189, 2181, 0, 478, 493, 486, 481, 500, 505, 2180, - 2305, 0, 510, 2175, 2305, 498, 505, 2305, 2229, 508, - - 2228, 513, 2227, 515, 2226, 2305, 561, 2225, 525, 2184, - 2176, 2180, 2181, 2176, 2175, 2166, 501, 2217, 2211, 2175, - 2156, 2153, 2161, 2167, 2155, 2169, 2165, 2166, 2166, 2161, - 2153, 2155, 2139, 2143, 2156, 2158, 2155, 2147, 2137, 2140, - 2154, 2305, 2140, 2148, 80, 2133, 2132, 2184, 2131, 2141, - 2181, 505, 2140, 2179, 2124, 2126, 2137, 2175, 532, 2179, - 2114, 2129, 538, 2119, 2125, 2134, 2115, 2113, 2116, 2112, - 2118, 2109, 2108, 2121, 2114, 2104, 2115, 2119, 2118, 2112, - 220, 2119, 2114, 2106, 2096, 2111, 2106, 2110, 500, 2108, - 2094, 2100, 2107, 2089, 2090, 2093, 2090, 2089, 562, 2084, - - 2098, 2097, 2096, 2099, 2081, 2089, 543, 2305, 2305, 553, - 2305, 2305, 2076, 0, 520, 2123, 554, 2134, 2305, 556, - 2305, 2133, 2305, 2127, 606, 2305, 555, 2067, 2086, 2069, - 2086, 2074, 2126, 2081, 2076, 2079, 2074, 537, 2305, 2076, - 586, 2115, 2073, 2070, 2071, 584, 2075, 2115, 2063, 2058, - 2055, 2051, 2053, 2104, 2061, 2050, 2066, 2100, 2046, 607, - 2059, 2059, 2042, 2043, 2056, 2054, 2042, 2052, 2047, 2054, - 2049, 2034, 574, 2043, 2046, 2041, 577, 2040, 2036, 2086, - 422, 563, 2305, 2080, 2030, 2029, 2022, 2024, 2036, 2027, - 2016, 2033, 2022, 2027, 596, 2074, 2027, 589, 2024, 2027, - - 2027, 2025, 2014, 2014, 2026, 583, 2001, 2002, 2023, 595, - 2005, 2002, 2016, 2019, 2014, 2000, 2012, 2011, 2010, 2005, - 2008, 2007, 2006, 2005, 558, 2048, 2007, 2046, 2045, 1987, - 652, 2000, 2305, 2305, 1999, 0, 604, 2041, 2040, 2305, - 2039, 2305, 616, 664, 629, 2038, 2032, 1985, 1987, 1975, - 2305, 1980, 1986, 1989, 1972, 1987, 1974, 1973, 2305, 1983, - 610, 1974, 1971, 1983, 566, 1968, 1970, 2305, 1976, 1961, - 1963, 1974, 1972, 1967, 653, 1974, 1962, 1955, 2006, 2305, - 1953, 1969, 2003, 2007, 1963, 1957, 1959, 1960, 1944, 1961, - 1995, 1946, 1941, 1940, 1942, 1938, 1934, 556, 1953, 1927, - - 1934, 1939, 1932, 1948, 1982, 1986, 2305, 1931, 1927, 1983, - 1934, 1928, 1935, 1920, 1930, 1918, 1932, 1921, 1917, 1919, - 1914, 2305, 1971, 2305, 1913, 1912, 1905, 1922, 1961, 1960, - 1905, 1910, 1919, 1913, 1907, 1916, 688, 1953, 1915, 1898, - 1898, 1893, 1889, 1895, 1900, 1893, 1901, 1905, 1888, 1946, - 1887, 1939, 1884, 1885, 1884, 1896, 1885, 2305, 1895, 2305, - 2305, 1884, 2305, 1894, 1930, 1890, 0, 1933, 2305, 2305, - 2305, 636, 632, 691, 2305, 640, 1892, 1872, 1925, 1870, - 1923, 1868, 1867, 1866, 1873, 1866, 1874, 1877, 1859, 1859, - 1874, 1873, 1861, 1871, 1870, 1854, 1869, 1851, 1898, 1865, - - 1903, 1847, 1849, 1861, 1861, 1860, 2305, 1845, 1842, 1900, - 1855, 1847, 1853, 1844, 1852, 2305, 1837, 1848, 1852, 1834, - 1846, 1847, 635, 1829, 1823, 1828, 1825, 1840, 1839, 1840, - 1819, 1829, 1835, 1878, 1833, 1832, 1824, 1815, 2305, 1816, - 1818, 2305, 1826, 1865, 1864, 16, 1825, 1862, 1807, 1808, - 1811, 1812, 1803, 2305, 1817, 1803, 695, 1795, 1799, 1815, - 1812, 1804, 1849, 1801, 1808, 1846, 2305, 1792, 1790, 1804, - 1788, 1802, 1805, 1839, 1838, 1837, 1836, 1781, 1834, 1833, - 2305, 1778, 1792, 698, 1793, 1792, 1789, 1789, 1826, 1786, - 1775, 1777, 2305, 2305, 663, 658, 1769, 1786, 1778, 1765, - - 1759, 1780, 1821, 669, 1815, 1775, 1813, 1812, 1764, 1758, - 1761, 1769, 1772, 1756, 1757, 1766, 1747, 1802, 1762, 1752, - 1760, 1798, 1759, 661, 1750, 1752, 92, 209, 269, 294, - 313, 2305, 380, 399, 451, 501, 507, 544, 551, 579, - 597, 588, 611, 633, 657, 657, 703, 715, 659, 673, - 659, 669, 719, 677, 726, 2305, 727, 683, 681, 683, - 679, 673, 728, 691, 680, 2305, 682, 693, 682, 696, - 698, 742, 685, 744, 687, 702, 2305, 696, 690, 701, - 686, 697, 710, 689, 695, 750, 714, 698, 698, 711, - 755, 756, 757, 704, 722, 717, 724, 719, 704, 716, - - 717, 723, 710, 2305, 775, 733, 735, 725, 737, 727, - 740, 731, 737, 781, 757, 744, 726, 733, 747, 792, - 742, 2305, 740, 755, 752, 738, 745, 744, 742, 761, - 758, 759, 747, 754, 755, 764, 768, 765, 755, 768, - 754, 753, 759, 816, 757, 758, 764, 780, 763, 817, - 772, 2305, 782, 782, 775, 786, 784, 829, 771, 773, - 788, 789, 777, 775, 837, 794, 780, 783, 2305, 2305, - 799, 798, 799, 804, 792, 802, 804, 2305, 2305, 804, - 806, 793, 811, 798, 796, 814, 801, 801, 852, 799, - 803, 861, 2305, 862, 2305, 807, 821, 821, 866, 814, - - 813, 817, 811, 871, 824, 814, 815, 811, 821, 825, - 836, 820, 838, 833, 835, 828, 830, 831, 843, 833, - 848, 889, 846, 851, 828, 851, 835, 2305, 842, 843, - 857, 848, 846, 896, 843, 858, 876, 884, 853, 902, - 864, 904, 2305, 870, 858, 853, 854, 866, 873, 862, - 863, 859, 877, 863, 864, 874, 883, 919, 866, 875, - 870, 924, 930, 888, 879, 2305, 883, 891, 893, 878, - 894, 884, 896, 890, 937, 903, 887, 888, 2305, 904, - 907, 890, 892, 950, 893, 912, 2305, 911, 914, 895, - 913, 901, 954, 912, 908, 905, 958, 907, 960, 922, - - 908, 926, 925, 911, 926, 918, 914, 932, 931, 918, - 2305, 2305, 926, 973, 926, 2305, 934, 937, 930, 983, - 2305, 932, 938, 982, 933, 934, 946, 940, 944, 942, - 940, 951, 996, 940, 945, 999, 1000, 944, 956, 2305, - 944, 952, 950, 1001, 963, 950, 951, 960, 972, 959, - 957, 971, 972, 988, 993, 975, 980, 963, 963, 965, - 965, 985, 984, 975, 964, 981, 988, 1031, 973, 993, - 986, 990, 994, 977, 994, 1039, 986, 990, 2305, 1037, - 986, 985, 987, 1008, 1005, 1045, 994, 1012, 1013, 999, - 1007, 1016, 996, 1011, 1018, 1060, 1061, 2305, 1014, 1063, - - 1064, 1006, 1016, 1026, 1029, 1012, 1014, 1014, 1021, 1030, - 1018, 1025, 1020, 1027, 1039, 1080, 1027, 1026, 1043, 1084, - 1034, 1038, 1036, 1034, 1029, 1090, 1091, 1041, 1093, 1089, - 1095, 1048, 2305, 1053, 1046, 1037, 1056, 1050, 1045, 1055, - 1052, 1057, 1053, 1065, 2305, 1050, 1052, 2305, 2305, 1052, - 1112, 1051, 1070, 1071, 1073, 1064, 1118, 1119, 1072, 1057, - 1071, 1079, 1061, 1066, 1105, 1096, 1128, 1083, 1083, 1087, - 1074, 1076, 1093, 1088, 1092, 1137, 1085, 1089, 2305, 1086, - 1082, 1099, 1079, 1100, 1090, 1141, 2305, 1106, 1104, 1108, - 1092, 1104, 1109, 1095, 1156, 1109, 1114, 1101, 1112, 1104, - - 1110, 1106, 1124, 1125, 1126, 2305, 2305, 1124, 2305, 1126, - 2305, 1111, 1122, 1113, 1132, 1122, 1174, 1131, 1128, 1172, - 1136, 1125, 1132, 1137, 1134, 1140, 2305, 1133, 1125, 1186, - 2305, 1187, 1134, 1141, 1185, 1147, 2305, 2305, 1144, 2305, - 1135, 2305, 1135, 1138, 1152, 1157, 1140, 1151, 1200, 1157, - 1158, 1159, 1199, 1155, 1206, 1159, 1208, 2305, 1155, 1210, - 1211, 1168, 1170, 2305, 2305, 1153, 1215, 1211, 1175, 1159, - 1171, 1190, 1221, 2305, 1178, 1169, 1180, 1225, 1172, 1187, - 1223, 1175, 2305, 1171, 1187, 1175, 1189, 1190, 1187, 1231, - 1194, 1184, 1199, 1187, 1187, 1242, 1238, 1244, 1201, 2305, - - 1203, 1202, 1205, 1198, 1207, 1208, 1205, 1195, 1198, 1198, - 1258, 1205, 1260, 1207, 1262, 1205, 1264, 2305, 1222, 1201, - 1216, 1209, 1213, 1226, 1229, 1228, 1226, 1276, 1229, 2305, - 2305, 1225, 1235, 1220, 1276, 1237, 1223, 1284, 1285, 1229, - 1239, 1288, 1245, 2305, 1237, 1237, 1239, 1241, 1294, 1237, - 2305, 1238, 2305, 1240, 2305, 2305, 1253, 1255, 1256, 2305, - 1243, 1251, 1303, 1252, 1284, 2305, 1306, 1256, 1303, 2305, - 1251, 1259, 1253, 1250, 1253, 1256, 1256, 1252, 1274, 1313, - 1266, 1278, 1281, 1269, 1264, 1324, 1272, 2305, 1267, 2305, - 1269, 1329, 1282, 1273, 1288, 1288, 1291, 1291, 1288, 1332, - - 1294, 2305, 1286, 2305, 1287, 2305, 1297, 2305, 1337, 1299, - 1300, 1297, 1341, 1289, 1304, 1344, 1306, 1298, 2305, 1295, - 1295, 1301, 1300, 1298, 1313, 1313, 2305, 2305, 1354, 1301, - 2305, 1318, 1303, 1303, 1305, 1311, 2305, 1366, 1308, 1318, - 1329, 1327, 1371, 1324, 1333, 2305, 1330, 1349, 2305, 1333, - 1318, 1378, 1379, 1336, 1341, 1323, 1383, 1384, 1385, 1381, - 1345, 1342, 1338, 1331, 1386, 1344, 2305, 1334, 1347, 1395, - 2305, 1333, 1392, 1356, 1352, 1396, 1345, 1350, 1348, 1407, - 1363, 1351, 1410, 1360, 1412, 1373, 1362, 1356, 1416, 1358, - 1367, 1360, 1374, 1377, 1422, 1364, 1381, 1377, 1367, 1382, - - 1366, 1424, 1425, 1426, 1373, 1428, 1391, 2305, 1391, 1378, - 1377, 1433, 2305, 1374, 1392, 1441, 1411, 1443, 1396, 2305, - 2305, 1387, 1398, 1447, 2305, 2305, 2305, 1393, 1398, 1396, - 1446, 1404, 1409, 1397, 1401, 1399, 1400, 2305, 1458, 1404, - 1455, 1398, 1403, 1464, 1413, 1423, 1424, 2305, 1469, 1423, - 1467, 2305, 1425, 2305, 1416, 1431, 1419, 2305, 1429, 1430, - 1431, 1480, 1438, 2305, 1477, 1443, 1419, 1437, 1438, 1447, - 1429, 1435, 1437, 1491, 1450, 1449, 1441, 1495, 1445, 1449, - 1454, 1447, 2305, 1500, 2305, 1449, 1502, 1444, 2305, 1447, - 1457, 1501, 1449, 1464, 1451, 1466, 1458, 1458, 1469, 2305, - - 1463, 1458, 1457, 1517, 1470, 2305, 1514, 1465, 1462, 2305, - 1476, 1463, 1479, 1481, 1526, 1479, 1476, 1484, 1478, 2305, - 1531, 1472, 1474, 1490, 1483, 1473, 1489, 1490, 1484, 1500, - 2305, 1490, 1542, 1501, 2305, 1485, 1492, 1546, 1542, 2305, - 1504, 2305, 1544, 1506, 1507, 1492, 1493, 1501, 1555, 1503, - 1552, 1507, 1519, 1516, 1507, 1514, 2305, 1511, 1516, 1514, - 1566, 1567, 1515, 1525, 1512, 2305, 1527, 1528, 1529, 1530, - 2305, 1520, 1532, 1577, 1534, 1579, 1521, 1529, 1523, 1531, - 1544, 2305, 1521, 1581, 1542, 2305, 1546, 1531, 1531, 1546, - 1539, 1538, 1549, 1536, 2305, 1552, 1542, 1598, 1556, 1547, - - 1559, 1550, 1559, 1561, 1565, 2305, 2305, 1558, 1548, 1608, - 1551, 1610, 1552, 1612, 1570, 1614, 2305, 1615, 2305, 1611, - 1573, 1570, 1575, 1562, 1621, 1564, 1569, 1560, 1625, 1578, - 1579, 1569, 1586, 1585, 1626, 1570, 1589, 2305, 1586, 1635, - 1592, 1593, 1638, 1595, 1598, 1585, 1594, 2305, 1643, 2305, - 1596, 2305, 1605, 2305, 2305, 1587, 1647, 1594, 1649, 1592, - 2305, 1611, 1652, 1611, 2305, 1602, 1592, 1651, 1617, 1610, - 1606, 1660, 1604, 1609, 2305, 1605, 1607, 2305, 1612, 1622, - 1607, 1616, 2305, 1617, 1611, 1623, 2305, 1619, 2305, 1629, - 1622, 2305, 1624, 1632, 1677, 1618, 1620, 1617, 1641, 2305, - - 1634, 1637, 1626, 1680, 1627, 1635, 1644, 1645, 1646, 1647, - 1640, 1635, 1636, 1640, 1652, 1697, 2305, 1643, 1655, 1700, - 1649, 1648, 1703, 1656, 1643, 1658, 1663, 1708, 1709, 1710, - 1711, 1668, 1713, 1714, 1664, 1658, 2305, 1674, 1718, 2305, - 1675, 1677, 2305, 1668, 1682, 1678, 1671, 2305, 2305, 2305, - 2305, 1725, 2305, 2305, 1682, 1727, 1688, 2305, 1729, 1730, - 1685, 1684, 1685, 1675, 2305, 1730, 2305, 1677, 2305, 2305, - 1737, 1679, 1695, 1740, 1701, 1698, 2305, 1739, 1688, 2305, - 1700, 1693, 1748, 1690, 1692, 1707, 1692, 2305, 1705, 1754, - 1755, 1703, 1705, 2305, 2305, 1699, 1715, 1760, 1761, 2305, - - 2305, 2305, 1767, 1772, 1777, 1782, 1787, 1792, 1797, 1800, - 1774, 1779, 1781, 1794 + 2327, 2328, 34, 2323, 145, 0, 207, 2328, 214, 221, + 13, 228, 2328, 2303, 118, 25, 2, 6, 2328, 2328, + 73, 11, 17, 2328, 2328, 2328, 104, 2311, 2264, 0, + 2301, 108, 2318, 24, 256, 2328, 67, 2267, 2287, 84, + 75, 2287, 88, 226, 91, 89, 284, 196, 203, 279, + 193, 224, 216, 60, 242, 2267, 286, 288, 314, 300, + 319, 2250, 204, 324, 356, 329, 2269, 0, 380, 400, + 420, 427, 406, 2328, 0, 2328, 385, 443, 238, 241, + 310, 269, 299, 314, 2328, 2266, 2307, 2328, 405, 2328, + + 419, 400, 2264, 2305, 326, 10, 262, 407, 224, 409, + 352, 206, 2304, 0, 472, 412, 2246, 415, 2254, 406, + 2250, 2239, 2240, 2245, 444, 2255, 2238, 2247, 327, 433, + 226, 2241, 2239, 445, 2228, 2286, 399, 2231, 2284, 2224, + 2247, 2244, 2244, 2238, 339, 2231, 2229, 2230, 2222, 2227, + 2221, 412, 2232, 2225, 2216, 2215, 2229, 462, 2267, 2214, + 443, 2226, 421, 2214, 482, 2215, 445, 2227, 2224, 2225, + 293, 2223, 2258, 2257, 477, 2203, 2203, 2207, 2203, 2195, + 2212, 2204, 0, 478, 493, 486, 481, 500, 505, 2203, + 2328, 0, 510, 2198, 2328, 498, 505, 2328, 2252, 508, + + 2251, 513, 2250, 515, 2249, 2328, 561, 2248, 525, 2207, + 2199, 2203, 2204, 2199, 2198, 2189, 501, 2240, 2234, 2198, + 2179, 2176, 2184, 2190, 2178, 2192, 2188, 2189, 2189, 2184, + 2176, 2178, 2162, 2166, 2179, 2181, 2178, 2170, 2160, 2163, + 2177, 2328, 2163, 2171, 80, 2156, 2155, 2207, 2154, 2164, + 2204, 505, 2163, 2202, 2147, 2149, 2160, 2198, 532, 2202, + 2137, 2152, 538, 2142, 2148, 2157, 2138, 2136, 2139, 2135, + 2141, 2132, 2131, 2144, 2137, 2127, 2138, 2142, 2141, 2135, + 220, 2142, 2137, 2129, 2119, 2134, 2129, 2133, 500, 2131, + 2117, 2123, 2130, 2112, 2113, 2116, 2113, 2112, 562, 2107, + + 2121, 2120, 2119, 2122, 2104, 2112, 543, 2328, 2328, 553, + 2328, 2328, 2099, 0, 520, 2146, 554, 2157, 2328, 556, + 2328, 2156, 2328, 2150, 606, 2328, 555, 2090, 2109, 2092, + 2109, 2097, 2149, 2104, 2099, 2102, 2097, 537, 2328, 2099, + 586, 2138, 2096, 2093, 2094, 584, 2098, 2138, 2086, 2081, + 2078, 2074, 2076, 2127, 2084, 2073, 2089, 2123, 2069, 607, + 2082, 2082, 2065, 2066, 2079, 2077, 2065, 2075, 2070, 2077, + 2072, 2057, 574, 2066, 2069, 2064, 577, 2063, 2059, 2109, + 422, 563, 2328, 2103, 2053, 2052, 2045, 2047, 2059, 2050, + 2039, 2056, 2045, 2050, 596, 2097, 2050, 589, 2047, 2050, + + 2050, 2048, 2037, 2037, 2049, 583, 2024, 2025, 2046, 595, + 2028, 2025, 2039, 2042, 2037, 2023, 2035, 2034, 2033, 2028, + 2031, 2030, 2029, 2028, 558, 2071, 2030, 2069, 2068, 2010, + 652, 2023, 2328, 2328, 2022, 0, 604, 2064, 2063, 2328, + 2062, 2328, 616, 664, 629, 2061, 2055, 2008, 2010, 1998, + 2328, 2003, 2009, 2012, 1995, 2010, 1997, 1996, 2328, 2006, + 610, 1997, 1994, 2006, 566, 1991, 1993, 2328, 1999, 1984, + 1986, 1997, 1995, 1990, 653, 1997, 1985, 1978, 2029, 2328, + 1976, 1992, 2026, 2030, 1986, 1980, 1982, 1983, 1967, 1984, + 2018, 1969, 1964, 1963, 1965, 1961, 1957, 556, 1976, 1950, + + 1957, 1962, 1955, 1971, 2005, 2009, 2328, 1954, 1950, 2006, + 1957, 1951, 1958, 1943, 1953, 1941, 1955, 1944, 1940, 1942, + 1937, 2328, 1994, 2328, 1936, 1935, 1928, 1945, 1984, 1983, + 1928, 1933, 1942, 1936, 1930, 1939, 688, 1976, 1938, 1921, + 1921, 1916, 1912, 1918, 1923, 1916, 1924, 1928, 1911, 1969, + 1910, 1962, 1907, 1908, 1907, 1919, 1908, 2328, 1918, 2328, + 2328, 1907, 2328, 1917, 1953, 1913, 0, 1956, 2328, 2328, + 2328, 636, 632, 691, 2328, 640, 1915, 1895, 1948, 1893, + 1946, 1891, 1890, 1889, 1896, 1889, 1897, 1900, 1882, 1882, + 1897, 1896, 622, 1895, 1894, 1878, 1893, 1875, 1922, 1889, + + 1927, 1871, 1873, 1885, 1885, 1884, 2328, 1869, 1866, 1924, + 1879, 1871, 1877, 1868, 1876, 2328, 1861, 1872, 1876, 1858, + 1870, 1871, 636, 1853, 1847, 1852, 1849, 1864, 1863, 1864, + 1843, 1853, 1859, 1902, 1857, 1856, 1848, 1839, 2328, 1840, + 1842, 2328, 1850, 1889, 1888, 16, 1849, 1886, 1831, 1832, + 1835, 1836, 1827, 2328, 1841, 1827, 695, 1819, 1823, 1839, + 1836, 1828, 1873, 1825, 1832, 1870, 2328, 1816, 1814, 1828, + 1812, 1826, 1829, 1863, 1862, 1861, 1860, 1805, 1858, 1857, + 2328, 1802, 1816, 698, 1817, 1816, 1813, 1813, 1850, 1810, + 1799, 1801, 2328, 2328, 663, 676, 1793, 1810, 1802, 1789, + + 1783, 1804, 1845, 669, 1839, 1799, 1837, 1836, 1788, 1782, + 1785, 1793, 1796, 1780, 1781, 1790, 1788, 1770, 1825, 1785, + 1775, 1783, 1821, 1782, 661, 1773, 1775, 92, 209, 269, + 294, 313, 2328, 380, 399, 451, 501, 507, 544, 551, + 579, 597, 588, 611, 654, 662, 659, 715, 716, 661, + 674, 663, 673, 720, 678, 728, 2328, 729, 685, 683, + 685, 681, 675, 730, 693, 682, 2328, 684, 696, 685, + 698, 700, 744, 687, 746, 689, 704, 2328, 698, 692, + 703, 688, 699, 712, 691, 697, 752, 716, 700, 700, + 713, 757, 758, 759, 706, 724, 719, 726, 721, 706, + + 718, 719, 725, 712, 2328, 777, 735, 737, 727, 739, + 729, 742, 733, 739, 783, 759, 746, 728, 735, 749, + 794, 744, 2328, 742, 757, 754, 740, 747, 746, 744, + 763, 760, 761, 749, 756, 757, 766, 770, 806, 768, + 758, 771, 757, 756, 763, 819, 760, 761, 767, 783, + 766, 820, 775, 2328, 785, 785, 778, 789, 787, 832, + 774, 776, 791, 792, 780, 778, 840, 797, 783, 786, + 2328, 2328, 802, 801, 802, 807, 795, 805, 807, 2328, + 2328, 807, 809, 796, 814, 801, 799, 817, 804, 804, + 855, 802, 806, 864, 2328, 865, 2328, 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, 2328, + 845, 846, 860, 851, 849, 899, 846, 861, 879, 887, + 856, 905, 867, 907, 2328, 873, 861, 856, 857, 869, + 876, 865, 866, 862, 880, 866, 867, 877, 886, 922, + 869, 887, 879, 875, 928, 935, 892, 883, 2328, 887, + 895, 897, 882, 898, 888, 900, 894, 941, 907, 891, + 892, 2328, 908, 911, 894, 896, 954, 897, 916, 2328, + 915, 918, 899, 917, 905, 958, 916, 912, 909, 962, + + 911, 964, 926, 912, 930, 929, 915, 930, 922, 918, + 936, 935, 922, 2328, 2328, 930, 977, 930, 2328, 938, + 941, 934, 987, 2328, 936, 942, 986, 937, 938, 950, + 944, 948, 946, 944, 955, 1000, 944, 949, 1003, 1004, + 948, 960, 2328, 948, 956, 954, 1005, 967, 954, 955, + 964, 976, 963, 961, 975, 976, 992, 997, 979, 984, + 967, 967, 969, 969, 989, 988, 979, 968, 985, 992, + 1035, 977, 997, 990, 994, 998, 981, 998, 989, 1044, + 991, 995, 2328, 1042, 991, 992, 992, 1013, 1010, 1050, + 999, 1017, 1018, 1004, 1012, 1021, 1001, 1016, 1023, 1065, + + 1066, 2328, 1019, 1068, 1069, 1011, 1021, 1031, 1034, 1017, + 1019, 1019, 1026, 1035, 1023, 1030, 1025, 1032, 1044, 1085, + 1032, 1031, 1048, 1089, 1039, 1043, 1041, 1039, 1034, 1095, + 1096, 1046, 1098, 1094, 1100, 1053, 2328, 1058, 1051, 1042, + 1061, 1055, 1050, 1060, 1057, 1062, 1058, 1070, 2328, 1055, + 1057, 2328, 2328, 1057, 1117, 1056, 1075, 1076, 1078, 1069, + 1123, 1124, 1077, 1062, 1076, 1084, 1066, 1071, 1110, 1101, + 1133, 1088, 1088, 1092, 1079, 1081, 1098, 1093, 1097, 1142, + 1090, 1094, 2328, 1091, 1087, 1104, 1084, 1105, 1095, 1146, + 1099, 2328, 1112, 1111, 1114, 1098, 1110, 1115, 1102, 1162, + + 1115, 1120, 1107, 1118, 1110, 1116, 1112, 1130, 1131, 1132, + 2328, 2328, 1130, 2328, 1132, 2328, 1117, 1128, 1119, 1138, + 1128, 1180, 1137, 1134, 1178, 1142, 1131, 1138, 1143, 1140, + 1146, 2328, 1139, 1131, 1192, 2328, 1193, 1140, 1147, 1191, + 1153, 2328, 2328, 1150, 2328, 1141, 2328, 1141, 1144, 1158, + 1163, 1146, 1157, 1206, 1163, 1164, 1165, 1205, 1161, 1212, + 1165, 1214, 2328, 1161, 1216, 1217, 1174, 1176, 2328, 2328, + 1159, 1221, 1217, 1181, 1165, 1177, 1196, 1227, 2328, 1184, + 1175, 1186, 1231, 1178, 1193, 1229, 1181, 2328, 1177, 1193, + 1181, 1195, 1196, 1193, 1237, 1200, 1190, 1200, 1206, 1194, + + 1194, 1249, 1245, 1251, 1208, 2328, 1210, 1210, 1212, 1205, + 1214, 1215, 1212, 1202, 1205, 1206, 1265, 1212, 1267, 1214, + 1269, 1212, 1271, 2328, 1229, 1208, 1223, 1217, 1220, 1233, + 1236, 1235, 1233, 1283, 1236, 2328, 2328, 1232, 1242, 1227, + 1283, 1244, 1230, 1291, 1292, 1236, 1246, 1295, 1252, 2328, + 1244, 1244, 1246, 1248, 1301, 1244, 2328, 1245, 2328, 1247, + 2328, 2328, 1260, 1262, 1263, 2328, 1250, 1258, 1310, 1259, + 1291, 2328, 1313, 1263, 1310, 2328, 1258, 1266, 1260, 1257, + 1260, 1263, 1263, 1259, 1281, 1320, 1273, 1285, 1288, 1276, + 1279, 1272, 1332, 1280, 2328, 1275, 2328, 1278, 1337, 1290, + + 1281, 1296, 1296, 1299, 1299, 1296, 1340, 1302, 2328, 1294, + 2328, 1295, 2328, 1305, 2328, 1345, 1307, 1308, 1305, 1349, + 1297, 1312, 1352, 1314, 1306, 2328, 1303, 1303, 1309, 1308, + 1306, 1321, 1321, 2328, 2328, 1362, 1309, 2328, 1326, 1311, + 1311, 1313, 1319, 2328, 1374, 1316, 1326, 1337, 1335, 1379, + 1332, 1341, 2328, 1338, 1357, 2328, 1341, 1326, 1386, 1387, + 1344, 1349, 1331, 1391, 1392, 1393, 1389, 1353, 1350, 1346, + 1339, 1394, 1352, 1353, 2328, 1343, 1356, 1404, 2328, 1342, + 1402, 1365, 1361, 1406, 1354, 1359, 1357, 1416, 1372, 1360, + 1419, 1369, 1421, 1382, 1371, 1365, 1425, 1367, 1376, 1369, + + 1383, 1386, 1431, 1373, 1390, 1386, 1376, 1391, 1375, 1433, + 1434, 1435, 1382, 1437, 1400, 2328, 1400, 1387, 1386, 1442, + 2328, 1383, 1401, 1450, 1420, 1452, 1405, 2328, 2328, 1396, + 1407, 1456, 2328, 2328, 2328, 1402, 1407, 1405, 1455, 1413, + 1418, 1406, 1422, 1411, 1409, 1410, 2328, 1468, 1414, 1465, + 1408, 1413, 1475, 1423, 1433, 1434, 2328, 1480, 1433, 1477, + 2328, 1435, 2328, 1426, 1441, 1429, 2328, 1439, 1440, 1441, + 1490, 1448, 2328, 1487, 1453, 1429, 1447, 1448, 1457, 1439, + 1445, 1447, 1501, 1460, 1459, 1451, 1505, 1455, 1459, 1464, + 1457, 2328, 1510, 2328, 1459, 1512, 1454, 2328, 1457, 1467, + + 1511, 1459, 1474, 1461, 1476, 1462, 1469, 1469, 1480, 2328, + 1474, 1469, 1468, 1528, 1481, 2328, 1525, 1476, 1473, 2328, + 1487, 1474, 1490, 1492, 1537, 1490, 1487, 1495, 1489, 2328, + 1542, 1483, 1485, 1501, 1494, 1484, 1500, 1501, 1495, 1511, + 2328, 1501, 1553, 1512, 2328, 1496, 1503, 1557, 1553, 2328, + 1515, 2328, 1555, 1517, 1518, 1503, 1504, 1512, 1566, 1514, + 1563, 1564, 1519, 1531, 1528, 1519, 1526, 2328, 1523, 1528, + 1526, 1578, 1579, 1527, 1537, 1524, 2328, 1539, 1540, 1541, + 1542, 2328, 1532, 1544, 1589, 1546, 1591, 1533, 1541, 1535, + 1543, 1556, 2328, 1533, 1593, 1554, 2328, 1558, 1543, 1543, + + 1558, 1551, 1550, 1561, 1548, 2328, 1564, 1552, 1555, 1611, + 1569, 1560, 1572, 1563, 1572, 1574, 1578, 2328, 2328, 1571, + 1561, 1621, 1564, 1623, 1565, 1625, 1583, 1627, 2328, 1628, + 2328, 1624, 1586, 1583, 1588, 1575, 1634, 1577, 1582, 1573, + 1638, 1591, 1592, 1582, 1599, 1598, 1639, 1583, 1602, 1603, + 2328, 1600, 1649, 1606, 1607, 1652, 1609, 1612, 1599, 1608, + 2328, 1657, 2328, 1610, 2328, 1619, 2328, 2328, 1601, 1661, + 1608, 1663, 1606, 2328, 1625, 1666, 1625, 2328, 1616, 1606, + 1665, 1631, 1624, 1620, 1674, 1617, 1619, 1624, 2328, 1620, + 1622, 2328, 1627, 1637, 1622, 1631, 2328, 1632, 1626, 1638, + + 2328, 1634, 2328, 1644, 1637, 2328, 1639, 1647, 1692, 1633, + 1635, 1632, 1656, 2328, 1643, 1650, 1653, 1642, 1696, 1643, + 1651, 1660, 1661, 1662, 1663, 1656, 1651, 1652, 1656, 1668, + 1713, 2328, 1659, 1671, 1716, 1665, 1667, 1665, 1720, 1673, + 1660, 1675, 1680, 1725, 1726, 1727, 1728, 1685, 1730, 1731, + 1681, 1675, 2328, 1691, 1735, 2328, 1692, 1677, 1695, 2328, + 1686, 1700, 1696, 1689, 2328, 2328, 2328, 2328, 1743, 2328, + 2328, 1700, 1745, 1706, 2328, 1747, 1689, 1749, 1704, 1703, + 1704, 1694, 2328, 1749, 2328, 1696, 2328, 1708, 2328, 1757, + 1699, 1715, 1760, 1721, 1718, 1710, 2328, 1760, 1709, 2328, + + 1721, 1714, 1769, 1717, 1712, 1714, 1729, 1714, 2328, 1775, + 1728, 1777, 1778, 1726, 2328, 1728, 2328, 2328, 1722, 1738, + 1783, 1784, 2328, 2328, 2328, 1790, 1795, 1800, 1805, 1810, + 1815, 1820, 1823, 1797, 1802, 1804, 1817 } ; -static const flex_int16_t yy_def[1915] = +static const flex_int16_t yy_def[1938] = { 0, - 1903, 1903, 1904, 1904, 1903, 1903, 1903, 1903, 1903, 1903, - 1902, 1902, 1902, 1902, 1902, 1905, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1906, - 1902, 1902, 1902, 1907, 15, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1908, 45, 45, 45, + 1926, 1926, 1927, 1927, 1926, 1926, 1926, 1926, 1926, 1926, + 1925, 1925, 1925, 1925, 1925, 1928, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1929, + 1925, 1925, 1925, 1930, 15, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1931, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1905, 1902, 1902, - 1902, 1902, 1902, 1902, 1909, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1906, 1902, 1907, 1902, + 45, 45, 45, 45, 45, 45, 45, 1928, 1925, 1925, + 1925, 1925, 1925, 1925, 1932, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1929, 1925, 1930, 1925, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1910, 45, 1908, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1933, 45, 1931, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1909, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1911, 45, 45, 1902, 45, 45, 1902, 45, 45, + 45, 45, 1932, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1934, 45, 45, 1925, 45, 45, 1925, 45, 45, - 45, 45, 45, 45, 1910, 1902, 1908, 45, 45, 45, + 45, 45, 45, 45, 1933, 1925, 1931, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1912, 45, 45, 45, 45, 1902, 45, - 1902, 45, 1902, 45, 1908, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, + 45, 45, 45, 45, 45, 45, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1935, 45, 45, 45, 45, 1925, 45, + 1925, 45, 1925, 45, 1931, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 1902, 1902, 1913, 45, 45, 45, 1902, - 45, 1902, 45, 1908, 45, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, + 45, 45, 1925, 1925, 1925, 1936, 45, 45, 45, 1925, + 45, 1925, 45, 1931, 45, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 1902, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 1902, - 1902, 45, 1902, 45, 45, 1902, 1914, 45, 1902, 1902, - 1902, 45, 45, 45, 1902, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 1925, + 1925, 45, 1925, 45, 45, 1925, 1937, 45, 1925, 1925, + 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 1902, 45, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 1902, - 45, 45, 45, 45, 45, 45, 45, 1902, 1902, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 1902, 45, 45, 45, 45, 45, + 1925, 1925, 45, 45, 45, 45, 45, 45, 45, 1925, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1902, 1902, 45, 45, 45, 1902, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, + 45, 45, 45, 1925, 1925, 45, 45, 45, 1925, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1902, 45, 45, 1902, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 1925, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 1902, 45, 1902, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 1902, 1902, 45, 1902, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 1902, 1902, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, - 1902, 45, 1902, 45, 1902, 1902, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 1902, + 1925, 1925, 45, 1925, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 1925, 1925, 45, 1925, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 1902, + 45, 45, 1925, 45, 45, 45, 45, 45, 1925, 1925, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 1902, 45, 1902, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 1902, 1902, 45, 45, - 1902, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 1902, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1925, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 45, 1925, 45, 1925, 45, + 1925, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 1925, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 1925, 45, 1925, 45, 1925, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 1925, 1925, 45, 45, 1925, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 1902, - 1902, 45, 45, 45, 1902, 1902, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 1902, 45, 1902, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 1902, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 1902, 45, 45, 45, 45, 1902, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 1902, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 1902, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 1925, 1925, 45, + 45, 45, 1925, 1925, 1925, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 1925, 45, 1925, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 1902, - 45, 1902, 45, 1902, 1902, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 1902, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1902, 45, 45, 1902, 45, 45, - 45, 45, 1902, 45, 45, 45, 1902, 45, 1902, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 1902, + 45, 1925, 45, 1925, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 1925, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 1925, 45, 45, 45, + + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1925, 45, 1925, 45, 1925, 45, 1925, 1925, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 1925, 45, 45, 45, 45, 1925, 45, 45, 45, + + 1925, 45, 1925, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 1902, - 45, 45, 1902, 45, 45, 45, 45, 1902, 1902, 1902, - 1902, 45, 1902, 1902, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 1902, 45, 1902, 45, 1902, 1902, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 1902, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 1902, 1902, 45, 45, 45, 45, 1902, - - 1902, 0, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902 + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 1925, 45, 45, 45, 1925, + 45, 45, 45, 45, 1925, 1925, 1925, 1925, 45, 1925, + 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 1925, 45, 1925, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 1925, + + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 1925, 45, 1925, 1925, 45, 45, + 45, 45, 1925, 1925, 0, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925 } ; -static const flex_int16_t yy_nxt[2379] = +static const flex_int16_t yy_nxt[2402] = { 0, - 1902, 13, 14, 13, 1902, 15, 16, 1902, 17, 18, + 1925, 13, 14, 13, 1925, 15, 16, 1925, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 766, 37, 14, 37, 85, 25, 26, 38, 100, - 1902, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 84, 767, 37, 14, 37, 85, 25, 26, 38, 100, + 1925, 27, 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, 197, 30, 13, 14, 13, 89, 90, 25, 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 767, 13, 14, 13, 33, 40, 101, 90, 91, 197, + 768, 13, 14, 13, 33, 40, 101, 90, 91, 197, 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 89, 39, 102, 25, 26, @@ -1405,7 +1411,7 @@ static const flex_int16_t yy_nxt[2379] = 106, 42, 41, 29, 108, 30, 111, 112, 92, 134, 41, 25, 31, 102, 135, 365, 87, 136, 87, 105, 32, 88, 88, 88, 88, 88, 33, 108, 106, 111, - 850, 112, 366, 34, 35, 44, 44, 44, 45, 45, + 852, 112, 366, 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, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, @@ -1413,13 +1419,13 @@ static const flex_int16_t yy_nxt[2379] = 58, 45, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 56, 45, 45, 45, 45, 45, 79, 851, + 76, 77, 56, 45, 45, 45, 45, 45, 79, 853, 80, 80, 80, 80, 80, 79, 102, 82, 82, 82, 82, 82, 204, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 105, 81, 118, 164, 109, 129, 116, 165, 81, 204, 81, 201, 117, 119, 110, 130, 120, 81, 121, 132, 122, 198, 184, 105, - 81, 185, 133, 109, 852, 233, 405, 81, 45, 406, + 81, 185, 133, 109, 854, 233, 405, 81, 45, 406, 131, 45, 45, 45, 201, 45, 45, 45, 110, 114, 137, 234, 45, 45, 184, 45, 45, 185, 199, 184, @@ -1427,132 +1433,132 @@ static const flex_int16_t yy_nxt[2379] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 123, 187, 45, 124, 125, 185, 45, 126, 127, 145, 45, 141, 142, 146, 294, 143, - 108, 147, 45, 853, 128, 144, 45, 186, 45, 115, + 108, 147, 45, 855, 128, 144, 45, 186, 45, 115, 153, 186, 295, 148, 111, 188, 196, 149, 154, 150, - 155, 151, 854, 152, 158, 156, 157, 159, 160, 166, + 155, 151, 856, 152, 158, 156, 157, 159, 160, 166, 173, 174, 228, 167, 229, 186, 168, 111, 161, 189, 109, 162, 196, 169, 170, 203, 251, 180, 171, 172, 110, 230, 181, 83, 83, 83, 83, 83, 88, 88, 88, 88, 88, 175, 242, 176, 81, 252, 177, 178, 100, 79, 203, 80, 80, 80, 80, 80, 110, 83, - 83, 83, 83, 83, 99, 179, 81, 855, 87, 81, + 83, 83, 83, 83, 99, 179, 81, 857, 87, 81, 87, 99, 81, 88, 88, 88, 88, 88, 79, 193, 82, 82, 82, 82, 82, 200, 202, 101, 243, 81, - 200, 193, 856, 81, 215, 81, 88, 88, 88, 88, + 200, 193, 858, 81, 215, 81, 88, 88, 88, 88, 88, 99, 211, 216, 217, 99, 275, 193, 208, 99, 276, 212, 508, 200, 202, 213, 81, 99, 259, 209, 231, 99, 509, 99, 192, 207, 207, 207, 207, 207, 222, 223, 278, 232, 207, 207, 207, 207, 207, 207, 224, 237, 271, 288, 238, 272, 273, 289, 239, 265, - 201, 290, 309, 307, 857, 373, 307, 207, 207, 207, + 201, 290, 309, 307, 859, 373, 307, 207, 207, 207, 207, 207, 207, 308, 266, 267, 268, 279, 280, 281, 308, 309, 315, 317, 320, 309, 318, 299, 282, 322, 283, 307, 284, 285, 310, 286, 324, 315, 386, 308, - 858, 335, 859, 414, 312, 315, 311, 320, 320, 336, + 860, 335, 861, 414, 312, 315, 311, 320, 320, 336, 437, 317, 322, 318, 337, 338, 415, 321, 374, 433, 327, 375, 425, 324, 325, 325, 325, 325, 325, 433, 439, 382, 456, 325, 325, 325, 325, 325, 325, 437, - 441, 459, 433, 860, 465, 437, 460, 441, 387, 457, + 441, 459, 433, 862, 465, 437, 460, 441, 387, 457, - 466, 522, 434, 439, 861, 630, 325, 325, 325, 325, + 466, 522, 434, 439, 863, 630, 325, 325, 325, 325, 325, 325, 480, 556, 597, 631, 557, 481, 441, 444, - 444, 444, 444, 444, 445, 510, 862, 598, 444, 444, + 444, 444, 444, 444, 445, 510, 864, 598, 444, 444, 444, 444, 444, 444, 496, 497, 498, 503, 526, 568, - 499, 535, 527, 504, 540, 536, 863, 572, 541, 573, - 864, 444, 444, 444, 444, 444, 444, 563, 607, 523, - 865, 588, 564, 608, 568, 482, 696, 568, 695, 589, + 499, 535, 527, 504, 540, 536, 865, 572, 541, 573, + 866, 444, 444, 444, 444, 444, 444, 563, 607, 523, + 867, 588, 564, 608, 568, 482, 696, 568, 695, 589, 483, 590, 591, 592, 572, 593, 573, 45, 45, 45, - 45, 45, 744, 745, 815, 866, 45, 45, 45, 45, - 45, 45, 574, 667, 696, 695, 694, 698, 668, 814, - - 777, 697, 867, 804, 699, 778, 868, 815, 869, 45, - 45, 45, 45, 45, 45, 805, 823, 824, 845, 825, - 870, 871, 846, 872, 873, 874, 847, 814, 875, 876, - 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 890, 779, 891, 892, 893, 894, 895, + 45, 45, 716, 745, 746, 717, 45, 45, 45, 45, + 45, 45, 574, 667, 696, 695, 694, 698, 668, 815, + + 778, 697, 816, 805, 699, 779, 868, 869, 870, 45, + 45, 45, 45, 45, 45, 806, 824, 825, 847, 826, + 871, 872, 848, 873, 874, 816, 849, 815, 875, 876, + 878, 879, 877, 880, 881, 882, 883, 884, 885, 886, + 887, 888, 889, 890, 780, 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, 918, 919, 922, 923, 924, 926, 917, 927, 920, - 928, 925, 929, 921, 930, 931, 932, 933, 934, 935, + 916, 917, 918, 920, 921, 924, 925, 926, 928, 919, + 929, 922, 930, 927, 931, 923, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 938, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 981, 982, 983, 984, 980, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 966, 967, 940, 968, 969, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 984, 985, + 986, 987, 983, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1006, 1007, 1008, 1005, 1009, 1010, 1011, 1012, 1013, 1014, + 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, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1035, 1036, 1037, 1038, 1039, 1041, 1042, 1043, 1044, 1045, - 1046, 1047, 1048, 1037, 1049, 1050, 1051, 1052, 1053, 1054, + 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, 1055, 1078, 1079, 1054, 1080, 1081, 1082, + 1075, 1076, 1077, 1078, 1079, 1080, 1058, 1081, 1082, 1057, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1101, 1102, 1103, 1104, - 1099, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1105, 1106, 1107, 1108, 1103, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, - 1124, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1124, 1125, 1126, 1127, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1128, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, - 1154, 1155, 1156, 1100, 1157, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1165, 1167, 1166, 1168, 1169, 1170, 1171, 1172, + 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1104, 1161, 1162, + 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1171, 1170, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, - 1165, 1166, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, - 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1211, - 1213, 1214, 1215, 1210, 1216, 1217, 1218, 1219, 1220, 1221, + 1193, 1194, 1195, 1196, 1169, 1170, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, + 1211, 1212, 1213, 1214, 1216, 1218, 1219, 1220, 1215, 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, 1212, 1255, 1256, 1257, 1258, 1259, 1260, + 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1217, 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, 1293, 1294, 1272, 1295, 1296, 1297, 1298, 1299, - 1273, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, + 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1277, + 1300, 1301, 1302, 1303, 1304, 1278, 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, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, - 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, + 1349, 1350, 1351, 1352, 1353, 1354, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, - 1370, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1365, 1394, 1395, 1396, 1397, 1398, 1399, - 1400, 1401, 1349, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1413, 1371, 1414, 1415, 1416, 1417, 1418, - 1412, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, + 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1371, + 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1355, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1377, 1420, 1421, 1422, 1423, 1424, 1425, 1419, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, - 1468, 1469, 1470, 1448, 1471, 1472, 1473, 1474, 1475, 1476, - 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, + 1455, 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, 1531, 1532, 1533, 1534, 1535, 1536, 1537, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1538, 1539, 1540, 1530, 1541, 1542, 1543, 1517, 1544, 1545, - 1546, 1547, 1548, 1550, 1551, 1552, 1553, 1554, 1555, 1556, - 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, + 1537, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, + 1548, 1538, 1549, 1550, 1551, 1525, 1552, 1553, 1554, 1555, + 1556, 1557, 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, 1602, 1603, 1604, 1605, 1601, 1606, - 1549, 1607, 1608, 1609, 1610, 1584, 1611, 1612, 1613, 1614, - 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, + 1607, 1608, 1609, 1610, 1612, 1613, 1614, 1615, 1611, 1558, + 1616, 1617, 1618, 1619, 1593, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, @@ -1581,79 +1587,83 @@ static const flex_int16_t yy_nxt[2379] = 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1883, 1882, 1884, + 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1898, 1899, 1900, 1901, 12, 12, 12, - 12, 12, 36, 36, 36, 36, 36, 78, 314, 78, - 78, 78, 97, 436, 97, 567, 97, 99, 99, 99, - 99, 99, 113, 113, 113, 113, 113, 183, 99, 183, - - 183, 183, 205, 205, 205, 849, 848, 844, 843, 842, - 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, - 831, 830, 829, 828, 827, 826, 822, 821, 820, 819, - 818, 817, 816, 813, 812, 811, 810, 809, 808, 807, - 806, 803, 802, 801, 800, 799, 798, 797, 796, 795, - 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, - 784, 783, 782, 781, 780, 776, 775, 774, 773, 772, - 771, 770, 769, 768, 765, 764, 763, 762, 761, 760, - 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, - 749, 748, 747, 746, 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, - 707, 706, 705, 704, 703, 702, 701, 700, 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, 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, 629, - - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, - 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, - 606, 605, 604, 603, 602, 601, 600, 599, 596, 595, - 594, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 576, 575, 571, 570, 569, 566, 565, 562, - 561, 560, 559, 558, 555, 554, 553, 552, 551, 550, - 549, 548, 547, 546, 545, 544, 543, 542, 539, 538, - 537, 534, 533, 532, 531, 530, 529, 528, 525, 524, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 511, 507, 506, 505, 502, 501, 500, 495, 494, 493, - - 492, 491, 490, 489, 488, 487, 486, 485, 484, 479, - 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, - 468, 467, 464, 463, 462, 461, 458, 455, 454, 453, - 452, 451, 450, 449, 448, 447, 446, 443, 442, 440, - 438, 435, 432, 431, 430, 429, 428, 427, 426, 424, - 423, 422, 421, 420, 419, 418, 417, 416, 413, 412, - 411, 410, 409, 408, 407, 404, 403, 402, 401, 400, - 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, - 389, 388, 385, 384, 383, 381, 380, 379, 378, 377, - 376, 372, 371, 370, 369, 368, 367, 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, - 326, 206, 323, 321, 319, 316, 313, 306, 305, 304, - 303, 302, 301, 300, 298, 297, 296, 293, 292, 291, - 287, 277, 274, 270, 269, 264, 263, 262, 261, 260, - 258, 257, 256, 255, 254, 253, 250, 249, 248, 247, - 246, 245, 244, 241, 240, 236, 235, 227, 226, 225, - 221, 220, 219, 218, 214, 210, 206, 195, 194, 191, - 190, 182, 163, 140, 107, 104, 103, 43, 98, 96, - - 95, 86, 43, 1902, 11, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902 + 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1903, 1902, 1904, + 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, + 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, + 12, 12, 12, 12, 12, 36, 36, 36, 36, 36, + + 78, 314, 78, 78, 78, 97, 436, 97, 567, 97, + 99, 99, 99, 99, 99, 113, 113, 113, 113, 113, + 183, 99, 183, 183, 183, 205, 205, 205, 851, 850, + 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, + 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, + 823, 822, 821, 820, 819, 818, 817, 814, 813, 812, + 811, 810, 809, 808, 807, 804, 803, 802, 801, 800, + 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, + 789, 788, 787, 786, 785, 784, 783, 782, 781, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 766, 765, + + 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, + 754, 753, 752, 751, 750, 749, 748, 747, 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, 715, 714, 713, 712, 711, + 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, + 700, 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, 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, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 611, 610, 609, 606, 605, 604, 603, 602, 601, 600, + 599, 596, 595, 594, 587, 586, 585, 584, 583, 582, + 581, 580, 579, 578, 577, 576, 575, 571, 570, 569, + 566, 565, 562, 561, 560, 559, 558, 555, 554, 553, + 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, + 542, 539, 538, 537, 534, 533, 532, 531, 530, 529, + + 528, 525, 524, 521, 520, 519, 518, 517, 516, 515, + 514, 513, 512, 511, 507, 506, 505, 502, 501, 500, + 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, + 485, 484, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 468, 467, 464, 463, 462, 461, 458, + 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, + 443, 442, 440, 438, 435, 432, 431, 430, 429, 428, + 427, 426, 424, 423, 422, 421, 420, 419, 418, 417, + 416, 413, 412, 411, 410, 409, 408, 407, 404, 403, + 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, + + 392, 391, 390, 389, 388, 385, 384, 383, 381, 380, + 379, 378, 377, 376, 372, 371, 370, 369, 368, 367, + 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, 326, 206, 323, 321, 319, 316, 313, + 306, 305, 304, 303, 302, 301, 300, 298, 297, 296, + 293, 292, 291, 287, 277, 274, 270, 269, 264, 263, + 262, 261, 260, 258, 257, 256, 255, 254, 253, 250, + 249, 248, 247, 246, 245, 244, 241, 240, 236, 235, + + 227, 226, 225, 221, 220, 219, 218, 214, 210, 206, + 195, 194, 191, 190, 182, 163, 140, 107, 104, 103, + 43, 98, 96, 95, 86, 43, 1925, 11, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + + 1925 } ; -static const flex_int16_t yy_chk[2379] = +static const flex_int16_t yy_chk[2402] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1670,7 +1680,7 @@ static const flex_int16_t yy_chk[2379] = 51, 42, 9, 2, 53, 2, 55, 56, 31, 64, 10, 2, 2, 47, 64, 245, 25, 64, 25, 50, 2, 25, 25, 25, 25, 25, 2, 53, 51, 55, - 727, 56, 245, 2, 2, 15, 15, 15, 15, 15, + 728, 56, 245, 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, @@ -1678,13 +1688,13 @@ static const flex_int16_t yy_chk[2379] = 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, 728, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 729, 17, 17, 17, 17, 17, 19, 58, 19, 19, 19, 19, 19, 112, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 62, 20, 59, 73, 54, 61, 58, 73, 22, 112, 17, 109, 58, 59, 54, 61, 59, 19, 59, 63, 59, 107, 89, 62, - 20, 90, 63, 54, 729, 131, 281, 22, 45, 281, + 20, 90, 63, 54, 730, 131, 281, 22, 45, 281, 62, 45, 45, 45, 109, 45, 45, 45, 54, 57, 65, 131, 45, 45, 89, 45, 57, 90, 107, 92, @@ -1692,230 +1702,234 @@ static const flex_int16_t yy_chk[2379] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 60, 92, 57, 60, 60, 93, 57, 60, 60, 68, 57, 67, 67, 68, 171, 67, - 69, 68, 57, 730, 60, 67, 57, 91, 57, 57, + 69, 68, 57, 731, 60, 67, 57, 91, 57, 57, 70, 94, 171, 68, 76, 93, 105, 68, 70, 69, - 70, 69, 731, 69, 71, 70, 70, 71, 71, 74, + 70, 69, 732, 69, 71, 70, 70, 71, 71, 74, 75, 75, 129, 74, 129, 91, 74, 76, 71, 94, 75, 71, 105, 74, 74, 111, 145, 76, 74, 74, 75, 129, 76, 79, 79, 79, 79, 79, 87, 87, 87, 87, 87, 75, 137, 75, 79, 145, 75, 75, 99, 80, 111, 80, 80, 80, 80, 80, 75, 83, - 83, 83, 83, 83, 101, 75, 80, 733, 81, 79, + 83, 83, 83, 83, 101, 75, 80, 734, 81, 79, 81, 101, 83, 81, 81, 81, 81, 81, 82, 102, 82, 82, 82, 82, 82, 108, 110, 99, 137, 80, - 152, 116, 734, 82, 120, 83, 88, 88, 88, 88, + 152, 116, 735, 82, 120, 83, 88, 88, 88, 88, 88, 101, 118, 120, 120, 101, 163, 102, 116, 101, 163, 118, 381, 108, 110, 118, 82, 101, 152, 116, 130, 101, 381, 101, 101, 115, 115, 115, 115, 115, 125, 125, 165, 130, 115, 115, 115, 115, 115, 115, 125, 134, 161, 167, 134, 161, 161, 167, 134, 158, - 175, 167, 186, 184, 735, 252, 187, 115, 115, 115, + 175, 167, 186, 184, 736, 252, 187, 115, 115, 115, 115, 115, 115, 185, 158, 158, 158, 165, 165, 165, 188, 189, 193, 196, 200, 186, 197, 175, 165, 202, 165, 184, 165, 165, 187, 165, 204, 209, 263, 185, - 736, 217, 737, 289, 189, 193, 188, 200, 259, 217, + 737, 217, 738, 289, 189, 193, 188, 200, 259, 217, 315, 196, 202, 197, 217, 217, 289, 299, 252, 307, 209, 252, 299, 204, 207, 207, 207, 207, 207, 310, 317, 259, 338, 207, 207, 207, 207, 207, 207, 315, - 320, 341, 307, 738, 346, 327, 341, 382, 263, 338, + 320, 341, 307, 739, 346, 327, 341, 382, 263, 338, - 346, 395, 310, 317, 739, 498, 207, 207, 207, 207, + 346, 395, 310, 317, 740, 498, 207, 207, 207, 207, 207, 207, 360, 425, 465, 498, 425, 360, 320, 325, - 325, 325, 325, 325, 327, 382, 740, 465, 325, 325, + 325, 325, 325, 325, 327, 382, 741, 465, 325, 325, 325, 325, 325, 325, 373, 373, 373, 377, 398, 437, - 373, 406, 398, 377, 410, 406, 741, 443, 410, 443, - 742, 325, 325, 325, 325, 325, 325, 431, 475, 395, - 743, 461, 431, 475, 445, 360, 573, 437, 572, 461, + 373, 406, 398, 377, 410, 406, 742, 443, 410, 443, + 743, 325, 325, 325, 325, 325, 325, 431, 475, 395, + 744, 461, 431, 475, 445, 360, 573, 437, 572, 461, 360, 461, 461, 461, 443, 461, 443, 444, 444, 444, - 444, 444, 623, 623, 696, 744, 444, 444, 444, 444, + 444, 444, 593, 623, 623, 593, 444, 444, 444, 444, 444, 444, 445, 537, 573, 572, 574, 576, 537, 695, - 657, 574, 745, 684, 576, 657, 746, 696, 747, 444, - 444, 444, 444, 444, 444, 684, 704, 704, 724, 704, - 748, 749, 724, 750, 751, 752, 724, 695, 752, 753, - 754, 755, 757, 758, 759, 760, 761, 762, 763, 764, - 765, 767, 768, 769, 657, 770, 771, 772, 773, 774, - 775, 776, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, - 796, 797, 798, 799, 800, 801, 802, 796, 803, 798, - 805, 801, 806, 798, 807, 808, 809, 810, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, 821, 823, - - 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, - 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 815, 844, 845, 846, 847, 848, 849, 850, 851, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 858, - 863, 864, 865, 866, 867, 868, 871, 872, 873, 874, - 875, 876, 877, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 886, 890, 891, 892, 894, 896, 897, - 898, 899, 900, 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, - - 929, 930, 931, 919, 932, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 942, 944, 945, 946, 947, 948, - 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, - 959, 960, 961, 938, 962, 963, 937, 964, 965, 967, - 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, - 978, 980, 981, 982, 983, 984, 985, 986, 988, 989, - 984, 990, 991, 992, 993, 994, 995, 996, 997, 998, - 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, - 1009, 1010, 1013, 1014, 1015, 1017, 1018, 1019, 1020, 1022, - 1008, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1041, 1042, - 1043, 1044, 1045, 984, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1056, 1055, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1080, 1081, 1082, - 1054, 1055, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1099, 1100, 1101, - 1102, 1103, 1104, 1100, 1105, 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, 1135, 1136, 1137, 1138, 1139, 1140, 1141, - 1142, 1143, 1144, 1101, 1146, 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, 1178, 1180, 1181, 1182, 1183, 1184, - 1185, 1186, 1188, 1189, 1165, 1190, 1191, 1192, 1193, 1194, - 1166, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, - 1204, 1205, 1208, 1210, 1212, 1213, 1214, 1215, 1216, 1217, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1228, - 1229, 1230, 1232, 1233, 1234, 1235, 1236, 1239, 1241, 1243, - - 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, - 1254, 1255, 1256, 1257, 1259, 1260, 1261, 1262, 1263, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1284, 1285, 1286, 1287, 1288, - 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1301, 1302, 1272, 1303, 1304, 1305, 1306, 1307, 1308, - 1309, 1310, 1253, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1319, 1320, 1321, 1322, 1278, 1323, 1324, 1325, 1326, 1327, - 1321, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1339, 1340, 1341, 1342, 1343, 1345, 1346, 1347, 1348, 1349, - - 1350, 1352, 1354, 1357, 1358, 1359, 1361, 1362, 1363, 1364, - 1365, 1367, 1368, 1369, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1389, 1391, 1365, 1392, 1393, 1394, 1395, 1396, 1397, - 1398, 1399, 1400, 1401, 1403, 1405, 1407, 1409, 1410, 1411, - 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1420, 1421, 1422, - 1423, 1424, 1425, 1426, 1429, 1430, 1432, 1433, 1434, 1435, - 1436, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1447, - 1448, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, - 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1468, 1469, - - 1470, 1472, 1473, 1461, 1474, 1475, 1476, 1448, 1477, 1478, - 1479, 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, - 1509, 1510, 1511, 1512, 1514, 1515, 1516, 1517, 1518, 1519, - 1522, 1523, 1524, 1528, 1529, 1530, 1531, 1532, 1533, 1534, - 1535, 1536, 1537, 1539, 1540, 1541, 1542, 1543, 1539, 1544, - 1480, 1545, 1546, 1547, 1549, 1517, 1550, 1551, 1553, 1555, - 1556, 1557, 1559, 1560, 1561, 1562, 1563, 1565, 1566, 1567, - 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, - - 1578, 1579, 1580, 1581, 1582, 1584, 1586, 1587, 1588, 1590, - 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, - 1602, 1603, 1604, 1605, 1607, 1608, 1609, 1611, 1612, 1613, - 1614, 1615, 1616, 1617, 1618, 1619, 1621, 1622, 1623, 1624, - 1625, 1626, 1627, 1628, 1629, 1630, 1632, 1633, 1634, 1636, - 1637, 1638, 1639, 1641, 1643, 1644, 1645, 1646, 1647, 1648, - 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1658, 1659, - 1660, 1661, 1662, 1663, 1664, 1665, 1667, 1668, 1669, 1670, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1683, 1684, 1685, 1687, 1688, 1689, 1690, 1691, 1692, 1693, - - 1694, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, - 1718, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, - 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1739, - 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1751, - 1753, 1756, 1757, 1758, 1759, 1760, 1762, 1763, 1764, 1766, - 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1776, 1777, - 1779, 1780, 1781, 1782, 1784, 1785, 1786, 1788, 1790, 1791, - 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1801, 1802, 1803, - 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, - - 1814, 1815, 1816, 1818, 1819, 1820, 1821, 1822, 1823, 1824, - 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, - 1835, 1836, 1838, 1839, 1841, 1842, 1844, 1845, 1846, 1847, - 1852, 1855, 1856, 1857, 1859, 1860, 1861, 1862, 1863, 1864, - 1866, 1868, 1871, 1872, 1873, 1874, 1875, 1876, 1875, 1878, - 1879, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1889, 1890, - 1891, 1892, 1893, 1896, 1897, 1898, 1899, 1903, 1903, 1903, - 1903, 1903, 1904, 1904, 1904, 1904, 1904, 1905, 1911, 1905, - 1905, 1905, 1906, 1912, 1906, 1913, 1906, 1907, 1907, 1907, - 1907, 1907, 1908, 1908, 1908, 1908, 1908, 1909, 1914, 1909, - - 1909, 1909, 1910, 1910, 1910, 726, 725, 723, 722, 721, - 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, - 710, 709, 708, 707, 706, 705, 703, 702, 701, 700, - 699, 698, 697, 692, 691, 690, 689, 688, 687, 686, - 685, 683, 682, 680, 679, 678, 677, 676, 675, 674, - 673, 672, 671, 670, 669, 668, 666, 665, 664, 663, - 662, 661, 660, 659, 658, 656, 655, 653, 652, 651, - 650, 649, 648, 647, 645, 644, 643, 641, 640, 638, - 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, - 627, 626, 625, 624, 622, 621, 620, 619, 618, 617, - - 615, 614, 613, 612, 611, 610, 609, 608, 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, 580, 579, 578, 577, 568, 566, - 565, 564, 562, 559, 557, 556, 555, 554, 553, 552, - 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, - 541, 540, 539, 538, 536, 535, 534, 533, 532, 531, - 530, 529, 528, 527, 526, 525, 523, 521, 520, 519, - 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, - 508, 506, 505, 504, 503, 502, 501, 500, 499, 497, - - 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 479, 478, 477, 476, - 474, 473, 472, 471, 470, 469, 467, 466, 464, 463, - 462, 460, 458, 457, 456, 455, 454, 453, 452, 450, - 449, 448, 447, 446, 441, 439, 438, 435, 432, 430, - 429, 428, 427, 426, 424, 423, 422, 421, 420, 419, - 418, 417, 416, 415, 414, 413, 412, 411, 409, 408, - 407, 405, 404, 403, 402, 401, 400, 399, 397, 396, - 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, - 384, 380, 379, 378, 376, 375, 374, 372, 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, 328, 324, 322, 318, - 316, 313, 306, 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, 264, 262, 261, 260, 258, 257, 256, 255, 254, - 253, 251, 250, 249, 248, 247, 246, 244, 243, 241, - - 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, - 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, - 220, 219, 218, 216, 215, 214, 213, 212, 211, 210, - 208, 205, 203, 201, 199, 194, 190, 182, 181, 180, - 179, 178, 177, 176, 174, 173, 172, 170, 169, 168, - 166, 164, 162, 160, 159, 157, 156, 155, 154, 153, - 151, 150, 149, 148, 147, 146, 144, 143, 142, 141, - 140, 139, 138, 136, 135, 133, 132, 128, 127, 126, - 124, 123, 122, 121, 119, 117, 113, 104, 103, 97, - 96, 77, 72, 66, 52, 49, 48, 43, 41, 39, - - 38, 24, 14, 11, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902 + 657, 574, 696, 684, 576, 657, 745, 746, 747, 444, + 444, 444, 444, 444, 444, 684, 704, 704, 725, 704, + 748, 749, 725, 750, 751, 696, 725, 695, 752, 753, + 754, 755, 753, 756, 758, 759, 760, 761, 762, 763, + 764, 765, 766, 768, 657, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, + 795, 796, 797, 798, 799, 800, 801, 802, 803, 797, + 804, 799, 806, 802, 807, 799, 808, 809, 810, 811, + 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + + 822, 824, 825, 826, 827, 828, 829, 830, 831, 832, + 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, + 843, 844, 816, 845, 846, 847, 848, 849, 850, 851, + 852, 853, 855, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 860, 865, 866, 867, 868, 869, 870, 873, + 874, 875, 876, 877, 878, 879, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 888, 892, 893, 894, + 896, 898, 899, 900, 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, 931, 932, 933, 921, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 943, 944, 946, 947, + 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, + 958, 959, 960, 961, 962, 963, 940, 964, 965, 939, + 966, 967, 968, 970, 971, 972, 973, 974, 975, 976, + 977, 978, 979, 980, 981, 983, 984, 985, 986, 987, + 988, 989, 991, 992, 987, 993, 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, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 1042, 1044, 1045, 1046, 1047, 1048, 987, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1059, 1058, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1084, 1085, 1057, 1058, 1086, 1087, 1088, 1089, + 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1103, 1104, 1105, 1106, 1107, 1108, 1104, 1109, + 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, + + 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1105, 1150, + 1151, 1154, 1155, 1156, 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, 1182, + 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1193, 1169, + 1194, 1195, 1196, 1197, 1198, 1170, 1199, 1200, 1201, 1202, + 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1213, 1215, + 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, + 1227, 1228, 1229, 1230, 1231, 1233, 1234, 1235, 1237, 1238, + + 1239, 1240, 1241, 1244, 1246, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, + 1264, 1265, 1266, 1267, 1268, 1271, 1272, 1273, 1274, 1275, + 1276, 1277, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1286, + 1287, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1307, 1277, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1258, 1316, + 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1325, 1326, 1327, + 1283, 1328, 1329, 1330, 1331, 1332, 1333, 1327, 1334, 1335, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + + 1348, 1349, 1351, 1352, 1353, 1354, 1355, 1356, 1358, 1360, + 1363, 1364, 1365, 1367, 1368, 1369, 1370, 1371, 1373, 1374, + 1375, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, + 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1396, + 1371, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, + 1407, 1408, 1410, 1412, 1414, 1416, 1417, 1418, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1427, 1428, 1429, 1430, 1431, + 1432, 1433, 1436, 1437, 1439, 1440, 1441, 1442, 1443, 1445, + 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1454, 1455, 1457, + 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1476, 1477, 1478, + 1480, 1468, 1481, 1482, 1483, 1455, 1484, 1485, 1486, 1487, + 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, 1517, + 1518, 1519, 1520, 1522, 1523, 1524, 1525, 1526, 1527, 1530, + 1531, 1532, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1546, 1548, 1549, 1550, 1551, 1552, 1548, 1488, + 1553, 1554, 1555, 1556, 1525, 1558, 1559, 1560, 1562, 1564, + 1565, 1566, 1568, 1569, 1570, 1571, 1572, 1574, 1575, 1576, + + 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, + 1587, 1588, 1589, 1590, 1591, 1593, 1595, 1596, 1597, 1599, + 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, + 1611, 1612, 1613, 1614, 1615, 1617, 1618, 1619, 1621, 1622, + 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1631, 1632, 1633, + 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1642, 1643, 1644, + 1646, 1647, 1648, 1649, 1651, 1653, 1654, 1655, 1656, 1657, + 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, + 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1678, 1679, + 1680, 1681, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, + + 1691, 1692, 1694, 1695, 1696, 1698, 1699, 1700, 1701, 1702, + 1703, 1704, 1705, 1707, 1708, 1709, 1710, 1711, 1712, 1713, + 1714, 1715, 1716, 1717, 1720, 1721, 1722, 1723, 1724, 1725, + 1726, 1727, 1728, 1730, 1732, 1733, 1734, 1735, 1736, 1737, + 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, + 1748, 1749, 1750, 1752, 1753, 1754, 1755, 1756, 1757, 1758, + 1759, 1760, 1762, 1764, 1766, 1769, 1770, 1771, 1772, 1773, + 1775, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, + 1786, 1787, 1788, 1790, 1791, 1793, 1794, 1795, 1796, 1798, + 1799, 1800, 1802, 1804, 1805, 1807, 1808, 1809, 1810, 1811, + + 1812, 1813, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, + 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1833, + 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, + 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1854, + 1855, 1857, 1858, 1859, 1861, 1862, 1863, 1864, 1869, 1872, + 1873, 1874, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1884, + 1886, 1888, 1890, 1891, 1892, 1893, 1894, 1895, 1894, 1896, + 1898, 1899, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, + 1910, 1911, 1912, 1913, 1914, 1916, 1919, 1920, 1921, 1922, + 1926, 1926, 1926, 1926, 1926, 1927, 1927, 1927, 1927, 1927, + + 1928, 1934, 1928, 1928, 1928, 1929, 1935, 1929, 1936, 1929, + 1930, 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1931, + 1932, 1937, 1932, 1932, 1932, 1933, 1933, 1933, 727, 726, + 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, + 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, + 703, 702, 701, 700, 699, 698, 697, 692, 691, 690, + 689, 688, 687, 686, 685, 683, 682, 680, 679, 678, + 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, + 666, 665, 664, 663, 662, 661, 660, 659, 658, 656, + 655, 653, 652, 651, 650, 649, 648, 647, 645, 644, + + 643, 641, 640, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 626, 625, 624, 622, 621, + 620, 619, 618, 617, 615, 614, 613, 612, 611, 610, + 609, 608, 606, 605, 604, 603, 602, 601, 600, 599, + 598, 597, 596, 595, 594, 592, 591, 590, 589, 588, + 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, + 577, 568, 566, 565, 564, 562, 559, 557, 556, 555, + 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 542, 541, 540, 539, 538, 536, 535, 534, + 533, 532, 531, 530, 529, 528, 527, 526, 525, 523, + + 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, + 511, 510, 509, 508, 506, 505, 504, 503, 502, 501, + 500, 499, 497, 496, 495, 494, 493, 492, 491, 490, + 489, 488, 487, 486, 485, 484, 483, 482, 481, 479, + 478, 477, 476, 474, 473, 472, 471, 470, 469, 467, + 466, 464, 463, 462, 460, 458, 457, 456, 455, 454, + 453, 452, 450, 449, 448, 447, 446, 441, 439, 438, + 435, 432, 430, 429, 428, 427, 426, 424, 423, 422, + 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, + 411, 409, 408, 407, 405, 404, 403, 402, 401, 400, + + 399, 397, 396, 394, 393, 392, 391, 390, 389, 388, + 387, 386, 385, 384, 380, 379, 378, 376, 375, 374, + 372, 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, 328, + 324, 322, 318, 316, 313, 306, 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, 264, 262, 261, 260, 258, 257, + 256, 255, 254, 253, 251, 250, 249, 248, 247, 246, + 244, 243, 241, 240, 239, 238, 237, 236, 235, 234, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 219, 218, 216, 215, 214, 213, + 212, 211, 210, 208, 205, 203, 201, 199, 194, 190, + 182, 181, 180, 179, 178, 177, 176, 174, 173, 172, + 170, 169, 168, 166, 164, 162, 160, 159, 157, 156, + 155, 154, 153, 151, 150, 149, 148, 147, 146, 144, + 143, 142, 141, 140, 139, 138, 136, 135, 133, 132, + + 128, 127, 126, 124, 123, 122, 121, 119, 117, 113, + 104, 103, 97, 96, 77, 72, 66, 52, 49, 48, + 43, 41, 39, 38, 24, 14, 11, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + + 1925 } ; static yy_state_type yy_last_accepting_state; @@ -1924,7 +1938,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[208] = +static const flex_int16_t yy_rule_linenum[209] = { 0, 147, 149, 151, 156, 157, 162, 163, 164, 176, 179, 184, 191, 200, 209, 218, 227, 236, 245, 254, 263, @@ -1935,20 +1949,20 @@ static const flex_int16_t yy_rule_linenum[208] = 662, 673, 684, 695, 706, 717, 728, 739, 750, 761, 772, 783, 792, 803, 814, 825, 836, 847, 858, 869, 880, 889, 898, 907, 916, 927, 938, 949, 960, 971, - 982, 993, 1003, 1014, 1023, 1032, 1047, 1063, 1072, 1081, - - 1090, 1099, 1108, 1117, 1126, 1135, 1144, 1153, 1177, 1201, - 1210, 1220, 1230, 1239, 1249, 1260, 1269, 1278, 1287, 1296, - 1305, 1315, 1324, 1333, 1342, 1353, 1364, 1375, 1386, 1397, - 1406, 1415, 1424, 1433, 1442, 1451, 1460, 1469, 1478, 1488, - 1500, 1513, 1522, 1531, 1541, 1551, 1560, 1571, 1581, 1590, - 1600, 1610, 1619, 1628, 1637, 1646, 1656, 1665, 1674, 1683, - 1692, 1701, 1710, 1719, 1728, 1737, 1746, 1755, 1764, 1773, - 1782, 1791, 1800, 1809, 1818, 1827, 1836, 1845, 1854, 1863, - 1872, 1881, 1890, 1899, 1908, 1917, 1926, 1935, 1944, 1953, - 2052, 2057, 2062, 2067, 2068, 2069, 2070, 2071, 2072, 2074, - - 2092, 2105, 2110, 2114, 2116, 2118, 2120 + 982, 993, 1005, 1015, 1026, 1035, 1044, 1059, 1075, 1084, + + 1093, 1102, 1111, 1120, 1129, 1138, 1147, 1156, 1165, 1189, + 1213, 1222, 1232, 1242, 1251, 1261, 1272, 1281, 1290, 1299, + 1308, 1317, 1327, 1336, 1345, 1354, 1365, 1376, 1387, 1398, + 1409, 1418, 1427, 1436, 1445, 1454, 1463, 1472, 1481, 1490, + 1500, 1512, 1525, 1534, 1543, 1553, 1563, 1572, 1583, 1593, + 1602, 1612, 1622, 1631, 1640, 1649, 1658, 1668, 1677, 1686, + 1695, 1704, 1713, 1722, 1731, 1740, 1749, 1758, 1767, 1776, + 1785, 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857, 1866, + 1875, 1884, 1893, 1902, 1911, 1920, 1929, 1938, 1947, 1956, + 1965, 2064, 2069, 2074, 2079, 2080, 2081, 2082, 2083, 2084, + + 2086, 2104, 2117, 2122, 2126, 2128, 2130, 2132 } ; /* The intent behind this definition is that it'll catch @@ -2001,7 +2015,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2004 "dhcp6_lexer.cc" +#line 2018 "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 @@ -2027,8 +2041,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 2030 "dhcp6_lexer.cc" -#line 2031 "dhcp6_lexer.cc" +#line 2044 "dhcp6_lexer.cc" +#line 2045 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2358,7 +2372,7 @@ YY_DECL } -#line 2361 "dhcp6_lexer.cc" +#line 2375 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2387,13 +2401,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 >= 1903 ) + if ( yy_current_state >= 1926 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1902 ); + while ( yy_current_state != 1925 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2412,13 +2426,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 < 208 ) + else if ( yy_act < 209 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 208 ) + else if ( yy_act == 209 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 209 ) + else if ( yy_act == 210 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3570,6 +3584,20 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_DDNS_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + YY_BREAK +case 93: +YY_RULE_SETUP +#line 1005 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); default: @@ -3577,9 +3605,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1003 "dhcp6_lexer.ll" +#line 1015 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3591,9 +3619,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1014 "dhcp6_lexer.ll" +#line 1026 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3603,9 +3631,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1023 "dhcp6_lexer.ll" +#line 1035 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3615,9 +3643,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1032 "dhcp6_lexer.ll" +#line 1044 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3633,9 +3661,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1047 "dhcp6_lexer.ll" +#line 1059 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3652,9 +3680,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1063 "dhcp6_lexer.ll" +#line 1075 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3664,9 +3692,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1072 "dhcp6_lexer.ll" +#line 1084 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3676,9 +3704,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1081 "dhcp6_lexer.ll" +#line 1093 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3688,9 +3716,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1090 "dhcp6_lexer.ll" +#line 1102 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3700,9 +3728,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1099 "dhcp6_lexer.ll" +#line 1111 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3712,9 +3740,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1108 "dhcp6_lexer.ll" +#line 1120 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3724,9 +3752,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1117 "dhcp6_lexer.ll" +#line 1129 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3736,9 +3764,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1126 "dhcp6_lexer.ll" +#line 1138 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3748,9 +3776,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1135 "dhcp6_lexer.ll" +#line 1147 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3760,9 +3788,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1144 "dhcp6_lexer.ll" +#line 1156 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -3772,9 +3800,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1153 "dhcp6_lexer.ll" +#line 1165 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3799,9 +3827,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1177 "dhcp6_lexer.ll" +#line 1189 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3826,9 +3854,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1201 "dhcp6_lexer.ll" +#line 1213 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3838,9 +3866,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1210 "dhcp6_lexer.ll" +#line 1222 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3851,9 +3879,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1220 "dhcp6_lexer.ll" +#line 1232 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3864,9 +3892,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1230 "dhcp6_lexer.ll" +#line 1242 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3876,9 +3904,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1239 "dhcp6_lexer.ll" +#line 1251 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3889,9 +3917,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1249 "dhcp6_lexer.ll" +#line 1261 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3903,9 +3931,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1260 "dhcp6_lexer.ll" +#line 1272 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3915,9 +3943,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1269 "dhcp6_lexer.ll" +#line 1281 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3927,9 +3955,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1278 "dhcp6_lexer.ll" +#line 1290 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3939,9 +3967,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1287 "dhcp6_lexer.ll" +#line 1299 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3951,9 +3979,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1296 "dhcp6_lexer.ll" +#line 1308 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3963,9 +3991,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1305 "dhcp6_lexer.ll" +#line 1317 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3976,9 +4004,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1315 "dhcp6_lexer.ll" +#line 1327 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3988,9 +4016,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1324 "dhcp6_lexer.ll" +#line 1336 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4000,9 +4028,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1333 "dhcp6_lexer.ll" +#line 1345 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4012,9 +4040,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1342 "dhcp6_lexer.ll" +#line 1354 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4026,9 +4054,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1353 "dhcp6_lexer.ll" +#line 1365 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4040,9 +4068,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1364 "dhcp6_lexer.ll" +#line 1376 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4054,9 +4082,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1375 "dhcp6_lexer.ll" +#line 1387 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4068,9 +4096,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1386 "dhcp6_lexer.ll" +#line 1398 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4082,9 +4110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1397 "dhcp6_lexer.ll" +#line 1409 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4094,9 +4122,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1406 "dhcp6_lexer.ll" +#line 1418 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4106,9 +4134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1415 "dhcp6_lexer.ll" +#line 1427 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4118,9 +4146,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1424 "dhcp6_lexer.ll" +#line 1436 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4130,9 +4158,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1433 "dhcp6_lexer.ll" +#line 1445 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4142,9 +4170,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1442 "dhcp6_lexer.ll" +#line 1454 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4154,9 +4182,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1451 "dhcp6_lexer.ll" +#line 1463 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4166,9 +4194,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1460 "dhcp6_lexer.ll" +#line 1472 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4178,9 +4206,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1469 "dhcp6_lexer.ll" +#line 1481 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4190,9 +4218,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1478 "dhcp6_lexer.ll" +#line 1490 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4203,9 +4231,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1488 "dhcp6_lexer.ll" +#line 1500 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4218,9 +4246,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1500 "dhcp6_lexer.ll" +#line 1512 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4234,9 +4262,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1513 "dhcp6_lexer.ll" +#line 1525 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4246,9 +4274,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1522 "dhcp6_lexer.ll" +#line 1534 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4258,9 +4286,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1531 "dhcp6_lexer.ll" +#line 1543 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4271,9 +4299,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1541 "dhcp6_lexer.ll" +#line 1553 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4284,9 +4312,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1551 "dhcp6_lexer.ll" +#line 1563 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4296,9 +4324,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1560 "dhcp6_lexer.ll" +#line 1572 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4310,9 +4338,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1571 "dhcp6_lexer.ll" +#line 1583 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4323,9 +4351,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1581 "dhcp6_lexer.ll" +#line 1593 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4335,9 +4363,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1590 "dhcp6_lexer.ll" +#line 1602 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4348,9 +4376,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1600 "dhcp6_lexer.ll" +#line 1612 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4361,9 +4389,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1610 "dhcp6_lexer.ll" +#line 1622 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4373,9 +4401,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1619 "dhcp6_lexer.ll" +#line 1631 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4385,9 +4413,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1628 "dhcp6_lexer.ll" +#line 1640 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4397,9 +4425,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1637 "dhcp6_lexer.ll" +#line 1649 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4409,9 +4437,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1646 "dhcp6_lexer.ll" +#line 1658 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4422,9 +4450,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1656 "dhcp6_lexer.ll" +#line 1668 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4434,9 +4462,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1665 "dhcp6_lexer.ll" +#line 1677 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4446,9 +4474,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1674 "dhcp6_lexer.ll" +#line 1686 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4458,9 +4486,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1683 "dhcp6_lexer.ll" +#line 1695 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4470,9 +4498,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1692 "dhcp6_lexer.ll" +#line 1704 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4482,9 +4510,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1701 "dhcp6_lexer.ll" +#line 1713 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4494,9 +4522,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1710 "dhcp6_lexer.ll" +#line 1722 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4506,9 +4534,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1719 "dhcp6_lexer.ll" +#line 1731 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4518,9 +4546,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1728 "dhcp6_lexer.ll" +#line 1740 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4530,9 +4558,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1737 "dhcp6_lexer.ll" +#line 1749 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4542,9 +4570,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1746 "dhcp6_lexer.ll" +#line 1758 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4554,9 +4582,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1755 "dhcp6_lexer.ll" +#line 1767 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4566,9 +4594,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1764 "dhcp6_lexer.ll" +#line 1776 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4578,9 +4606,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1773 "dhcp6_lexer.ll" +#line 1785 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4590,9 +4618,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1782 "dhcp6_lexer.ll" +#line 1794 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4602,9 +4630,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1791 "dhcp6_lexer.ll" +#line 1803 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4614,9 +4642,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1800 "dhcp6_lexer.ll" +#line 1812 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4626,9 +4654,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1809 "dhcp6_lexer.ll" +#line 1821 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4638,9 +4666,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1818 "dhcp6_lexer.ll" +#line 1830 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4650,9 +4678,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1827 "dhcp6_lexer.ll" +#line 1839 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4662,9 +4690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1836 "dhcp6_lexer.ll" +#line 1848 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4674,9 +4702,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1845 "dhcp6_lexer.ll" +#line 1857 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4686,9 +4714,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1854 "dhcp6_lexer.ll" +#line 1866 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4698,9 +4726,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1863 "dhcp6_lexer.ll" +#line 1875 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4710,9 +4738,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1872 "dhcp6_lexer.ll" +#line 1884 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4722,9 +4750,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1881 "dhcp6_lexer.ll" +#line 1893 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4734,9 +4762,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1890 "dhcp6_lexer.ll" +#line 1902 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4746,9 +4774,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1899 "dhcp6_lexer.ll" +#line 1911 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4758,9 +4786,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1908 "dhcp6_lexer.ll" +#line 1920 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4770,9 +4798,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1917 "dhcp6_lexer.ll" +#line 1929 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4782,9 +4810,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1926 "dhcp6_lexer.ll" +#line 1938 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4794,9 +4822,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1935 "dhcp6_lexer.ll" +#line 1947 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4806,9 +4834,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1944 "dhcp6_lexer.ll" +#line 1956 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4818,9 +4846,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1953 "dhcp6_lexer.ll" +#line 1965 "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. @@ -4920,65 +4948,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 191: -/* rule 191 can match eol */ +case 192: +/* rule 192 can match eol */ YY_RULE_SETUP -#line 2052 "dhcp6_lexer.ll" +#line 2064 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 192: -/* rule 192 can match eol */ +case 193: +/* rule 193 can match eol */ YY_RULE_SETUP -#line 2057 "dhcp6_lexer.ll" +#line 2069 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 2062 "dhcp6_lexer.ll" +#line 2074 "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 194: +case 195: YY_RULE_SETUP -#line 2067 "dhcp6_lexer.ll" +#line 2079 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2068 "dhcp6_lexer.ll" +#line 2080 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 2069 "dhcp6_lexer.ll" +#line 2081 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2070 "dhcp6_lexer.ll" +#line 2082 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2071 "dhcp6_lexer.ll" +#line 2083 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2072 "dhcp6_lexer.ll" +#line 2084 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2074 "dhcp6_lexer.ll" +#line 2086 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4997,9 +5025,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2092 "dhcp6_lexer.ll" +#line 2104 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5013,43 +5041,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2105 "dhcp6_lexer.ll" +#line 2117 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2110 "dhcp6_lexer.ll" +#line 2122 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2114 "dhcp6_lexer.ll" +#line 2126 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2116 "dhcp6_lexer.ll" +#line 2128 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2118 "dhcp6_lexer.ll" +#line 2130 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2120 "dhcp6_lexer.ll" +#line 2132 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2122 "dhcp6_lexer.ll" +#line 2134 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5073,12 +5101,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2145 "dhcp6_lexer.ll" +#line 2157 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5081 "dhcp6_lexer.cc" +#line 5109 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -5397,7 +5425,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 >= 1903 ) + if ( yy_current_state >= 1926 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5430,11 +5458,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 >= 1903 ) + if ( yy_current_state >= 1926 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1902); + yy_is_jam = (yy_current_state == 1925); return yy_is_jam ? 0 : yy_current_state; } @@ -6183,7 +6211,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2145 "dhcp6_lexer.ll" +#line 2157 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index a5971816c7..b89c1ce95b 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -989,6 +989,18 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } +\"ddns-use-conflict-resolution\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_DDNS_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + + \"subnet6\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 521b525603..06d5fd3ecb 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.7.2. +// 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,25 +30,32 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. - - // 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 <dhcp6/parser_context.h> -#line 52 "dhcp6_parser.cc" +#line 59 "dhcp6_parser.cc" // lalr1.cc:413 #ifndef YY_ @@ -63,16 +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 @@ -90,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 @@ -106,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << '\n'; \ + *yycdebug_ << std::endl; \ } \ } while (false) @@ -119,15 +119,15 @@ # define YY_STACK_PRINT() \ do { \ if (yydebug_) \ - yy_stack_print_ (); \ + yystack_print_ (); \ } while (false) #else // !PARSER6_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast<void> (0) -# define YY_STACK_PRINT() static_cast<void> (0) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) +# define YY_REDUCE_PRINT(Rule) static_cast<void>(0) +# define YY_STACK_PRINT() static_cast<void>(0) #endif // !PARSER6_DEBUG @@ -139,17 +139,54 @@ #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 145 "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 + that double-quoting is unnecessary unless the string contains an + apostrophe, a comma, or backslash (other than backslash-backslash). + YYSTR is taken from yytname. */ + std::string + Dhcp6Parser::yytnamerr_ (const char *yystr) + { + if (*yystr == '"') + { + std::string yyr = ""; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + // Fall through. + default: + yyr += *yyp; + break; + + case '"': + return yyr; + } + do_not_strip_quotes: ; + } + + return yystr; + } + /// Build a parser object. Dhcp6Parser::Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg) + : #if PARSER6_DEBUG - : yydebug_ (false), + yydebug_ (false), yycdebug_ (&std::cerr), -#else - : #endif ctx (ctx_yyarg) {} @@ -157,30 +194,32 @@ namespace isc { namespace dhcp { Dhcp6Parser::~Dhcp6Parser () {} - Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} /*---------------. - | symbol kinds. | + | Symbol types. | `---------------*/ // 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) { @@ -188,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) {} - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_state::kind () const YY_NOEXCEPT + inline + Dhcp6Parser::symbol_number_type + Dhcp6Parser::by_state::type_get () const { if (state == empty_state) - return symbol_kind::S_YYEMPTY; + return empty_symbol; else - return YY_CAST (symbol_kind_type, 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)) - { - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); - break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_STRING: // "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)) + inline + Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) + : super_type (s, that.location) { - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (that.value)); + switch (that.type_get ()) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.move< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (YY_MOVE (that.value)); + case 202: // "boolean" + value.move< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (YY_MOVE (that.value)); + case 201: // "floating point" + value.move< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (YY_MOVE (that.value)); + case 200: // "integer" + value.move< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (YY_MOVE (that.value)); + case 199: // "constant string" + value.move< std::string > (that.value); break; default: @@ -281,39 +284,39 @@ namespace isc { namespace dhcp { } // that is emptied. - that.kind_ = symbol_kind::S_YYEMPTY; + 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.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + switch (that.type_get ()) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 202: // "boolean" value.copy< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 201: // "floating point" value.copy< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 200: // "integer" value.copy< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 199: // "constant string" value.copy< std::string > (that.value); break; @@ -325,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.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (that.value); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (that.value); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (that.value); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (that.value); - break; - - case symbol_kind::S_STRING: // "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 <typename Base> + inline void Dhcp6Parser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const { @@ -379,115 +341,126 @@ namespace isc { namespace dhcp { #if PARSER6_DEBUG template <typename Base> void - Dhcp6Parser::yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const + Dhcp6Parser::yy_print_ (std::ostream& yyo, + const basic_symbol<Base>& yysym) const { std::ostream& yyoutput = yyo; YYUSE (yyoutput); + symbol_number_type yytype = yysym.type_get (); + // Avoid a (spurious) G++ 4.8 warning about "array subscript is + // below array bounds". if (yysym.empty ()) - yyo << "empty symbol"; - else - { - symbol_kind_type yykind = yysym.kind (); - yyo << (yykind < YYNTOKENS ? "token" : "nterm") - << ' ' << yysym.name () << " (" - << yysym.location << ": "; - switch (yykind) - { - case symbol_kind::S_STRING: // "constant string" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < std::string > (); } -#line 400 "dhcp6_parser.cc" + std::abort (); + yyo << (yytype < yyntokens_ ? "token" : "nterm") + << ' ' << yytname_[yytype] << " (" + << yysym.location << ": "; + switch (yytype) + { + case 199: // "constant string" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< std::string > (); } +#line 364 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_INTEGER: // "integer" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < int64_t > (); } -#line 406 "dhcp6_parser.cc" + case 200: // "integer" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< int64_t > (); } +#line 371 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_FLOAT: // "floating point" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < double > (); } -#line 412 "dhcp6_parser.cc" + case 201: // "floating point" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< double > (); } +#line 378 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_BOOLEAN: // "boolean" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < bool > (); } -#line 418 "dhcp6_parser.cc" + case 202: // "boolean" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< bool > (); } +#line 385 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_value: // value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 424 "dhcp6_parser.cc" + case 219: // value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 392 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_map_value: // map_value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 430 "dhcp6_parser.cc" + case 223: // map_value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 399 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 436 "dhcp6_parser.cc" + case 264: // ddns_replace_client_name_value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 406 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_db_type: // db_type -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 442 "dhcp6_parser.cc" + case 304: // db_type + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 413 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_hr_mode: // hr_mode -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 448 "dhcp6_parser.cc" + case 405: // hr_mode + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 420 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_duid_type: // duid_type -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 454 "dhcp6_parser.cc" + case 541: // duid_type + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 427 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 460 "dhcp6_parser.cc" + case 584: // ncr_protocol_value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 434 "dhcp6_parser.cc" // lalr1.cc:636 break; + default: break; } - yyo << ')'; - } + yyo << ')'; } #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) { - if (m) - YY_SYMBOL_PRINT (m, sym); - yystack_.push (YY_MOVE (sym)); + stack_symbol_type t (s, sym); + yypush_ (m, t); } + inline void - Dhcp6Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) + Dhcp6Parser::yypush_ (const char* m, stack_symbol_type& s) { -#if 201103L <= YY_CPLUSPLUS - yypush_ (m, stack_symbol_type (s, std::move (sym))); -#else - stack_symbol_type ss (s, sym); - yypush_ (m, ss); -#endif + if (m) + YY_SYMBOL_PRINT (m, s); + yystack_.push (s); } + inline void - Dhcp6Parser::yypop_ (int n) + Dhcp6Parser::yypop_ (unsigned int n) { yystack_.pop (n); } @@ -519,37 +492,32 @@ 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; + int yyr = yypgoto_[yysym - yyntokens_] + yystate; if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) return yytable_[yyr]; else - return yydefgoto_[yysym - YYNTOKENS]; + 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; @@ -567,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 @@ -579,70 +547,48 @@ 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'; - YY_STACK_PRINT (); + 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; // Read a lookahead token. if (yyla.empty ()) { - YYCDEBUG << "Reading a token\n"; -#if YY_EXCEPTIONS + YYCDEBUG << "Reading a token: "; 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); - if (yyla.kind () == symbol_kind::S_YYerror) - { - // The scanner already issued an error message, process directly - // to error recovery. But do not keep the error token as - // lookahead, it is too special and may lead us to an endless - // loop in error recovery. */ - yyla.kind_ = symbol_kind::S_YYUNDEF; - goto yyerrlab1; - } - /* If the proper action on seeing token YYLA.TYPE is to reduce or to detect an error, take that action. */ - yyn += yyla.kind (); - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ()) - { - goto yydefault; - } + yyn += yyla.type_get (); + if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) + goto yydefault; // Reduce or error. yyn = yytable_[yyn]; @@ -659,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]) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - yylhs.value.emplace< ElementPtr > (); + switch (yyr1_[yyn]) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + yylhs.value.build< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" - yylhs.value.emplace< bool > (); + case 202: // "boolean" + yylhs.value.build< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" - yylhs.value.emplace< double > (); + case 201: // "floating point" + yylhs.value.build< double > (); break; - case symbol_kind::S_INTEGER: // "integer" - yylhs.value.emplace< int64_t > (); + case 200: // "integer" + yylhs.value.build< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" - yylhs.value.emplace< std::string > (); + case 199: // "constant string" + yylhs.value.build< std::string > (); break; default: @@ -717,299 +661,296 @@ 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<stack_symbol_type, stack_type> 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: // $@1: %empty -#line 287 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 739 "dhcp6_parser.cc" + case 2: +#line 288 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.NO_KEYWORD; } +#line 680 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 4: // $@2: %empty -#line 288 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG; } -#line 745 "dhcp6_parser.cc" + case 4: +#line 289 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG; } +#line 686 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 6: // $@3: %empty -#line 289 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 751 "dhcp6_parser.cc" + case 6: +#line 290 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP6; } +#line 692 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 8: // $@4: %empty -#line 290 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 757 "dhcp6_parser.cc" + case 8: +#line 291 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.INTERFACES_CONFIG; } +#line 698 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 10: // $@5: %empty -#line 291 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.SUBNET6; } -#line 763 "dhcp6_parser.cc" + case 10: +#line 292 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.SUBNET6; } +#line 704 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 12: // $@6: %empty -#line 292 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.POOLS; } -#line 769 "dhcp6_parser.cc" + case 12: +#line 293 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.POOLS; } +#line 710 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 14: // $@7: %empty -#line 293 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.PD_POOLS; } -#line 775 "dhcp6_parser.cc" + case 14: +#line 294 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.PD_POOLS; } +#line 716 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 16: // $@8: %empty -#line 294 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.RESERVATIONS; } -#line 781 "dhcp6_parser.cc" + case 16: +#line 295 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.RESERVATIONS; } +#line 722 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 18: // $@9: %empty -#line 295 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 787 "dhcp6_parser.cc" + case 18: +#line 296 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP6; } +#line 728 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 20: // $@10: %empty -#line 296 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DEF; } -#line 793 "dhcp6_parser.cc" + case 20: +#line 297 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DEF; } +#line 734 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 22: // $@11: %empty -#line 297 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DATA; } -#line 799 "dhcp6_parser.cc" + case 22: +#line 298 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DATA; } +#line 740 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 24: // $@12: %empty -#line 298 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 805 "dhcp6_parser.cc" + case 24: +#line 299 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } +#line 746 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 26: // $@13: %empty -#line 299 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 811 "dhcp6_parser.cc" + case 26: +#line 300 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP_DDNS; } +#line 752 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 28: // $@14: %empty -#line 300 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 817 "dhcp6_parser.cc" + case 28: +#line 301 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG_CONTROL; } +#line 758 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 30: // value: "integer" -#line 308 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 823 "dhcp6_parser.cc" + case 30: +#line 309 "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 764 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 31: // value: "floating point" -#line 309 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 829 "dhcp6_parser.cc" + case 31: +#line 310 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } +#line 770 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 32: // value: "boolean" -#line 310 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 835 "dhcp6_parser.cc" + case 32: +#line 311 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 776 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 33: // value: "constant string" -#line 311 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 841 "dhcp6_parser.cc" + case 33: +#line 312 "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 782 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 34: // value: "null" -#line 312 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 847 "dhcp6_parser.cc" + case 34: +#line 313 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 788 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 35: // value: map2 -#line 313 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 853 "dhcp6_parser.cc" + case 35: +#line 314 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 794 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 36: // value: list_generic -#line 314 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 859 "dhcp6_parser.cc" + case 36: +#line 315 "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 37: // sub_json: value -#line 317 "dhcp6_parser.yy" - { + case 37: +#line 318 "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 868 "dhcp6_parser.cc" +#line 809 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 38: // $@15: %empty -#line 322 "dhcp6_parser.yy" - { + case 38: +#line 323 "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 879 "dhcp6_parser.cc" +#line 820 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 39: // map2: "{" $@15 map_content "}" -#line 327 "dhcp6_parser.yy" - { + case 39: +#line 328 "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 889 "dhcp6_parser.cc" +#line 830 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 40: // map_value: map2 -#line 333 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 895 "dhcp6_parser.cc" + case 40: +#line 334 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 836 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 43: // not_empty_map: "constant string" ":" value -#line 340 "dhcp6_parser.yy" - { + case 43: +#line 341 "dhcp6_parser.yy" // lalr1.cc:859 + { // map containing a single entry - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.unique(yystack_[2].value.as< std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 905 "dhcp6_parser.cc" +#line 846 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 345 "dhcp6_parser.yy" - { + case 44: +#line 346 "dhcp6_parser.yy" // lalr1.cc:859 + { // map consisting of a shorter map followed by // comma and string:value - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.unique(yystack_[2].value.as< std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 916 "dhcp6_parser.cc" +#line 857 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 45: // $@16: %empty -#line 353 "dhcp6_parser.yy" - { + case 45: +#line 354 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 925 "dhcp6_parser.cc" +#line 866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 46: // list_generic: "[" $@16 list_content "]" -#line 356 "dhcp6_parser.yy" - { + case 46: +#line 357 "dhcp6_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here } -#line 933 "dhcp6_parser.cc" +#line 874 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 49: // not_empty_list: value -#line 364 "dhcp6_parser.yy" - { + case 49: +#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 942 "dhcp6_parser.cc" +#line 883 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 50: // not_empty_list: not_empty_list "," value -#line 368 "dhcp6_parser.yy" - { + case 50: +#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 951 "dhcp6_parser.cc" +#line 892 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 51: // $@17: %empty -#line 375 "dhcp6_parser.yy" - { + case 51: +#line 376 "dhcp6_parser.yy" // lalr1.cc:859 + { // List parsing about to start } -#line 959 "dhcp6_parser.cc" +#line 900 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 52: // list_strings: "[" $@17 list_strings_content "]" -#line 377 "dhcp6_parser.yy" - { + case 52: +#line 378 "dhcp6_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 968 "dhcp6_parser.cc" +#line 909 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 55: // not_empty_list_strings: "constant string" -#line 386 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 55: +#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 977 "dhcp6_parser.cc" +#line 918 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 390 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 56: +#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 986 "dhcp6_parser.cc" +#line 927 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 57: // unknown_map_entry: "constant string" ":" -#line 401 "dhcp6_parser.yy" - { + case 57: +#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 997 "dhcp6_parser.cc" +#line 938 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 58: // $@18: %empty -#line 410 "dhcp6_parser.yy" - { + case 58: +#line 411 "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 1008 "dhcp6_parser.cc" +#line 949 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 59: // syntax_map: "{" $@18 global_object "}" -#line 415 "dhcp6_parser.yy" - { + case 59: +#line 416 "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. @@ -1017,12 +958,12 @@ namespace isc { namespace dhcp { // Dhcp6 is required ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1021 "dhcp6_parser.cc" +#line 962 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 60: // $@19: %empty -#line 425 "dhcp6_parser.yy" - { + case 60: +#line 426 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map // Prevent against duplicate. @@ -1032,1310 +973,1320 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 1036 "dhcp6_parser.cc" +#line 977 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 61: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 434 "dhcp6_parser.yy" - { + case 61: +#line 435 "dhcp6_parser.yy" // lalr1.cc:859 + { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1046 "dhcp6_parser.cc" +#line 987 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 62: // $@20: %empty -#line 442 "dhcp6_parser.yy" - { + case 62: +#line 443 "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 1056 "dhcp6_parser.cc" +#line 997 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 63: // sub_dhcp6: "{" $@20 global_params "}" -#line 446 "dhcp6_parser.yy" - { + case 63: +#line 447 "dhcp6_parser.yy" // lalr1.cc:859 + { // No global parameter is required // parsing completed } -#line 1065 "dhcp6_parser.cc" +#line 1006 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 123: // $@21: %empty -#line 516 "dhcp6_parser.yy" - { + case 124: +#line 518 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1074 "dhcp6_parser.cc" +#line 1015 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 124: // data_directory: "data-directory" $@21 ":" "constant string" -#line 519 "dhcp6_parser.yy" - { - ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 125: +#line 521 "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 1084 "dhcp6_parser.cc" +#line 1025 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 125: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 525 "dhcp6_parser.yy" - { + case 126: +#line 527 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); } -#line 1094 "dhcp6_parser.cc" +#line 1035 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 126: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 531 "dhcp6_parser.yy" - { + case 127: +#line 533 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-preferred-lifetime", prf); } -#line 1104 "dhcp6_parser.cc" +#line 1045 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 127: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 537 "dhcp6_parser.yy" - { + case 128: +#line 539 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-preferred-lifetime", prf); } -#line 1114 "dhcp6_parser.cc" +#line 1055 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 128: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 543 "dhcp6_parser.yy" - { + case 129: +#line 545 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1124 "dhcp6_parser.cc" +#line 1065 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 129: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 549 "dhcp6_parser.yy" - { + case 130: +#line 551 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1134 "dhcp6_parser.cc" +#line 1075 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 130: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 555 "dhcp6_parser.yy" - { + case 131: +#line 557 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1144 "dhcp6_parser.cc" +#line 1085 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 131: // renew_timer: "renew-timer" ":" "integer" -#line 561 "dhcp6_parser.yy" - { + case 132: +#line 563 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1154 "dhcp6_parser.cc" +#line 1095 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 132: // rebind_timer: "rebind-timer" ":" "integer" -#line 567 "dhcp6_parser.yy" - { + case 133: +#line 569 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1164 "dhcp6_parser.cc" +#line 1105 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 133: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 573 "dhcp6_parser.yy" - { + case 134: +#line 575 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); - ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1174 "dhcp6_parser.cc" +#line 1115 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 134: // t1_percent: "t1-percent" ":" "floating point" -#line 579 "dhcp6_parser.yy" - { + case 135: +#line 581 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); - ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1184 "dhcp6_parser.cc" +#line 1125 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 135: // t2_percent: "t2-percent" ":" "floating point" -#line 585 "dhcp6_parser.yy" - { + case 136: +#line 587 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); - ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1194 "dhcp6_parser.cc" +#line 1135 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 136: // cache_threshold: "cache-threshold" ":" "floating point" -#line 591 "dhcp6_parser.yy" - { + case 137: +#line 593 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); - ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ct(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1204 "dhcp6_parser.cc" +#line 1145 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 137: // cache_max_age: "cache-max-age" ":" "integer" -#line 597 "dhcp6_parser.yy" - { + case 138: +#line 599 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); - ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr cm(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1214 "dhcp6_parser.cc" +#line 1155 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 138: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 603 "dhcp6_parser.yy" - { + case 139: +#line 605 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); - ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1224 "dhcp6_parser.cc" +#line 1165 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 139: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 609 "dhcp6_parser.yy" - { + case 140: +#line 611 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1234 "dhcp6_parser.cc" +#line 1175 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 140: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 615 "dhcp6_parser.yy" - { + case 141: +#line 617 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1244 "dhcp6_parser.cc" +#line 1185 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 141: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 621 "dhcp6_parser.yy" - { + case 142: +#line 623 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1254 "dhcp6_parser.cc" +#line 1195 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 142: // $@22: %empty -#line 627 "dhcp6_parser.yy" - { + case 143: +#line 629 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 1263 "dhcp6_parser.cc" +#line 1204 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 143: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 630 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); + case 144: +#line 632 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1272 "dhcp6_parser.cc" +#line 1213 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 144: // ddns_replace_client_name_value: "when-present" -#line 636 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); + case 145: +#line 638 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1280 "dhcp6_parser.cc" +#line 1221 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 145: // ddns_replace_client_name_value: "never" -#line 639 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); + case 146: +#line 641 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1288 "dhcp6_parser.cc" +#line 1229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 146: // ddns_replace_client_name_value: "always" -#line 642 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); + case 147: +#line 644 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1296 "dhcp6_parser.cc" +#line 1237 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 147: // ddns_replace_client_name_value: "when-not-present" -#line 645 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); + case 148: +#line 647 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1304 "dhcp6_parser.cc" +#line 1245 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 148: // ddns_replace_client_name_value: "boolean" -#line 648 "dhcp6_parser.yy" - { + case 149: +#line 650 "dhcp6_parser.yy" // lalr1.cc:859 + { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 1313 "dhcp6_parser.cc" +#line 1254 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 149: // $@23: %empty -#line 654 "dhcp6_parser.yy" - { + case 150: +#line 656 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1322 "dhcp6_parser.cc" +#line 1263 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 150: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 657 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 151: +#line 659 "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 1332 "dhcp6_parser.cc" +#line 1273 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 151: // $@24: %empty -#line 663 "dhcp6_parser.yy" - { + case 152: +#line 665 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1341 "dhcp6_parser.cc" +#line 1282 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 152: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 666 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 153: +#line 668 "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 1351 "dhcp6_parser.cc" +#line 1292 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 153: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 672 "dhcp6_parser.yy" - { + case 154: +#line 674 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1361 "dhcp6_parser.cc" +#line 1302 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 155: +#line 680 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-use-conflict-resolution", b); +} +#line 1312 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 154: // $@25: %empty -#line 678 "dhcp6_parser.yy" - { + case 156: +#line 686 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1370 "dhcp6_parser.cc" +#line 1321 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 155: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 681 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 157: +#line 689 "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 1380 "dhcp6_parser.cc" +#line 1331 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 156: // $@26: %empty -#line 687 "dhcp6_parser.yy" - { + case 158: +#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1389 "dhcp6_parser.cc" +#line 1340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 157: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 690 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 159: +#line 698 "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 1399 "dhcp6_parser.cc" +#line 1350 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 158: // store_extended_info: "store-extended-info" ":" "boolean" -#line 696 "dhcp6_parser.yy" - { + case 160: +#line 704 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1409 "dhcp6_parser.cc" +#line 1360 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 159: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 702 "dhcp6_parser.yy" - { + case 161: +#line 710 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); - ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + 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 1419 "dhcp6_parser.cc" +#line 1370 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 160: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 708 "dhcp6_parser.yy" - { + case 162: +#line 716 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); - ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + 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 1429 "dhcp6_parser.cc" +#line 1380 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 161: // $@27: %empty -#line 714 "dhcp6_parser.yy" - { + case 163: +#line 722 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1438 "dhcp6_parser.cc" +#line 1389 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 162: // server_tag: "server-tag" $@27 ":" "constant string" -#line 717 "dhcp6_parser.yy" - { - ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 164: +#line 725 "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 1448 "dhcp6_parser.cc" +#line 1399 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 163: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 723 "dhcp6_parser.yy" - { + case 165: +#line 731 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); - ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr unique(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1458 "dhcp6_parser.cc" +#line 1409 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 164: // $@28: %empty -#line 729 "dhcp6_parser.yy" - { + case 166: +#line 737 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); 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 1470 "dhcp6_parser.cc" +#line 1421 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 165: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" -#line 735 "dhcp6_parser.yy" - { + case 167: +#line 743 "dhcp6_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1480 "dhcp6_parser.cc" +#line 1431 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 166: // $@29: %empty -#line 741 "dhcp6_parser.yy" - { + case 168: +#line 749 "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 1490 "dhcp6_parser.cc" +#line 1441 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 167: // sub_interfaces6: "{" $@29 interfaces_config_params "}" -#line 745 "dhcp6_parser.yy" - { + case 169: +#line 753 "dhcp6_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required // parsing completed } -#line 1499 "dhcp6_parser.cc" +#line 1450 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 175: // $@30: %empty -#line 761 "dhcp6_parser.yy" - { + case 177: +#line 769 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); 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 1511 "dhcp6_parser.cc" +#line 1462 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 176: // interfaces_list: "interfaces" $@30 ":" list_strings -#line 767 "dhcp6_parser.yy" - { + case 178: +#line 775 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1520 "dhcp6_parser.cc" +#line 1471 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 177: // re_detect: "re-detect" ":" "boolean" -#line 772 "dhcp6_parser.yy" - { + case 179: +#line 780 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1530 "dhcp6_parser.cc" +#line 1481 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 178: // $@31: %empty -#line 778 "dhcp6_parser.yy" - { + case 180: +#line 786 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); 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 1542 "dhcp6_parser.cc" +#line 1493 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 179: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" -#line 784 "dhcp6_parser.yy" - { + case 181: +#line 792 "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 1553 "dhcp6_parser.cc" +#line 1504 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 180: // $@32: %empty -#line 791 "dhcp6_parser.yy" - { + case 182: +#line 799 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); 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 1565 "dhcp6_parser.cc" +#line 1516 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 181: // hosts_database: "hosts-database" $@32 ":" "{" database_map_params "}" -#line 797 "dhcp6_parser.yy" - { + case 183: +#line 805 "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 1576 "dhcp6_parser.cc" +#line 1527 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 182: // $@33: %empty -#line 804 "dhcp6_parser.yy" - { + case 184: +#line 812 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); 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 1588 "dhcp6_parser.cc" +#line 1539 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 183: // hosts_databases: "hosts-databases" $@33 ":" "[" database_list "]" -#line 810 "dhcp6_parser.yy" - { + case 185: +#line 818 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1597 "dhcp6_parser.cc" +#line 1548 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 188: // $@34: %empty -#line 823 "dhcp6_parser.yy" - { + case 190: +#line 831 "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 1607 "dhcp6_parser.cc" +#line 1558 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 189: // database: "{" $@34 database_map_params "}" -#line 827 "dhcp6_parser.yy" - { + case 191: +#line 835 "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 1617 "dhcp6_parser.cc" +#line 1568 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 213: // $@35: %empty -#line 860 "dhcp6_parser.yy" - { + case 215: +#line 868 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1626 "dhcp6_parser.cc" +#line 1577 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 214: // database_type: "type" $@35 ":" db_type -#line 863 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + case 216: +#line 871 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1635 "dhcp6_parser.cc" +#line 1586 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 215: // db_type: "memfile" -#line 868 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1641 "dhcp6_parser.cc" + case 217: +#line 876 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1592 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 216: // db_type: "mysql" -#line 869 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1647 "dhcp6_parser.cc" + case 218: +#line 877 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1598 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 217: // db_type: "postgresql" -#line 870 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1653 "dhcp6_parser.cc" + case 219: +#line 878 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1604 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 218: // db_type: "cql" -#line 871 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1659 "dhcp6_parser.cc" + case 220: +#line 879 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1610 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 219: // $@36: %empty -#line 874 "dhcp6_parser.yy" - { + case 221: +#line 882 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1668 "dhcp6_parser.cc" +#line 1619 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 220: // user: "user" $@36 ":" "constant string" -#line 877 "dhcp6_parser.yy" - { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 222: +#line 885 "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 1678 "dhcp6_parser.cc" +#line 1629 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 221: // $@37: %empty -#line 883 "dhcp6_parser.yy" - { + case 223: +#line 891 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1687 "dhcp6_parser.cc" +#line 1638 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 222: // password: "password" $@37 ":" "constant string" -#line 886 "dhcp6_parser.yy" - { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 224: +#line 894 "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 1697 "dhcp6_parser.cc" +#line 1648 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 223: // $@38: %empty -#line 892 "dhcp6_parser.yy" - { + case 225: +#line 900 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1706 "dhcp6_parser.cc" +#line 1657 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 224: // host: "host" $@38 ":" "constant string" -#line 895 "dhcp6_parser.yy" - { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 226: +#line 903 "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 1716 "dhcp6_parser.cc" +#line 1667 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 225: // port: "port" ":" "integer" -#line 901 "dhcp6_parser.yy" - { + case 227: +#line 909 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); - ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1726 "dhcp6_parser.cc" +#line 1677 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 226: // $@39: %empty -#line 907 "dhcp6_parser.yy" - { + case 228: +#line 915 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1735 "dhcp6_parser.cc" +#line 1686 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 227: // name: "name" $@39 ":" "constant string" -#line 910 "dhcp6_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 229: +#line 918 "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 1745 "dhcp6_parser.cc" +#line 1696 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 228: // persist: "persist" ":" "boolean" -#line 916 "dhcp6_parser.yy" - { + case 230: +#line 924 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1755 "dhcp6_parser.cc" +#line 1706 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 229: // lfc_interval: "lfc-interval" ":" "integer" -#line 922 "dhcp6_parser.yy" - { + case 231: +#line 930 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1765 "dhcp6_parser.cc" +#line 1716 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 230: // readonly: "readonly" ":" "boolean" -#line 928 "dhcp6_parser.yy" - { + case 232: +#line 936 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1775 "dhcp6_parser.cc" +#line 1726 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 231: // connect_timeout: "connect-timeout" ":" "integer" -#line 934 "dhcp6_parser.yy" - { + case 233: +#line 942 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1785 "dhcp6_parser.cc" +#line 1736 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 232: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 940 "dhcp6_parser.yy" - { + case 234: +#line 948 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1795 "dhcp6_parser.cc" +#line 1746 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 233: // max_row_errors: "max-row-errors" ":" "integer" -#line 946 "dhcp6_parser.yy" - { + case 235: +#line 954 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 1805 "dhcp6_parser.cc" +#line 1756 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 234: // request_timeout: "request-timeout" ":" "integer" -#line 952 "dhcp6_parser.yy" - { + case 236: +#line 960 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("request-timeout", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1815 "dhcp6_parser.cc" +#line 1766 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 235: // tcp_keepalive: "tcp-keepalive" ":" "integer" -#line 958 "dhcp6_parser.yy" - { + case 237: +#line 966 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("tcp-keepalive", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1825 "dhcp6_parser.cc" +#line 1776 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 236: // tcp_nodelay: "tcp-nodelay" ":" "boolean" -#line 964 "dhcp6_parser.yy" - { + case 238: +#line 972 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("tcp-nodelay", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1835 "dhcp6_parser.cc" +#line 1786 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 237: // $@40: %empty -#line 970 "dhcp6_parser.yy" - { + case 239: +#line 978 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("contact-points", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1844 "dhcp6_parser.cc" +#line 1795 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 238: // contact_points: "contact-points" $@40 ":" "constant string" -#line 973 "dhcp6_parser.yy" - { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 240: +#line 981 "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 1854 "dhcp6_parser.cc" +#line 1805 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 239: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 979 "dhcp6_parser.yy" - { + case 241: +#line 987 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1864 "dhcp6_parser.cc" +#line 1815 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 240: // $@41: %empty -#line 985 "dhcp6_parser.yy" - { + case 242: +#line 993 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("keyspace", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1873 "dhcp6_parser.cc" +#line 1824 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 241: // keyspace: "keyspace" $@41 ":" "constant string" -#line 988 "dhcp6_parser.yy" - { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 243: +#line 996 "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 1883 "dhcp6_parser.cc" +#line 1834 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 242: // $@42: %empty -#line 994 "dhcp6_parser.yy" - { + case 244: +#line 1002 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1892 "dhcp6_parser.cc" +#line 1843 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 243: // consistency: "consistency" $@42 ":" "constant string" -#line 997 "dhcp6_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 245: +#line 1005 "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 1902 "dhcp6_parser.cc" +#line 1853 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 244: // $@43: %empty -#line 1003 "dhcp6_parser.yy" - { + case 246: +#line 1011 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("serial-consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1911 "dhcp6_parser.cc" +#line 1862 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 245: // serial_consistency: "serial-consistency" $@43 ":" "constant string" -#line 1006 "dhcp6_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 247: +#line 1014 "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 1921 "dhcp6_parser.cc" +#line 1872 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 246: // $@44: %empty -#line 1012 "dhcp6_parser.yy" - { + case 248: +#line 1020 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); 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 1933 "dhcp6_parser.cc" +#line 1884 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 247: // sanity_checks: "sanity-checks" $@44 ":" "{" sanity_checks_params "}" -#line 1018 "dhcp6_parser.yy" - { + case 249: +#line 1026 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1942 "dhcp6_parser.cc" +#line 1893 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 251: // $@45: %empty -#line 1028 "dhcp6_parser.yy" - { + case 253: +#line 1036 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1951 "dhcp6_parser.cc" +#line 1902 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 252: // lease_checks: "lease-checks" $@45 ":" "constant string" -#line 1031 "dhcp6_parser.yy" - { + case 254: +#line 1039 "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))); + 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 > ()) + + 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 1971 "dhcp6_parser.cc" +#line 1922 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 253: // $@46: %empty -#line 1047 "dhcp6_parser.yy" - { + case 255: +#line 1055 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); 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 1983 "dhcp6_parser.cc" +#line 1934 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 254: // mac_sources: "mac-sources" $@46 ":" "[" mac_sources_list "]" -#line 1053 "dhcp6_parser.yy" - { + case 256: +#line 1061 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1992 "dhcp6_parser.cc" +#line 1943 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 259: // duid_id: "duid" -#line 1066 "dhcp6_parser.yy" - { + case 261: +#line 1074 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2001 "dhcp6_parser.cc" +#line 1952 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 260: // string_id: "constant string" -#line 1071 "dhcp6_parser.yy" - { - ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 262: +#line 1079 "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 2010 "dhcp6_parser.cc" +#line 1961 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 261: // $@47: %empty -#line 1076 "dhcp6_parser.yy" - { + case 263: +#line 1084 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); 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 2022 "dhcp6_parser.cc" +#line 1973 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 262: // host_reservation_identifiers: "host-reservation-identifiers" $@47 ":" "[" host_reservation_identifiers_list "]" -#line 1082 "dhcp6_parser.yy" - { + case 264: +#line 1090 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2031 "dhcp6_parser.cc" +#line 1982 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 268: // hw_address_id: "hw-address" -#line 1096 "dhcp6_parser.yy" - { + case 270: +#line 1104 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2040 "dhcp6_parser.cc" +#line 1991 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 269: // flex_id: "flex-id" -#line 1101 "dhcp6_parser.yy" - { + case 271: +#line 1109 "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 2049 "dhcp6_parser.cc" +#line 2000 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 270: // $@48: %empty -#line 1108 "dhcp6_parser.yy" - { + case 272: +#line 1116 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); 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 2061 "dhcp6_parser.cc" +#line 2012 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 271: // relay_supplied_options: "relay-supplied-options" $@48 ":" "[" list_content "]" -#line 1114 "dhcp6_parser.yy" - { + case 273: +#line 1122 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2070 "dhcp6_parser.cc" +#line 2021 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 272: // $@49: %empty -#line 1121 "dhcp6_parser.yy" - { + case 274: +#line 1129 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); 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 2082 "dhcp6_parser.cc" +#line 2033 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 273: // dhcp_multi_threading: "multi-threading" $@49 ":" "{" multi_threading_params "}" -#line 1127 "dhcp6_parser.yy" - { + case 275: +#line 1135 "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 2093 "dhcp6_parser.cc" +#line 2044 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 282: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1146 "dhcp6_parser.yy" - { + case 284: +#line 1154 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2103 "dhcp6_parser.cc" +#line 2054 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 283: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1152 "dhcp6_parser.yy" - { + case 285: +#line 1160 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2113 "dhcp6_parser.cc" +#line 2064 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 284: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1158 "dhcp6_parser.yy" - { + case 286: +#line 1166 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2123 "dhcp6_parser.cc" +#line 2074 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 285: // $@50: %empty -#line 1164 "dhcp6_parser.yy" - { + case 287: +#line 1172 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); 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 2135 "dhcp6_parser.cc" +#line 2086 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 286: // hooks_libraries: "hooks-libraries" $@50 ":" "[" hooks_libraries_list "]" -#line 1170 "dhcp6_parser.yy" - { + case 288: +#line 1178 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2144 "dhcp6_parser.cc" +#line 2095 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 291: // $@51: %empty -#line 1183 "dhcp6_parser.yy" - { + case 293: +#line 1191 "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 2154 "dhcp6_parser.cc" +#line 2105 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 292: // hooks_library: "{" $@51 hooks_params "}" -#line 1187 "dhcp6_parser.yy" - { + case 294: +#line 1195 "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 2164 "dhcp6_parser.cc" +#line 2115 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 293: // $@52: %empty -#line 1193 "dhcp6_parser.yy" - { + case 295: +#line 1201 "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 2174 "dhcp6_parser.cc" +#line 2125 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 294: // sub_hooks_library: "{" $@52 hooks_params "}" -#line 1197 "dhcp6_parser.yy" - { + case 296: +#line 1205 "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 2184 "dhcp6_parser.cc" +#line 2135 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 300: // $@53: %empty -#line 1212 "dhcp6_parser.yy" - { + case 302: +#line 1220 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2193 "dhcp6_parser.cc" +#line 2144 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 301: // library: "library" $@53 ":" "constant string" -#line 1215 "dhcp6_parser.yy" - { - ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 303: +#line 1223 "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 2203 "dhcp6_parser.cc" +#line 2154 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 302: // $@54: %empty -#line 1221 "dhcp6_parser.yy" - { + case 304: +#line 1229 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2212 "dhcp6_parser.cc" +#line 2163 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 303: // parameters: "parameters" $@54 ":" map_value -#line 1224 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); + case 305: +#line 1232 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2221 "dhcp6_parser.cc" +#line 2172 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 304: // $@55: %empty -#line 1230 "dhcp6_parser.yy" - { + case 306: +#line 1238 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); 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 2233 "dhcp6_parser.cc" +#line 2184 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 305: // expired_leases_processing: "expired-leases-processing" $@55 ":" "{" expired_leases_params "}" -#line 1236 "dhcp6_parser.yy" - { + case 307: +#line 1244 "dhcp6_parser.yy" // lalr1.cc:859 + { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2243 "dhcp6_parser.cc" +#line 2194 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 314: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1254 "dhcp6_parser.yy" - { + case 316: +#line 1262 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + 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 2253 "dhcp6_parser.cc" +#line 2204 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 315: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1260 "dhcp6_parser.yy" - { + case 317: +#line 1268 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + 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 2263 "dhcp6_parser.cc" +#line 2214 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 316: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1266 "dhcp6_parser.yy" - { + case 318: +#line 1274 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2273 "dhcp6_parser.cc" +#line 2224 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 317: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1272 "dhcp6_parser.yy" - { + case 319: +#line 1280 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2283 "dhcp6_parser.cc" +#line 2234 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 318: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1278 "dhcp6_parser.yy" - { + case 320: +#line 1286 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2293 "dhcp6_parser.cc" +#line 2244 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 319: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1284 "dhcp6_parser.yy" - { + case 321: +#line 1292 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2303 "dhcp6_parser.cc" +#line 2254 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 320: // $@56: %empty -#line 1293 "dhcp6_parser.yy" - { + case 322: +#line 1301 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); 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 2315 "dhcp6_parser.cc" +#line 2266 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 321: // subnet6_list: "subnet6" $@56 ":" "[" subnet6_list_content "]" -#line 1299 "dhcp6_parser.yy" - { + case 323: +#line 1307 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2324 "dhcp6_parser.cc" +#line 2275 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 326: // $@57: %empty -#line 1319 "dhcp6_parser.yy" - { + case 328: +#line 1327 "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 2334 "dhcp6_parser.cc" +#line 2285 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 327: // subnet6: "{" $@57 subnet6_params "}" -#line 1323 "dhcp6_parser.yy" - { + case 329: +#line 1331 "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: @@ -2356,596 +2307,596 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2360 "dhcp6_parser.cc" +#line 2311 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 328: // $@58: %empty -#line 1345 "dhcp6_parser.yy" - { + case 330: +#line 1353 "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 2370 "dhcp6_parser.cc" +#line 2321 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 329: // sub_subnet6: "{" $@58 subnet6_params "}" -#line 1349 "dhcp6_parser.yy" - { + case 331: +#line 1357 "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 2380 "dhcp6_parser.cc" +#line 2331 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 371: // $@59: %empty -#line 1402 "dhcp6_parser.yy" - { + case 374: +#line 1411 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2389 "dhcp6_parser.cc" +#line 2340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 372: // subnet: "subnet" $@59 ":" "constant string" -#line 1405 "dhcp6_parser.yy" - { - ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 375: +#line 1414 "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 2399 "dhcp6_parser.cc" +#line 2350 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 373: // $@60: %empty -#line 1411 "dhcp6_parser.yy" - { + case 376: +#line 1420 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2408 "dhcp6_parser.cc" +#line 2359 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 374: // interface: "interface" $@60 ":" "constant string" -#line 1414 "dhcp6_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 377: +#line 1423 "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 2418 "dhcp6_parser.cc" +#line 2369 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 375: // $@61: %empty -#line 1420 "dhcp6_parser.yy" - { + case 378: +#line 1429 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2427 "dhcp6_parser.cc" +#line 2378 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 376: // interface_id: "interface-id" $@61 ":" "constant string" -#line 1423 "dhcp6_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 379: +#line 1432 "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 2437 "dhcp6_parser.cc" +#line 2388 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 377: // $@62: %empty -#line 1429 "dhcp6_parser.yy" - { + case 380: +#line 1438 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2446 "dhcp6_parser.cc" +#line 2397 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 378: // client_class: "client-class" $@62 ":" "constant string" -#line 1432 "dhcp6_parser.yy" - { - ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 381: +#line 1441 "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 2456 "dhcp6_parser.cc" +#line 2407 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 379: // $@63: %empty -#line 1438 "dhcp6_parser.yy" - { + case 382: +#line 1447 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); 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 2468 "dhcp6_parser.cc" +#line 2419 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 380: // require_client_classes: "require-client-classes" $@63 ":" list_strings -#line 1444 "dhcp6_parser.yy" - { + case 383: +#line 1453 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2477 "dhcp6_parser.cc" +#line 2428 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 381: // $@64: %empty -#line 1449 "dhcp6_parser.yy" - { + case 384: +#line 1458 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2486 "dhcp6_parser.cc" +#line 2437 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 382: // reservation_mode: "reservation-mode" $@64 ":" hr_mode -#line 1452 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); + case 385: +#line 1461 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2495 "dhcp6_parser.cc" +#line 2446 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 383: // hr_mode: "disabled" -#line 1457 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2501 "dhcp6_parser.cc" + case 386: +#line 1466 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } +#line 2452 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 384: // hr_mode: "out-of-pool" -#line 1458 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2507 "dhcp6_parser.cc" + case 387: +#line 1467 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } +#line 2458 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 385: // hr_mode: "global" -#line 1459 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2513 "dhcp6_parser.cc" + case 388: +#line 1468 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } +#line 2464 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 386: // hr_mode: "all" -#line 1460 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2519 "dhcp6_parser.cc" + case 389: +#line 1469 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } +#line 2470 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 387: // id: "id" ":" "integer" -#line 1463 "dhcp6_parser.yy" - { + case 390: +#line 1472 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); - ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2529 "dhcp6_parser.cc" +#line 2480 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 388: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1469 "dhcp6_parser.yy" - { + case 391: +#line 1478 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); - ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2539 "dhcp6_parser.cc" +#line 2490 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 389: // $@65: %empty -#line 1477 "dhcp6_parser.yy" - { + case 392: +#line 1486 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); 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 2551 "dhcp6_parser.cc" +#line 2502 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 390: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" -#line 1483 "dhcp6_parser.yy" - { + case 393: +#line 1492 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2560 "dhcp6_parser.cc" +#line 2511 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 395: // $@66: %empty -#line 1498 "dhcp6_parser.yy" - { + case 398: +#line 1507 "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 2570 "dhcp6_parser.cc" +#line 2521 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 396: // shared_network: "{" $@66 shared_network_params "}" -#line 1502 "dhcp6_parser.yy" - { + case 399: +#line 1511 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 2578 "dhcp6_parser.cc" +#line 2529 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 435: // $@67: %empty -#line 1552 "dhcp6_parser.yy" - { + case 439: +#line 1562 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); 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 2590 "dhcp6_parser.cc" +#line 2541 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 436: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" -#line 1558 "dhcp6_parser.yy" - { + case 440: +#line 1568 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2599 "dhcp6_parser.cc" +#line 2550 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 437: // $@68: %empty -#line 1566 "dhcp6_parser.yy" - { + case 441: +#line 1576 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2608 "dhcp6_parser.cc" +#line 2559 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 438: // sub_option_def_list: "{" $@68 option_def_list "}" -#line 1569 "dhcp6_parser.yy" - { + case 442: +#line 1579 "dhcp6_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 2616 "dhcp6_parser.cc" +#line 2567 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 443: // $@69: %empty -#line 1585 "dhcp6_parser.yy" - { + case 447: +#line 1595 "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 2626 "dhcp6_parser.cc" +#line 2577 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 444: // option_def_entry: "{" $@69 option_def_params "}" -#line 1589 "dhcp6_parser.yy" - { + case 448: +#line 1599 "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 2638 "dhcp6_parser.cc" +#line 2589 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 445: // $@70: %empty -#line 1600 "dhcp6_parser.yy" - { + case 449: +#line 1610 "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 2648 "dhcp6_parser.cc" +#line 2599 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 446: // sub_option_def: "{" $@70 option_def_params "}" -#line 1604 "dhcp6_parser.yy" - { + case 450: +#line 1614 "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 2660 "dhcp6_parser.cc" +#line 2611 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 462: // code: "code" ":" "integer" -#line 1636 "dhcp6_parser.yy" - { + case 466: +#line 1646 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); - ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2670 "dhcp6_parser.cc" +#line 2621 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 464: // $@71: %empty -#line 1644 "dhcp6_parser.yy" - { + case 468: +#line 1654 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2679 "dhcp6_parser.cc" +#line 2630 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 465: // option_def_type: "type" $@71 ":" "constant string" -#line 1647 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 469: +#line 1657 "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 2689 "dhcp6_parser.cc" +#line 2640 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 466: // $@72: %empty -#line 1653 "dhcp6_parser.yy" - { + case 470: +#line 1663 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2698 "dhcp6_parser.cc" +#line 2649 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 467: // option_def_record_types: "record-types" $@72 ":" "constant string" -#line 1656 "dhcp6_parser.yy" - { - ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 471: +#line 1666 "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 2708 "dhcp6_parser.cc" +#line 2659 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 468: // $@73: %empty -#line 1662 "dhcp6_parser.yy" - { + case 472: +#line 1672 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2717 "dhcp6_parser.cc" +#line 2668 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 469: // space: "space" $@73 ":" "constant string" -#line 1665 "dhcp6_parser.yy" - { - ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 473: +#line 1675 "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 2727 "dhcp6_parser.cc" +#line 2678 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 471: // $@74: %empty -#line 1673 "dhcp6_parser.yy" - { + case 475: +#line 1683 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2736 "dhcp6_parser.cc" +#line 2687 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 472: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" -#line 1676 "dhcp6_parser.yy" - { - ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 476: +#line 1686 "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 2746 "dhcp6_parser.cc" +#line 2697 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 473: // option_def_array: "array" ":" "boolean" -#line 1682 "dhcp6_parser.yy" - { + case 477: +#line 1692 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); - ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2756 "dhcp6_parser.cc" +#line 2707 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 474: // $@75: %empty -#line 1692 "dhcp6_parser.yy" - { + case 478: +#line 1702 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); 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 2768 "dhcp6_parser.cc" +#line 2719 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 475: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" -#line 1698 "dhcp6_parser.yy" - { + case 479: +#line 1708 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2777 "dhcp6_parser.cc" +#line 2728 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 480: // $@76: %empty -#line 1717 "dhcp6_parser.yy" - { + case 484: +#line 1727 "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 2787 "dhcp6_parser.cc" +#line 2738 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 481: // option_data_entry: "{" $@76 option_data_params "}" -#line 1721 "dhcp6_parser.yy" - { + case 485: +#line 1731 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2796 "dhcp6_parser.cc" +#line 2747 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 482: // $@77: %empty -#line 1729 "dhcp6_parser.yy" - { + case 486: +#line 1739 "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 2806 "dhcp6_parser.cc" +#line 2757 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 483: // sub_option_data: "{" $@77 option_data_params "}" -#line 1733 "dhcp6_parser.yy" - { + case 487: +#line 1743 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. // parsing completed } -#line 2815 "dhcp6_parser.cc" +#line 2766 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 498: // $@78: %empty -#line 1766 "dhcp6_parser.yy" - { + case 502: +#line 1776 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2824 "dhcp6_parser.cc" +#line 2775 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 499: // option_data_data: "data" $@78 ":" "constant string" -#line 1769 "dhcp6_parser.yy" - { - ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 503: +#line 1779 "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 2834 "dhcp6_parser.cc" +#line 2785 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 502: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1779 "dhcp6_parser.yy" - { + case 506: +#line 1789 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); - ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2844 "dhcp6_parser.cc" +#line 2795 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 503: // option_data_always_send: "always-send" ":" "boolean" -#line 1785 "dhcp6_parser.yy" - { + case 507: +#line 1795 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); - ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2854 "dhcp6_parser.cc" +#line 2805 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 504: // $@79: %empty -#line 1794 "dhcp6_parser.yy" - { + case 508: +#line 1804 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); 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 2866 "dhcp6_parser.cc" +#line 2817 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 505: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" -#line 1800 "dhcp6_parser.yy" - { + case 509: +#line 1810 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2875 "dhcp6_parser.cc" +#line 2826 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 510: // $@80: %empty -#line 1815 "dhcp6_parser.yy" - { + case 514: +#line 1825 "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 2885 "dhcp6_parser.cc" +#line 2836 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 511: // pool_list_entry: "{" $@80 pool_params "}" -#line 1819 "dhcp6_parser.yy" - { + case 515: +#line 1829 "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 2895 "dhcp6_parser.cc" +#line 2846 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 512: // $@81: %empty -#line 1825 "dhcp6_parser.yy" - { + case 516: +#line 1835 "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 2905 "dhcp6_parser.cc" +#line 2856 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 513: // sub_pool6: "{" $@81 pool_params "}" -#line 1829 "dhcp6_parser.yy" - { + case 517: +#line 1839 "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 2915 "dhcp6_parser.cc" +#line 2866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 523: // $@82: %empty -#line 1848 "dhcp6_parser.yy" - { + case 527: +#line 1858 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2924 "dhcp6_parser.cc" +#line 2875 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 524: // pool_entry: "pool" $@82 ":" "constant string" -#line 1851 "dhcp6_parser.yy" - { - ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 528: +#line 1861 "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 2934 "dhcp6_parser.cc" +#line 2885 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 525: // $@83: %empty -#line 1857 "dhcp6_parser.yy" - { + case 529: +#line 1867 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2942 "dhcp6_parser.cc" +#line 2893 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 526: // user_context: "user-context" $@83 ":" map_value -#line 1859 "dhcp6_parser.yy" - { + case 530: +#line 1869 "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 @@ -2965,23 +2916,23 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2969 "dhcp6_parser.cc" +#line 2920 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 527: // $@84: %empty -#line 1882 "dhcp6_parser.yy" - { + case 531: +#line 1892 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2977 "dhcp6_parser.cc" +#line 2928 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 528: // comment: "comment" $@84 ":" "constant string" -#line 1884 "dhcp6_parser.yy" - { + case 532: +#line 1894 "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 @@ -3002,1263 +2953,1259 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3006 "dhcp6_parser.cc" +#line 2957 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 529: // $@85: %empty -#line 1912 "dhcp6_parser.yy" - { + case 533: +#line 1922 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); 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 3018 "dhcp6_parser.cc" +#line 2969 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 530: // pd_pools_list: "pd-pools" $@85 ":" "[" pd_pools_list_content "]" -#line 1918 "dhcp6_parser.yy" - { + case 534: +#line 1928 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3027 "dhcp6_parser.cc" +#line 2978 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 535: // $@86: %empty -#line 1933 "dhcp6_parser.yy" - { + case 539: +#line 1943 "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 3037 "dhcp6_parser.cc" +#line 2988 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 536: // pd_pool_entry: "{" $@86 pd_pool_params "}" -#line 1937 "dhcp6_parser.yy" - { + case 540: +#line 1947 "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 3049 "dhcp6_parser.cc" +#line 3000 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 537: // $@87: %empty -#line 1945 "dhcp6_parser.yy" - { + case 541: +#line 1955 "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 3059 "dhcp6_parser.cc" +#line 3010 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 538: // sub_pd_pool: "{" $@87 pd_pool_params "}" -#line 1949 "dhcp6_parser.yy" - { + case 542: +#line 1959 "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 3071 "dhcp6_parser.cc" +#line 3022 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 552: // $@88: %empty -#line 1974 "dhcp6_parser.yy" - { + case 556: +#line 1984 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3080 "dhcp6_parser.cc" +#line 3031 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 553: // pd_prefix: "prefix" $@88 ":" "constant string" -#line 1977 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 557: +#line 1987 "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 3090 "dhcp6_parser.cc" +#line 3041 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 554: // pd_prefix_len: "prefix-len" ":" "integer" -#line 1983 "dhcp6_parser.yy" - { + case 558: +#line 1993 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3100 "dhcp6_parser.cc" +#line 3051 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 555: // $@89: %empty -#line 1989 "dhcp6_parser.yy" - { + case 559: +#line 1999 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3109 "dhcp6_parser.cc" +#line 3060 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 556: // excluded_prefix: "excluded-prefix" $@89 ":" "constant string" -#line 1992 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 560: +#line 2002 "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 3119 "dhcp6_parser.cc" +#line 3070 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 557: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 1998 "dhcp6_parser.yy" - { + case 561: +#line 2008 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3129 "dhcp6_parser.cc" +#line 3080 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 558: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2004 "dhcp6_parser.yy" - { + case 562: +#line 2014 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); - ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3139 "dhcp6_parser.cc" +#line 3090 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 559: // $@90: %empty -#line 2013 "dhcp6_parser.yy" - { + case 563: +#line 2023 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); 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 3151 "dhcp6_parser.cc" +#line 3102 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 560: // reservations: "reservations" $@90 ":" "[" reservations_list "]" -#line 2019 "dhcp6_parser.yy" - { + case 564: +#line 2029 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3160 "dhcp6_parser.cc" +#line 3111 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 565: // $@91: %empty -#line 2032 "dhcp6_parser.yy" - { + case 569: +#line 2042 "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 3170 "dhcp6_parser.cc" +#line 3121 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 566: // reservation: "{" $@91 reservation_params "}" -#line 2036 "dhcp6_parser.yy" - { + case 570: +#line 2046 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3179 "dhcp6_parser.cc" +#line 3130 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 567: // $@92: %empty -#line 2041 "dhcp6_parser.yy" - { + case 571: +#line 2051 "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 3189 "dhcp6_parser.cc" +#line 3140 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 568: // sub_reservation: "{" $@92 reservation_params "}" -#line 2045 "dhcp6_parser.yy" - { + case 572: +#line 2055 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. // parsing completed } -#line 3198 "dhcp6_parser.cc" +#line 3149 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 584: // $@93: %empty -#line 2072 "dhcp6_parser.yy" - { + case 588: +#line 2082 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); 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 3210 "dhcp6_parser.cc" +#line 3161 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 585: // ip_addresses: "ip-addresses" $@93 ":" list_strings -#line 2078 "dhcp6_parser.yy" - { + case 589: +#line 2088 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3219 "dhcp6_parser.cc" +#line 3170 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 586: // $@94: %empty -#line 2083 "dhcp6_parser.yy" - { + case 590: +#line 2093 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); 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 3231 "dhcp6_parser.cc" +#line 3182 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 587: // prefixes: "prefixes" $@94 ":" list_strings -#line 2089 "dhcp6_parser.yy" - { + case 591: +#line 2099 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3240 "dhcp6_parser.cc" +#line 3191 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 588: // $@95: %empty -#line 2094 "dhcp6_parser.yy" - { + case 592: +#line 2104 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3249 "dhcp6_parser.cc" +#line 3200 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 589: // duid: "duid" $@95 ":" "constant string" -#line 2097 "dhcp6_parser.yy" - { - ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 593: +#line 2107 "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 3259 "dhcp6_parser.cc" +#line 3210 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 590: // $@96: %empty -#line 2103 "dhcp6_parser.yy" - { + case 594: +#line 2113 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3268 "dhcp6_parser.cc" +#line 3219 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 591: // hw_address: "hw-address" $@96 ":" "constant string" -#line 2106 "dhcp6_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 595: +#line 2116 "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 3278 "dhcp6_parser.cc" +#line 3229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 592: // $@97: %empty -#line 2112 "dhcp6_parser.yy" - { + case 596: +#line 2122 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3287 "dhcp6_parser.cc" +#line 3238 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 593: // hostname: "hostname" $@97 ":" "constant string" -#line 2115 "dhcp6_parser.yy" - { - ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 597: +#line 2125 "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 3297 "dhcp6_parser.cc" +#line 3248 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 594: // $@98: %empty -#line 2121 "dhcp6_parser.yy" - { + case 598: +#line 2131 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3306 "dhcp6_parser.cc" +#line 3257 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 595: // flex_id_value: "flex-id" $@98 ":" "constant string" -#line 2124 "dhcp6_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 599: +#line 2134 "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 3316 "dhcp6_parser.cc" +#line 3267 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 596: // $@99: %empty -#line 2130 "dhcp6_parser.yy" - { + case 600: +#line 2140 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); 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 3328 "dhcp6_parser.cc" +#line 3279 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 597: // reservation_client_classes: "client-classes" $@99 ":" list_strings -#line 2136 "dhcp6_parser.yy" - { + case 601: +#line 2146 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3337 "dhcp6_parser.cc" +#line 3288 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 598: // $@100: %empty -#line 2144 "dhcp6_parser.yy" - { + case 602: +#line 2154 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); 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 3349 "dhcp6_parser.cc" +#line 3300 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 599: // relay: "relay" $@100 ":" "{" relay_map "}" -#line 2150 "dhcp6_parser.yy" - { + case 603: +#line 2160 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3358 "dhcp6_parser.cc" +#line 3309 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 602: // $@101: %empty -#line 2159 "dhcp6_parser.yy" - { + case 606: +#line 2169 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3367 "dhcp6_parser.cc" +#line 3318 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 603: // ip_address: "ip-address" $@101 ":" "constant string" -#line 2162 "dhcp6_parser.yy" - { - ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 607: +#line 2172 "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 3377 "dhcp6_parser.cc" +#line 3328 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 604: // $@102: %empty -#line 2171 "dhcp6_parser.yy" - { + case 608: +#line 2181 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); 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 3389 "dhcp6_parser.cc" +#line 3340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 605: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]" -#line 2177 "dhcp6_parser.yy" - { + case 609: +#line 2187 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3398 "dhcp6_parser.cc" +#line 3349 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 608: // $@103: %empty -#line 2186 "dhcp6_parser.yy" - { + case 612: +#line 2196 "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 3408 "dhcp6_parser.cc" +#line 3359 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 609: // client_class_entry: "{" $@103 client_class_params "}" -#line 2190 "dhcp6_parser.yy" - { + case 613: +#line 2200 "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 3418 "dhcp6_parser.cc" +#line 3369 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 622: // $@104: %empty -#line 2215 "dhcp6_parser.yy" - { + case 626: +#line 2225 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3427 "dhcp6_parser.cc" +#line 3378 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 623: // client_class_test: "test" $@104 ":" "constant string" -#line 2218 "dhcp6_parser.yy" - { - ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 627: +#line 2228 "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 3437 "dhcp6_parser.cc" +#line 3388 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 624: // only_if_required: "only-if-required" ":" "boolean" -#line 2224 "dhcp6_parser.yy" - { + case 628: +#line 2234 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3447 "dhcp6_parser.cc" +#line 3398 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 625: // $@105: %empty -#line 2233 "dhcp6_parser.yy" - { + case 629: +#line 2243 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); 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 3459 "dhcp6_parser.cc" +#line 3410 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 626: // server_id: "server-id" $@105 ":" "{" server_id_params "}" -#line 2239 "dhcp6_parser.yy" - { + case 630: +#line 2249 "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 3470 "dhcp6_parser.cc" +#line 3421 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 638: // $@106: %empty -#line 2261 "dhcp6_parser.yy" - { + case 642: +#line 2271 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 3479 "dhcp6_parser.cc" +#line 3430 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 639: // server_id_type: "type" $@106 ":" duid_type -#line 2264 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + case 643: +#line 2274 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3488 "dhcp6_parser.cc" +#line 3439 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 640: // duid_type: "LLT" -#line 2269 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3494 "dhcp6_parser.cc" + case 644: +#line 2279 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } +#line 3445 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 641: // duid_type: "EN" -#line 2270 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3500 "dhcp6_parser.cc" + case 645: +#line 2280 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } +#line 3451 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 642: // duid_type: "LL" -#line 2271 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3506 "dhcp6_parser.cc" + case 646: +#line 2281 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } +#line 3457 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 643: // htype: "htype" ":" "integer" -#line 2274 "dhcp6_parser.yy" - { + case 647: +#line 2284 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); - ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3516 "dhcp6_parser.cc" +#line 3467 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 644: // $@107: %empty -#line 2280 "dhcp6_parser.yy" - { + case 648: +#line 2290 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3525 "dhcp6_parser.cc" +#line 3476 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 645: // identifier: "identifier" $@107 ":" "constant string" -#line 2283 "dhcp6_parser.yy" - { - ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 649: +#line 2293 "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 3535 "dhcp6_parser.cc" +#line 3486 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 646: // time: "time" ":" "integer" -#line 2289 "dhcp6_parser.yy" - { + case 650: +#line 2299 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3545 "dhcp6_parser.cc" +#line 3496 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 647: // enterprise_id: "enterprise-id" ":" "integer" -#line 2295 "dhcp6_parser.yy" - { + case 651: +#line 2305 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3555 "dhcp6_parser.cc" +#line 3506 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 648: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2303 "dhcp6_parser.yy" - { + case 652: +#line 2313 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3565 "dhcp6_parser.cc" +#line 3516 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 649: // $@108: %empty -#line 2311 "dhcp6_parser.yy" - { + case 653: +#line 2321 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); 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 3577 "dhcp6_parser.cc" +#line 3528 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 650: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2317 "dhcp6_parser.yy" - { + case 654: +#line 2327 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3586 "dhcp6_parser.cc" +#line 3537 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 658: // $@109: %empty -#line 2333 "dhcp6_parser.yy" - { + case 662: +#line 2343 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3595 "dhcp6_parser.cc" +#line 3546 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 659: // socket_type: "socket-type" $@109 ":" "constant string" -#line 2336 "dhcp6_parser.yy" - { - ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 663: +#line 2346 "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 3605 "dhcp6_parser.cc" +#line 3556 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 660: // $@110: %empty -#line 2342 "dhcp6_parser.yy" - { + case 664: +#line 2352 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3614 "dhcp6_parser.cc" +#line 3565 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 661: // socket_name: "socket-name" $@110 ":" "constant string" -#line 2345 "dhcp6_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 665: +#line 2355 "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 3624 "dhcp6_parser.cc" +#line 3575 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 662: // $@111: %empty -#line 2354 "dhcp6_parser.yy" - { + case 666: +#line 2364 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); 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 3636 "dhcp6_parser.cc" +#line 3587 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 663: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" -#line 2360 "dhcp6_parser.yy" - { + case 667: +#line 2370 "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 3647 "dhcp6_parser.cc" +#line 3598 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 672: // enable_queue: "enable-queue" ":" "boolean" -#line 2379 "dhcp6_parser.yy" - { + case 676: +#line 2389 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3657 "dhcp6_parser.cc" +#line 3608 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 673: // $@112: %empty -#line 2385 "dhcp6_parser.yy" - { + case 677: +#line 2395 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3666 "dhcp6_parser.cc" +#line 3617 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 674: // queue_type: "queue-type" $@112 ":" "constant string" -#line 2388 "dhcp6_parser.yy" - { - ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 678: +#line 2398 "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 3676 "dhcp6_parser.cc" +#line 3627 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 675: // capacity: "capacity" ":" "integer" -#line 2394 "dhcp6_parser.yy" - { + case 679: +#line 2404 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); - ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr c(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3686 "dhcp6_parser.cc" +#line 3637 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 676: // $@113: %empty -#line 2400 "dhcp6_parser.yy" - { - ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); + case 680: +#line 2410 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.unique(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3695 "dhcp6_parser.cc" +#line 3646 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 677: // arbitrary_map_entry: "constant string" $@113 ":" value -#line 2403 "dhcp6_parser.yy" - { - ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + case 681: +#line 2413 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set(yystack_[3].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3704 "dhcp6_parser.cc" +#line 3655 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 678: // $@114: %empty -#line 2410 "dhcp6_parser.yy" - { + case 682: +#line 2420 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); 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 3716 "dhcp6_parser.cc" +#line 3667 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 679: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" -#line 2416 "dhcp6_parser.yy" - { + case 683: +#line 2426 "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 3727 "dhcp6_parser.cc" +#line 3678 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 680: // $@115: %empty -#line 2423 "dhcp6_parser.yy" - { + case 684: +#line 2433 "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 3737 "dhcp6_parser.cc" +#line 3688 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 681: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" -#line 2427 "dhcp6_parser.yy" - { + case 685: +#line 2437 "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 3747 "dhcp6_parser.cc" +#line 3698 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 702: // enable_updates: "enable-updates" ":" "boolean" -#line 2457 "dhcp6_parser.yy" - { + case 706: +#line 2467 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3757 "dhcp6_parser.cc" +#line 3708 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 703: // $@116: %empty -#line 2464 "dhcp6_parser.yy" - { + case 707: +#line 2474 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3766 "dhcp6_parser.cc" +#line 3717 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 704: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" -#line 2467 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 708: +#line 2477 "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 3776 "dhcp6_parser.cc" +#line 3727 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 705: // $@117: %empty -#line 2473 "dhcp6_parser.yy" - { + case 709: +#line 2483 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3785 "dhcp6_parser.cc" +#line 3736 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 706: // server_ip: "server-ip" $@117 ":" "constant string" -#line 2476 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 710: +#line 2486 "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 3795 "dhcp6_parser.cc" +#line 3746 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 707: // server_port: "server-port" ":" "integer" -#line 2482 "dhcp6_parser.yy" - { + case 711: +#line 2492 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3805 "dhcp6_parser.cc" +#line 3756 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 708: // $@118: %empty -#line 2488 "dhcp6_parser.yy" - { + case 712: +#line 2498 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3814 "dhcp6_parser.cc" +#line 3765 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 709: // sender_ip: "sender-ip" $@118 ":" "constant string" -#line 2491 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 713: +#line 2501 "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 3824 "dhcp6_parser.cc" +#line 3775 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 710: // sender_port: "sender-port" ":" "integer" -#line 2497 "dhcp6_parser.yy" - { + case 714: +#line 2507 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3834 "dhcp6_parser.cc" +#line 3785 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 711: // max_queue_size: "max-queue-size" ":" "integer" -#line 2503 "dhcp6_parser.yy" - { + case 715: +#line 2513 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3844 "dhcp6_parser.cc" +#line 3795 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 712: // $@119: %empty -#line 2509 "dhcp6_parser.yy" - { + case 716: +#line 2519 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 3853 "dhcp6_parser.cc" +#line 3804 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 713: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value -#line 2512 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); + case 717: +#line 2522 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3862 "dhcp6_parser.cc" +#line 3813 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 714: // ncr_protocol_value: "UDP" -#line 2518 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3868 "dhcp6_parser.cc" + case 718: +#line 2528 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } +#line 3819 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 715: // ncr_protocol_value: "TCP" -#line 2519 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3874 "dhcp6_parser.cc" + case 719: +#line 2529 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } +#line 3825 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 716: // $@120: %empty -#line 2522 "dhcp6_parser.yy" - { + case 720: +#line 2532 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 3883 "dhcp6_parser.cc" +#line 3834 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 717: // ncr_format: "ncr-format" $@120 ":" "JSON" -#line 2525 "dhcp6_parser.yy" - { + case 721: +#line 2535 "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 3893 "dhcp6_parser.cc" +#line 3844 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 718: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2532 "dhcp6_parser.yy" - { + case 722: +#line 2542 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3903 "dhcp6_parser.cc" +#line 3854 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 719: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2539 "dhcp6_parser.yy" - { + case 723: +#line 2549 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3913 "dhcp6_parser.cc" +#line 3864 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 720: // $@121: %empty -#line 2546 "dhcp6_parser.yy" - { + case 724: +#line 2556 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3922 "dhcp6_parser.cc" +#line 3873 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 721: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value -#line 2549 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); + case 725: +#line 2559 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3931 "dhcp6_parser.cc" +#line 3882 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 722: // $@122: %empty -#line 2555 "dhcp6_parser.yy" - { + case 726: +#line 2565 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3940 "dhcp6_parser.cc" +#line 3891 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 723: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" -#line 2558 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 727: +#line 2568 "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 3950 "dhcp6_parser.cc" +#line 3901 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 724: // $@123: %empty -#line 2565 "dhcp6_parser.yy" - { + case 728: +#line 2575 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3959 "dhcp6_parser.cc" +#line 3910 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 725: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" -#line 2568 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 729: +#line 2578 "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 3969 "dhcp6_parser.cc" +#line 3920 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 726: // $@124: %empty -#line 2575 "dhcp6_parser.yy" - { + case 730: +#line 2585 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3978 "dhcp6_parser.cc" +#line 3929 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 727: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" -#line 2578 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 731: +#line 2588 "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 3988 "dhcp6_parser.cc" +#line 3939 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 728: // $@125: %empty -#line 2587 "dhcp6_parser.yy" - { + case 732: +#line 2597 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); 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 4000 "dhcp6_parser.cc" +#line 3951 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 729: // config_control: "config-control" $@125 ":" "{" config_control_params "}" -#line 2593 "dhcp6_parser.yy" - { + case 733: +#line 2603 "dhcp6_parser.yy" // lalr1.cc:859 + { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4010 "dhcp6_parser.cc" +#line 3961 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 730: // $@126: %empty -#line 2599 "dhcp6_parser.yy" - { + case 734: +#line 2609 "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 4020 "dhcp6_parser.cc" +#line 3971 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 731: // sub_config_control: "{" $@126 config_control_params "}" -#line 2603 "dhcp6_parser.yy" - { + case 735: +#line 2613 "dhcp6_parser.yy" // lalr1.cc:859 + { // No config_control params are required // parsing completed } -#line 4029 "dhcp6_parser.cc" +#line 3980 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 736: // $@127: %empty -#line 2618 "dhcp6_parser.yy" - { + case 740: +#line 2628 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); 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 4041 "dhcp6_parser.cc" +#line 3992 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 737: // config_databases: "config-databases" $@127 ":" "[" database_list "]" -#line 2624 "dhcp6_parser.yy" - { + case 741: +#line 2634 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4050 "dhcp6_parser.cc" +#line 4001 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 738: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2629 "dhcp6_parser.yy" - { + case 742: +#line 2639 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); - ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + 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 4060 "dhcp6_parser.cc" +#line 4011 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 739: // $@128: %empty -#line 2637 "dhcp6_parser.yy" - { + case 743: +#line 2647 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); 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 4072 "dhcp6_parser.cc" +#line 4023 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 740: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" -#line 2643 "dhcp6_parser.yy" - { + case 744: +#line 2653 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4081 "dhcp6_parser.cc" +#line 4032 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 743: // $@129: %empty -#line 2655 "dhcp6_parser.yy" - { + case 747: +#line 2665 "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 4091 "dhcp6_parser.cc" +#line 4042 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 744: // logger_entry: "{" $@129 logger_params "}" -#line 2659 "dhcp6_parser.yy" - { + case 748: +#line 2669 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 4099 "dhcp6_parser.cc" +#line 4050 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 754: // debuglevel: "debuglevel" ":" "integer" -#line 2676 "dhcp6_parser.yy" - { + case 758: +#line 2686 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); - ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4109 "dhcp6_parser.cc" +#line 4060 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 755: // $@130: %empty -#line 2682 "dhcp6_parser.yy" - { + case 759: +#line 2692 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4118 "dhcp6_parser.cc" +#line 4069 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 756: // severity: "severity" $@130 ":" "constant string" -#line 2685 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 760: +#line 2695 "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 4128 "dhcp6_parser.cc" +#line 4079 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 757: // $@131: %empty -#line 2691 "dhcp6_parser.yy" - { + case 761: +#line 2701 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); 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 4140 "dhcp6_parser.cc" +#line 4091 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 758: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" -#line 2697 "dhcp6_parser.yy" - { + case 762: +#line 2707 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4149 "dhcp6_parser.cc" +#line 4100 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 761: // $@132: %empty -#line 2706 "dhcp6_parser.yy" - { + case 765: +#line 2716 "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 4159 "dhcp6_parser.cc" +#line 4110 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 762: // output_entry: "{" $@132 output_params_list "}" -#line 2710 "dhcp6_parser.yy" - { + case 766: +#line 2720 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 4167 "dhcp6_parser.cc" +#line 4118 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 770: // $@133: %empty -#line 2725 "dhcp6_parser.yy" - { + case 774: +#line 2735 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4176 "dhcp6_parser.cc" +#line 4127 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 771: // output: "output" $@133 ":" "constant string" -#line 2728 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 775: +#line 2738 "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 4186 "dhcp6_parser.cc" +#line 4137 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 772: // flush: "flush" ":" "boolean" -#line 2734 "dhcp6_parser.yy" - { + case 776: +#line 2744 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); - ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4196 "dhcp6_parser.cc" +#line 4147 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 773: // maxsize: "maxsize" ":" "integer" -#line 2740 "dhcp6_parser.yy" - { + case 777: +#line 2750 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); - ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4206 "dhcp6_parser.cc" +#line 4157 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 774: // maxver: "maxver" ":" "integer" -#line 2746 "dhcp6_parser.yy" - { + case 778: +#line 2756 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); - ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4216 "dhcp6_parser.cc" +#line 4167 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 775: // $@134: %empty -#line 2752 "dhcp6_parser.yy" - { + case 779: +#line 2762 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4225 "dhcp6_parser.cc" +#line 4176 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 776: // pattern: "pattern" $@134 ":" "constant string" -#line 2755 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 780: +#line 2765 "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 4235 "dhcp6_parser.cc" +#line 4186 "dhcp6_parser.cc" // lalr1.cc:859 break; -#line 4239 "dhcp6_parser.cc" - +#line 4190 "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. | `--------------------------------------*/ @@ -4267,9 +4214,7 @@ namespace isc { namespace dhcp { if (!yyerrstatus_) { ++yynerrs_; - context yyctx (*this, yyla); - std::string msg = yysyntax_error_ (yyctx); - error (yyla.location, YY_MOVE (msg)); + error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); } @@ -4280,7 +4225,7 @@ namespace isc { namespace dhcp { error, discard it. */ // Return failure if at end of input. - if (yyla.kind () == symbol_kind::S_YYEOF) + if (yyla.type_get () == yyeof_) YYABORT; else if (!yyla.empty ()) { @@ -4297,81 +4242,69 @@ 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; - YY_STACK_PRINT (); goto yyerrlab1; - /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus_ = 3; // Each real token shifted decrements this. - // Pop stack until we find a state that shifts the error token. - for (;;) - { - yyn = yypact_[+yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - yyn += symbol_kind::S_YYerror; - if (0 <= yyn && yyn <= yylast_ - && yycheck_[yyn] == symbol_kind::S_YYerror) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - // Pop the current state because it cannot handle the error token. - if (yystack_.size () == 1) - YYABORT; - - yyerror_range[1].location = yystack_[0].location; - yy_destroy_ ("Error: popping", yystack_[0]); - yypop_ (); - YY_STACK_PRINT (); - } { stack_symbol_type error_token; + for (;;) + { + yyn = yypact_[yystack_[0].state]; + if (!yy_pact_value_is_default_ (yyn)) + { + yyn += yyterror_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) + { + yyn = yytable_[yyn]; + if (0 < yyn) + break; + } + } + + // Pop the current state because it cannot handle the error token. + if (yystack_.size () == 1) + YYABORT; + + yyerror_range[1].location = yystack_[0].location; + yy_destroy_ ("Error: popping", yystack_[0]); + yypop_ (); + YY_STACK_PRINT (); + } yyerror_range[2].location = yyla.location; 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); @@ -4379,7 +4312,6 @@ namespace isc { namespace dhcp { /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ yypop_ (yylen); - YY_STACK_PRINT (); while (1 < yystack_.size ()) { yy_destroy_ ("Cleanup: popping", yystack_[0]); @@ -4388,12 +4320,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); @@ -4404,109 +4336,26 @@ namespace isc { namespace dhcp { } throw; } -#endif // YY_EXCEPTIONS } void Dhcp6Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what ()); - } - - /* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ - std::string - Dhcp6Parser::yytnamerr_ (const char *yystr) - { - if (*yystr == '"') - { - std::string yyr; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; + error (yyexc.location, yyexc.what()); } + // Generate an error message. std::string - Dhcp6Parser::symbol_name (symbol_kind_type yysymbol) + Dhcp6Parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const { - return yytnamerr_ (yytname_[yysymbol]); - } - - - - // Dhcp6Parser::context. - Dhcp6Parser::context::context (const Dhcp6Parser& yyparser, const symbol_type& yyla) - : yyparser_ (yyparser) - , yyla_ (yyla) - {} - - int - Dhcp6Parser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const - { - // Actual number of expected tokens - int yycount = 0; - - int yyn = yypact_[+yyparser_.yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - // Stay within bounds of both yycheck and yytname. - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror - && !yy_table_value_is_error_ (yytable_[yyx + yyn])) - { - if (!yyarg) - ++yycount; - else if (yycount == yyargn) - return 0; - else - yyarg[yycount++] = YY_CAST (symbol_kind_type, yyx); - } - } - - if (yyarg && yycount == 0 && 0 < yyargn) - yyarg[0] = symbol_kind::S_YYEMPTY; - return yycount; - } - - + // Number of reported tokens (one for the "unexpected", one per + // "expected"). + size_t yycount = 0; + // Its maximum. + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + // Arguments of yyformat. + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int - Dhcp6Parser::yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const - { /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action @@ -4525,32 +4374,41 @@ 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 (!yyctx.lookahead ().empty ()) + if (!yyla.empty ()) { - if (yyarg) - yyarg[0] = yyctx.token (); - int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1); - return yyn + 1; + int yytoken = yyla.type_get (); + yyarg[yycount++] = yytname_[yytoken]; + int yyn = yypact_[yystate]; + if (!yy_pact_value_is_default_ (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + // Stay within bounds of both yycheck and yytname. + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; + for (int yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_ + && !yy_table_value_is_error_ (yytable_[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + break; + } + else + yyarg[yycount++] = yytname_[yyx]; + } + } } - return 0; - } - - // Generate an error message. - std::string - Dhcp6Parser::yysyntax_error_ (const context& yyctx) const - { - // Its maximum. - enum { YYARGS_MAX = 5 }; - // Arguments of yyformat. - symbol_kind_type yyarg[YYARGS_MAX]; - int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX); char const* yyformat = YY_NULLPTR; switch (yycount) @@ -4559,23 +4417,22 @@ 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) { - yyres += symbol_name (yyarg[yyi++]); + yyres += yytnamerr_ (yyarg[yyi++]); ++yyp; } else @@ -4584,841 +4441,847 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -944; + const short int Dhcp6Parser::yypact_ninf_ = -949; const signed char Dhcp6Parser::yytable_ninf_ = -1; - const short + const short int Dhcp6Parser::yypact_[] = { - 186, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, 37, 33, 44, 62, 64, - 87, 95, 99, 103, 107, 116, 118, 147, 148, 205, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, 33, -4, - 203, 115, 39, 499, 10, 235, 222, 151, 117, 67, - -74, 605, 71, -944, 223, 225, 234, 233, 247, -944, - 299, -944, -944, -944, -944, -944, -944, 263, 304, 312, - 322, 330, 341, 363, 384, 390, 391, 406, 407, 409, - 410, -944, 412, 413, 420, 424, 426, -944, -944, -944, - 428, 438, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, 444, -944, - -944, -944, -944, -944, -944, 448, -944, 449, -944, 51, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, 452, -944, - 54, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 458, 460, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - 75, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, 101, -944, -944, -944, -944, -944, 463, -944, - 464, 465, -944, -944, -944, -944, -944, -944, 109, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 377, 294, -944, -944, - -944, -944, -944, -944, -944, -944, 379, -944, -944, 468, - -944, -944, -944, 469, -944, -944, 470, 473, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 480, 484, -944, -944, -944, -944, 481, 488, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 150, -944, -944, -944, 489, -944, -944, 490, -944, - 491, 492, -944, -944, 494, 496, -944, -944, -944, -944, - -944, -944, -944, 206, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 497, 207, -944, -944, -944, -944, 33, 33, -944, - 307, 504, -944, 506, 508, 509, 511, 516, 519, 326, - 328, 329, 332, 333, 334, 336, 337, 355, 340, 357, - 358, 360, 369, 525, 370, 372, 371, 373, 374, 534, - 535, 569, 375, 376, 574, 575, 577, 579, 580, 581, - 582, 583, 592, 593, 594, 595, 596, 597, 599, 600, - 415, 602, 604, 608, 609, 611, 612, 408, 613, -944, - 115, -944, 615, 419, 39, -944, 618, 619, 620, 621, - 622, 429, 430, 623, 625, 626, 499, -944, 628, 10, - -944, 629, 435, 631, 437, 442, 235, -944, 633, 639, - 640, 641, 642, 643, 644, -944, 222, -944, 645, 646, - 453, 647, 649, 655, 459, -944, 117, 657, 462, 466, - -944, 67, 660, 661, 14, -944, 467, 662, 665, 471, - 669, 475, 476, 672, 674, 478, 479, 692, 703, 711, - 712, 605, -944, 713, 520, 71, -944, -944, -944, 714, - 485, 522, 715, 716, 717, 718, 723, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 523, -944, -944, -944, -944, -944, 55, 533, 536, - -944, -944, 730, 731, 732, 733, 540, 382, 734, 736, - 737, 738, 739, 742, 744, 745, 746, 747, -944, 748, - 763, 764, 765, 546, 553, -944, 768, -944, 769, -944, - -944, 770, 771, 554, 584, 585, -944, -944, 769, 586, - 772, -944, 587, -944, 588, -944, 589, -944, -944, -944, - 769, 769, 769, 590, 591, 598, 601, -944, 603, 606, - -944, 607, 610, 614, -944, -944, 616, -944, -944, -944, - 617, 733, -944, -944, 624, 627, -944, 630, -944, -944, - -19, 635, -944, -944, 55, 632, 634, 636, -944, 775, - -944, -944, 33, 115, -944, 71, 39, 242, 242, 774, - -944, -944, -944, -944, -944, -944, -944, -944, -944, 783, - 784, 785, -944, -944, -944, -944, -944, -944, -944, -944, - 786, -76, 33, 290, 688, 788, 790, 791, 73, 228, - -46, 42, 202, 605, -944, -944, 793, -944, -944, 799, - 800, -944, -944, -944, -944, -944, -52, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 774, -944, 227, 239, - 245, -944, -944, -944, -944, 807, 809, 812, 813, 814, - -944, 815, 816, -944, -944, -944, 817, 819, 820, 822, - -944, 291, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, 292, -944, 821, 826, -944, -944, 825, - 830, -944, -944, 831, 833, -944, -944, 832, 836, -944, - -944, 834, 838, -944, -944, -944, 57, -944, -944, -944, - 837, -944, -944, -944, 187, -944, -944, -944, -944, 293, - -944, -944, -944, 254, -944, -944, 839, 841, -944, -944, - 840, 844, -944, 845, 846, 847, 848, 849, 850, 302, - -944, -944, -944, -944, -944, -944, -944, -944, -944, 851, - 852, 853, -944, -944, -944, -944, 324, -944, -944, -944, - -944, -944, -944, 854, 855, 856, -944, 325, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, 339, - -944, -944, -944, 857, -944, 858, -944, -944, -944, 350, - -944, -944, -944, -944, -944, 351, -944, 258, -944, 650, - -944, 859, 860, -944, -944, 861, 863, -944, -944, -944, - 862, -944, 865, -944, -944, -944, 864, 868, 869, 870, - 670, 663, 676, 675, 678, 874, 680, 681, 877, 878, - 879, 685, 686, 687, 690, 242, -944, -944, 242, -944, - 774, 499, -944, 783, 117, -944, 784, 67, -944, 785, - 637, -944, 786, -76, -944, -944, 290, -944, 882, 688, - -944, 259, 788, -944, 222, -944, 790, -74, -944, 791, - 693, 695, 696, 699, 706, 708, 73, -944, 883, 887, - 709, 724, 725, 228, -944, 735, 726, 740, -46, -944, - 913, 941, 42, -944, 750, 960, 777, 966, 202, -944, - -944, 214, 793, -944, -944, 967, 974, 10, -944, 799, - 235, -944, 800, 976, -944, -944, 414, 794, 805, 808, - -944, -944, -944, -944, -944, 818, -944, -944, 823, 827, - 828, -944, -944, -944, -944, -944, 352, -944, 353, -944, - 999, -944, 1004, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 354, -944, -944, -944, - -944, -944, -944, -944, -944, 829, -944, -944, 980, -944, - -944, -944, -944, -944, 1006, 1014, -944, -944, -944, -944, - -944, 1010, -944, 381, -944, -944, -944, -944, -944, -944, - -944, -944, 289, 835, -944, -944, -944, -944, -944, -944, - -944, -944, 843, 866, -944, -944, 867, -944, 33, -944, - -944, 1016, -944, -944, -944, -944, -944, 383, -944, -944, - -944, -944, -944, -944, 871, 393, -944, 399, -944, 872, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 637, -944, -944, 1019, - 873, -944, 259, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, 1020, 880, 1025, 214, -944, -944, - -944, -944, -944, -944, 875, -944, -944, 1027, -944, 884, - -944, -944, 1023, -944, -944, 338, -944, -32, 1023, -944, - -944, 1030, 1031, 1032, -944, 401, -944, -944, -944, -944, - -944, -944, -944, 1033, 876, 881, 885, 1034, -32, -944, - 888, -944, -944, -944, 889, -944, -944, -944 + 190, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, 39, 33, 62, 64, 78, + 89, 99, 103, 107, 131, 138, 217, 231, 244, 254, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 33, -132, + 119, 115, 49, 505, 258, 235, 221, 127, 120, 283, + -75, 537, 144, -949, 311, 226, 239, 242, 294, -949, + 323, -949, -949, -949, -949, -949, -949, 328, 338, 339, + 358, 386, 404, 405, 408, 409, 411, 414, 417, 424, + 426, -949, 428, 433, 436, 437, 439, -949, -949, -949, + 440, 442, 448, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, 452, + -949, -949, -949, -949, -949, -949, 457, -949, 462, -949, + 60, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + 464, -949, 94, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, 467, 468, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, 101, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, 109, -949, -949, -949, -949, + -949, 469, -949, 472, 473, -949, -949, -949, -949, -949, + -949, 113, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, 357, + 343, -949, -949, -949, -949, -949, -949, -949, -949, 390, + -949, -949, 476, -949, -949, -949, 479, -949, -949, 477, + 481, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 482, 484, -949, -949, -949, -949, + 485, 489, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 128, -949, -949, -949, 491, -949, + -949, 492, -949, 493, 494, -949, -949, 495, 496, -949, + -949, -949, -949, -949, -949, -949, 129, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 498, 186, -949, -949, -949, -949, + 33, 33, -949, 306, 500, -949, 508, 510, 512, 513, + 515, 520, 309, 327, 329, 331, 333, 334, 335, 336, + 337, 341, 344, 346, 340, 362, 534, 363, 364, 373, + 374, 376, 539, 561, 575, 378, 379, 380, 579, 580, + 581, 582, 584, 586, 587, 588, 589, 590, 599, 600, + 601, 602, 604, 605, 412, 607, 609, 611, 612, 615, + 616, 419, 618, -949, 115, -949, 619, 422, 49, -949, + 625, 626, 627, 628, 629, 434, 435, 631, 632, 634, + 505, -949, 635, 258, -949, 636, 441, 638, 446, 449, + 235, -949, 644, 646, 647, 648, 649, 650, 651, -949, + 221, -949, 652, 653, 458, 660, 661, 662, 466, -949, + 120, 665, 470, 471, -949, 283, 666, 667, 67, -949, + 474, 670, 671, 480, 673, 483, 486, 677, 680, 487, + 501, 681, 683, 684, 701, 537, -949, 702, 507, 144, + -949, -949, -949, 704, 705, 514, 707, 726, 727, 728, + 742, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, 551, -949, -949, -949, -949, + -949, -110, 552, 553, -949, -949, -949, 748, 749, 750, + 751, 557, 326, 752, 754, 755, 756, 757, 758, 760, + 763, 764, 767, -949, 768, 769, 770, 771, 563, 583, + -949, 774, -949, 775, -949, -949, 776, 778, 585, 591, + 592, -949, -949, 775, 593, 779, -949, 594, -949, 595, + -949, 596, -949, -949, -949, 775, 775, 775, 598, 603, + 606, 608, -949, 610, 613, -949, 614, 617, 620, -949, + -949, 621, -949, -949, -949, 622, 751, -949, -949, 623, + 624, -949, 630, -949, -949, -113, 541, -949, -949, -110, + 633, 637, 639, -949, 782, -949, -949, 33, 115, -949, + 144, 49, 243, 243, 791, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 792, 793, 794, -949, -949, -949, + -949, -949, -949, -949, -949, 796, -79, 33, 149, 682, + 797, 799, 801, 23, 167, 4, 9, -7, 537, -949, + -949, 803, -949, -949, 804, 807, -949, -949, -949, -949, + -949, -70, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, 791, -949, 199, 201, 219, -949, -949, -949, -949, + 811, 813, 814, 820, 821, -949, 822, 823, -949, -949, + -949, 824, 826, 827, 829, -949, 222, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 223, -949, + 828, 832, -949, -949, 831, 836, -949, -949, 834, 838, + -949, -949, 837, 839, -949, -949, 840, 841, -949, -949, + -949, 75, -949, -949, -949, 842, -949, -949, -949, 122, + -949, -949, -949, -949, 233, -949, -949, -949, 236, -949, + -949, 845, 844, -949, -949, 846, 850, -949, 851, 852, + 853, 854, 855, 856, 246, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 857, 858, 859, -949, -949, -949, + -949, 284, -949, -949, -949, -949, -949, -949, 860, 861, + 862, -949, 291, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 292, -949, -949, -949, 863, -949, + 864, -949, -949, -949, 293, -949, -949, -949, -949, -949, + 305, -949, 256, -949, 655, -949, 865, 866, -949, -949, + 867, 869, -949, -949, -949, 868, -949, 871, -949, -949, + -949, 870, 874, 875, 876, 645, 668, 685, 679, 686, + 878, 687, 688, 879, 880, 885, 690, 691, 692, 693, + 243, -949, -949, 243, -949, 791, 505, -949, 792, 120, + -949, 793, 283, -949, 794, 676, -949, 796, -79, -949, + -949, 149, -949, 888, 682, -949, 261, 797, -949, 221, + -949, 799, -75, -949, 801, 696, 697, 699, 700, 703, + 710, 23, -949, 908, 909, 722, 729, 730, 167, -949, + 739, 744, 781, 4, -949, 924, 946, 9, -949, 773, + 952, 785, 965, -7, -949, -949, 237, 803, -949, -949, + 972, 979, 258, -949, 804, 235, -949, 807, 985, -949, + -949, 191, 798, 812, 817, -949, -949, -949, -949, -949, + 830, -949, -949, 833, 835, 843, -949, -949, -949, -949, + -949, 342, -949, 360, -949, 1004, -949, 1012, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 361, -949, -949, -949, -949, -949, -949, -949, + -949, 847, -949, -949, 1017, -949, -949, -949, -949, -949, + 1014, 1022, -949, -949, -949, -949, -949, 1018, -949, 388, + -949, -949, -949, -949, -949, -949, -949, -949, 220, 848, + -949, -949, -949, -949, -949, -949, -949, -949, 872, 873, + -949, -949, 882, -949, 33, -949, -949, 1024, -949, -949, + -949, -949, -949, 394, -949, -949, -949, -949, -949, -949, + 883, 396, -949, 402, -949, 886, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 676, -949, -949, 1026, 849, -949, 261, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + 1027, 877, 1031, 237, -949, -949, -949, -949, -949, -949, + 887, -949, -949, 1032, -949, 889, -949, -949, 1033, -949, + -949, 312, -949, 211, 1033, -949, -949, 1034, 1035, 1037, + -949, 403, -949, -949, -949, -949, -949, -949, -949, 1039, + 890, 884, 891, 1040, 211, -949, 894, -949, -949, -949, + 895, -949, -949, -949 }; - const short + const unsigned short int Dhcp6Parser::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, 62, 7, 166, 9, 328, 11, - 512, 13, 537, 15, 567, 17, 437, 19, 445, 21, - 482, 23, 293, 25, 680, 27, 730, 29, 47, 41, - 0, 0, 0, 0, 0, 0, 569, 0, 447, 484, + 35, 36, 58, 5, 62, 7, 168, 9, 330, 11, + 516, 13, 541, 15, 571, 17, 441, 19, 449, 21, + 486, 23, 295, 25, 684, 27, 734, 29, 47, 41, + 0, 0, 0, 0, 0, 0, 573, 0, 451, 488, 0, 0, 0, 49, 0, 48, 0, 0, 42, 60, - 0, 123, 728, 164, 178, 180, 182, 0, 0, 0, + 0, 124, 732, 166, 180, 182, 184, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 163, 0, 0, 0, 0, 0, 143, 150, 152, + 0, 0, 0, 322, 439, 478, 529, 531, 384, 392, + 255, 272, 263, 248, 608, 563, 287, 306, 629, 0, + 274, 653, 666, 682, 156, 158, 0, 743, 0, 123, + 0, 64, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 102, 103, 104, 105, 106, 75, 110, 111, 112, + 113, 114, 115, 116, 117, 108, 109, 118, 119, 120, + 100, 122, 78, 79, 80, 81, 97, 82, 84, 83, + 121, 88, 89, 76, 101, 77, 86, 87, 95, 96, + 98, 85, 90, 91, 92, 93, 94, 99, 107, 177, + 0, 176, 0, 170, 172, 173, 174, 175, 508, 533, + 374, 376, 378, 0, 0, 382, 380, 602, 373, 334, + 335, 336, 337, 338, 339, 340, 341, 357, 358, 359, + 360, 361, 364, 365, 366, 367, 368, 369, 370, 371, + 362, 363, 372, 0, 332, 345, 346, 347, 350, 351, + 353, 348, 349, 342, 343, 355, 356, 344, 352, 354, + 527, 526, 522, 523, 521, 0, 518, 520, 524, 525, + 556, 0, 559, 0, 0, 555, 549, 550, 548, 553, + 554, 0, 543, 545, 546, 551, 552, 547, 600, 588, + 590, 592, 594, 596, 598, 587, 584, 585, 586, 0, + 574, 575, 579, 580, 577, 581, 582, 583, 578, 0, + 468, 228, 0, 472, 470, 475, 0, 464, 465, 0, + 452, 453, 455, 467, 456, 457, 458, 474, 459, 460, + 461, 462, 463, 502, 0, 0, 500, 501, 504, 505, + 0, 489, 490, 492, 493, 494, 495, 496, 497, 498, + 499, 302, 304, 299, 0, 297, 300, 301, 0, 707, + 709, 0, 712, 0, 0, 716, 720, 0, 0, 724, + 726, 728, 730, 705, 703, 704, 0, 686, 688, 700, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 701, 702, 740, 0, 0, 736, 738, 739, 46, + 0, 0, 39, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 0, 142, 149, 151, - 0, 0, 320, 435, 474, 525, 527, 381, 389, 253, - 270, 261, 246, 604, 559, 285, 304, 625, 0, 272, - 649, 662, 678, 154, 156, 0, 739, 0, 122, 0, - 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 102, 103, 104, 105, 106, 75, 110, 111, 112, 113, - 114, 115, 116, 108, 109, 117, 118, 119, 100, 121, - 78, 79, 80, 81, 97, 82, 84, 83, 120, 88, - 89, 76, 101, 77, 86, 87, 95, 96, 98, 85, - 90, 91, 92, 93, 94, 99, 107, 175, 0, 174, - 0, 168, 170, 171, 172, 173, 504, 529, 371, 373, - 375, 0, 0, 379, 377, 598, 370, 332, 333, 334, - 335, 336, 337, 338, 339, 355, 356, 357, 358, 359, - 362, 363, 364, 365, 366, 367, 368, 360, 361, 369, - 0, 330, 343, 344, 345, 348, 349, 351, 346, 347, - 340, 341, 353, 354, 342, 350, 352, 523, 522, 518, - 519, 517, 0, 514, 516, 520, 521, 552, 0, 555, - 0, 0, 551, 545, 546, 544, 549, 550, 0, 539, - 541, 542, 547, 548, 543, 596, 584, 586, 588, 590, - 592, 594, 583, 580, 581, 582, 0, 570, 571, 575, - 576, 573, 577, 578, 579, 574, 0, 464, 226, 0, - 468, 466, 471, 0, 460, 461, 0, 448, 449, 451, - 463, 452, 453, 454, 470, 455, 456, 457, 458, 459, - 498, 0, 0, 496, 497, 500, 501, 0, 485, 486, - 488, 489, 490, 491, 492, 493, 494, 495, 300, 302, - 297, 0, 295, 298, 299, 0, 703, 705, 0, 708, - 0, 0, 712, 716, 0, 0, 720, 722, 724, 726, - 701, 699, 700, 0, 682, 684, 696, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 697, 698, - 736, 0, 0, 732, 734, 735, 46, 0, 0, 39, - 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, - 0, 63, 0, 0, 0, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 329, 0, 0, - 513, 0, 0, 0, 0, 0, 0, 538, 0, 0, - 0, 0, 0, 0, 0, 568, 0, 438, 0, 0, - 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, - 483, 0, 0, 0, 0, 294, 0, 0, 0, 0, + 0, 0, 0, 57, 0, 63, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 681, 0, 0, 0, 731, 50, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 159, 160, 139, 140, 141, 0, 0, 0, - 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, - 0, 0, 0, 0, 0, 163, 0, 65, 0, 177, - 169, 0, 0, 0, 0, 0, 387, 388, 0, 0, - 0, 331, 0, 515, 0, 554, 0, 557, 558, 540, - 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, - 462, 0, 0, 0, 473, 450, 0, 502, 503, 487, - 0, 0, 296, 702, 0, 0, 707, 0, 710, 711, - 0, 0, 718, 719, 0, 0, 0, 0, 683, 0, - 738, 733, 0, 0, 124, 0, 0, 0, 0, 184, - 162, 144, 145, 146, 147, 148, 143, 150, 152, 322, - 439, 476, 40, 526, 528, 383, 384, 385, 386, 382, - 391, 0, 47, 0, 0, 0, 561, 287, 0, 0, - 0, 0, 0, 0, 155, 157, 0, 51, 176, 506, - 531, 372, 374, 376, 380, 378, 0, 524, 553, 556, - 597, 585, 587, 589, 591, 593, 595, 465, 227, 469, - 467, 472, 499, 301, 303, 704, 706, 709, 714, 715, - 713, 717, 721, 723, 725, 727, 184, 44, 0, 0, - 0, 213, 219, 221, 223, 0, 0, 0, 0, 0, - 237, 0, 0, 240, 242, 244, 0, 0, 0, 0, - 212, 0, 190, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 204, 211, 205, 206, 207, 202, 203, - 208, 209, 210, 0, 188, 0, 185, 186, 326, 0, - 323, 324, 443, 0, 440, 441, 480, 0, 477, 478, - 395, 0, 392, 393, 259, 260, 0, 255, 257, 258, - 0, 268, 269, 265, 0, 263, 266, 267, 251, 0, - 248, 250, 608, 0, 606, 565, 0, 562, 563, 291, - 0, 288, 289, 0, 0, 0, 0, 0, 0, 0, - 306, 308, 309, 310, 311, 312, 313, 638, 644, 0, - 0, 0, 637, 634, 635, 636, 0, 627, 629, 632, - 630, 631, 633, 0, 0, 0, 281, 0, 274, 276, - 277, 278, 279, 280, 658, 660, 657, 655, 656, 0, - 651, 653, 654, 0, 673, 0, 676, 669, 670, 0, - 664, 666, 667, 668, 671, 0, 743, 0, 741, 53, - 510, 0, 507, 508, 535, 0, 532, 533, 602, 601, - 0, 600, 0, 61, 729, 165, 0, 0, 0, 0, + 0, 331, 0, 0, 517, 0, 0, 0, 0, 0, + 0, 542, 0, 0, 0, 0, 0, 0, 0, 572, + 0, 442, 0, 0, 0, 0, 0, 0, 0, 450, + 0, 0, 0, 0, 487, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 179, 181, 0, 183, - 0, 0, 321, 0, 447, 436, 0, 484, 475, 0, - 0, 390, 0, 0, 254, 271, 0, 262, 0, 0, - 247, 610, 0, 605, 569, 560, 0, 0, 286, 0, - 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, - 0, 0, 0, 0, 626, 0, 0, 0, 0, 273, - 0, 0, 0, 650, 0, 0, 0, 0, 0, 663, - 679, 0, 0, 740, 55, 0, 54, 0, 505, 0, - 0, 530, 0, 0, 599, 737, 0, 0, 0, 0, - 225, 228, 229, 230, 231, 0, 239, 232, 0, 0, - 0, 234, 235, 236, 233, 191, 0, 187, 0, 325, - 0, 442, 0, 479, 434, 410, 411, 412, 414, 415, - 416, 403, 404, 419, 420, 421, 422, 423, 426, 427, - 428, 429, 430, 431, 432, 424, 425, 433, 399, 400, - 401, 402, 408, 409, 407, 413, 0, 397, 405, 417, - 418, 406, 394, 256, 264, 0, 249, 622, 0, 620, - 621, 617, 618, 619, 0, 611, 612, 614, 615, 616, - 607, 0, 564, 0, 290, 314, 315, 316, 317, 318, - 319, 307, 0, 0, 643, 646, 647, 628, 282, 283, - 284, 275, 0, 0, 652, 672, 0, 675, 0, 665, - 757, 0, 755, 753, 747, 751, 752, 0, 745, 749, - 750, 748, 742, 52, 0, 0, 509, 0, 534, 0, - 215, 216, 217, 218, 214, 220, 222, 224, 238, 241, - 243, 245, 189, 327, 444, 481, 0, 396, 252, 0, - 0, 609, 0, 566, 292, 640, 641, 642, 639, 645, - 659, 661, 674, 677, 0, 0, 0, 0, 744, 56, - 511, 536, 603, 398, 0, 624, 613, 0, 754, 0, - 746, 623, 0, 756, 761, 0, 759, 0, 0, 758, - 770, 0, 0, 0, 775, 0, 763, 765, 766, 767, - 768, 769, 760, 0, 0, 0, 0, 0, 0, 762, - 0, 772, 773, 774, 0, 764, 771, 776 + 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, + 735, 50, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 0, 161, 162, 140, 141, + 142, 0, 0, 0, 154, 155, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, + 165, 0, 65, 0, 179, 171, 0, 0, 0, 0, + 0, 390, 391, 0, 0, 0, 333, 0, 519, 0, + 558, 0, 561, 562, 544, 0, 0, 0, 0, 0, + 0, 0, 576, 0, 0, 466, 0, 0, 0, 477, + 454, 0, 506, 507, 491, 0, 0, 298, 706, 0, + 0, 711, 0, 714, 715, 0, 0, 722, 723, 0, + 0, 0, 0, 687, 0, 742, 737, 0, 0, 125, + 0, 0, 0, 0, 186, 164, 145, 146, 147, 148, + 149, 144, 151, 153, 324, 443, 480, 40, 530, 532, + 386, 387, 388, 389, 385, 394, 0, 47, 0, 0, + 0, 565, 289, 0, 0, 0, 0, 0, 0, 157, + 159, 0, 51, 178, 510, 535, 375, 377, 379, 383, + 381, 0, 528, 557, 560, 601, 589, 591, 593, 595, + 597, 599, 469, 229, 473, 471, 476, 503, 303, 305, + 708, 710, 713, 718, 719, 717, 721, 725, 727, 729, + 731, 186, 44, 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, 447, 0, 444, + 445, 484, 0, 481, 482, 398, 0, 395, 396, 261, + 262, 0, 257, 259, 260, 0, 270, 271, 267, 0, + 265, 268, 269, 253, 0, 250, 252, 612, 0, 610, + 569, 0, 566, 567, 293, 0, 290, 291, 0, 0, + 0, 0, 0, 0, 0, 308, 310, 311, 312, 313, + 314, 315, 642, 648, 0, 0, 0, 641, 638, 639, + 640, 0, 631, 633, 636, 634, 635, 637, 0, 0, + 0, 283, 0, 276, 278, 279, 280, 281, 282, 662, + 664, 661, 659, 660, 0, 655, 657, 658, 0, 677, + 0, 680, 673, 674, 0, 668, 670, 671, 672, 675, + 0, 747, 0, 745, 53, 514, 0, 511, 512, 539, + 0, 536, 537, 606, 605, 0, 604, 0, 61, 733, + 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, 451, + 440, 0, 488, 479, 0, 0, 393, 0, 0, 256, + 273, 0, 264, 0, 0, 249, 614, 0, 609, 573, + 564, 0, 0, 288, 0, 0, 0, 0, 0, 0, + 0, 0, 307, 0, 0, 0, 0, 0, 0, 630, + 0, 0, 0, 0, 275, 0, 0, 0, 654, 0, + 0, 0, 0, 0, 667, 683, 0, 0, 744, 55, + 0, 54, 0, 509, 0, 0, 534, 0, 0, 603, + 741, 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, 446, 0, 483, 438, + 413, 414, 415, 417, 418, 419, 406, 407, 422, 423, + 424, 425, 426, 429, 430, 431, 432, 433, 434, 435, + 436, 427, 428, 437, 402, 403, 404, 405, 411, 412, + 410, 416, 0, 400, 408, 420, 421, 409, 397, 258, + 266, 0, 251, 626, 0, 624, 625, 621, 622, 623, + 0, 615, 616, 618, 619, 620, 611, 0, 568, 0, + 292, 316, 317, 318, 319, 320, 321, 309, 0, 0, + 647, 650, 651, 632, 284, 285, 286, 277, 0, 0, + 656, 676, 0, 679, 0, 669, 761, 0, 759, 757, + 751, 755, 756, 0, 749, 753, 754, 752, 746, 52, + 0, 0, 513, 0, 538, 0, 217, 218, 219, 220, + 216, 222, 224, 226, 240, 243, 245, 247, 191, 329, + 448, 485, 0, 399, 254, 0, 0, 613, 0, 570, + 294, 644, 645, 646, 643, 649, 663, 665, 678, 681, + 0, 0, 0, 0, 748, 56, 515, 540, 607, 401, + 0, 628, 617, 0, 758, 0, 750, 627, 0, 760, + 765, 0, 763, 0, 0, 762, 774, 0, 0, 0, + 779, 0, 767, 769, 770, 771, 772, 773, 764, 0, + 0, 0, 0, 0, 0, 766, 0, 776, 777, 778, + 0, 768, 775, 780 }; - const short + const short int Dhcp6Parser::yypgoto_[] = { - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -10, -944, -544, -944, - 191, -944, -944, -944, -944, 342, -944, -565, -944, -944, - -944, -71, -944, -944, -944, -944, -944, -944, 366, 572, - -944, -944, -59, -43, -42, -40, -39, -28, -27, -26, - -23, -21, -15, -9, -3, -944, -1, 17, 18, 20, - -944, 385, 25, -944, 28, -944, 30, 32, -944, 35, - -944, 38, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 378, 571, -944, -944, -944, -944, -944, -944, -944, - -944, -944, 295, -944, 86, -944, -656, 92, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -67, -944, - -694, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 69, -944, -944, -944, -944, -944, 77, -678, -944, - -944, -944, -944, 76, -944, -944, -944, -944, -944, -944, - -944, 47, -944, -944, -944, -944, -944, -944, -944, 68, - -944, -944, -944, 66, 532, -944, -944, -944, -944, -944, - -944, -944, 63, -944, -944, -944, -944, -944, -944, -943, - -944, -944, -944, 97, -944, -944, -944, 100, 576, -944, - -944, -942, -944, -941, -944, 41, -944, 45, -944, 40, - -944, -944, -944, -935, -944, -944, -944, -944, 91, -944, - -944, -128, 989, -944, -944, -944, -944, -944, 110, -944, - -944, -944, 114, -944, 551, -944, -66, -944, -944, -944, - -944, -944, -47, -944, -944, -944, -944, -944, 13, -944, - -944, -944, 112, -944, -944, -944, 121, -944, 562, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - 56, -944, -944, -944, 65, 652, -944, -944, -55, -944, - 1, -944, -944, -944, -944, -944, 58, -944, -944, -944, - 59, 638, -944, -944, -944, -944, -944, -944, -944, -57, - -944, -944, -944, 105, -944, -944, -944, 111, -944, 648, - 367, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -934, -944, -944, -944, -944, -944, - -944, -944, 119, -944, -944, -944, -98, -944, -944, -944, - -944, -944, -944, -944, 93, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, 85, -944, -944, - -944, -944, -944, -944, -944, 80, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 386, 559, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, 427, 558, -944, - -944, -944, -944, -944, -944, 82, -944, -944, -102, -944, - -944, -944, -944, -944, -944, -122, -944, -944, -141, -944, - -944, -944, -944, -944, -944, -944 + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -10, -949, -549, -949, + 393, -949, -949, -949, -949, 345, -949, -580, -949, -949, + -949, -71, -949, -949, -949, -949, -949, -949, 372, 640, + -949, -949, -59, -43, -42, -40, -39, -28, -27, -26, + -23, -21, -15, -9, -3, -949, -1, 17, 18, 20, + -949, 384, 25, -949, 28, -949, 30, 32, 35, -949, + 38, -949, 40, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 375, 576, -949, -949, -949, -949, -949, -949, + -949, -949, -949, 296, -949, 90, -949, -661, 98, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -67, + -949, -699, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 76, -949, -949, -949, -949, -949, 81, -683, + -949, -949, -949, -949, 80, -949, -949, -949, -949, -949, + -949, -949, 50, -949, -949, -949, -949, -949, -949, -949, + 68, -949, -949, -949, 72, 538, -949, -949, -949, -949, + -949, -949, -949, 66, -949, -949, -949, -949, -949, -949, + -948, -949, -949, -949, 97, -949, -949, -949, 102, 597, + -949, -949, -947, -949, -946, -949, 44, -949, 48, -949, + 42, -949, -949, -949, -940, -949, -949, -949, -949, 92, + -949, -949, -122, 996, -949, -949, -949, -949, -949, 104, + -949, -949, -949, 105, -949, 558, -949, -66, -949, -949, + -949, -949, -949, -47, -949, -949, -949, -949, -949, 13, + -949, -949, -949, 116, -949, -949, -949, 117, -949, 570, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, 63, -949, -949, -949, 69, 641, -949, -949, -55, + -949, 1, -949, -949, -949, -949, -949, 59, -949, -949, + -949, 65, 654, -949, -949, -949, -949, -949, -949, -949, + -57, -949, -949, -949, 108, -949, -949, -949, 114, -949, + 657, 367, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -939, -949, -949, -949, -949, + -949, -949, -949, 118, -949, -949, -949, -96, -949, -949, + -949, -949, -949, -949, -949, 96, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 91, -949, + -949, -949, -949, -949, -949, -949, 83, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, 389, 564, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 430, 562, + -949, -949, -949, -949, -949, -949, 85, -949, -949, -100, + -949, -949, -949, -949, -949, -949, -119, -949, -949, -138, + -949, -949, -949, -949, -949, -949, -949 }; - const short + const short int Dhcp6Parser::yydefgoto_[] = { -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 693, 87, 88, 41, 68, 84, 85, 718, 919, 1025, - 1026, 780, 43, 70, 90, 411, 45, 71, 149, 150, - 151, 413, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 439, 686, 170, 440, 171, 441, 172, 173, 465, 174, - 466, 175, 176, 177, 178, 433, 179, 180, 415, 47, - 72, 210, 211, 212, 472, 213, 181, 416, 182, 417, - 183, 418, 805, 806, 807, 958, 781, 782, 783, 936, - 1174, 784, 937, 785, 938, 786, 939, 787, 788, 509, - 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, - 945, 799, 800, 948, 801, 949, 802, 950, 184, 454, - 839, 840, 841, 978, 185, 451, 826, 827, 828, 829, - 186, 453, 834, 835, 836, 837, 187, 452, 188, 461, - 887, 888, 889, 890, 891, 189, 457, 850, 851, 852, - 987, 63, 80, 361, 362, 363, 522, 364, 523, 190, - 458, 859, 860, 861, 862, 863, 864, 865, 866, 191, - 444, 809, 810, 811, 961, 49, 73, 250, 251, 252, - 478, 253, 479, 254, 480, 255, 484, 256, 483, 192, - 449, 699, 258, 259, 193, 450, 821, 822, 823, 970, - 1096, 1097, 194, 445, 57, 77, 813, 814, 815, 964, - 59, 78, 326, 327, 328, 329, 330, 331, 332, 508, - 333, 512, 334, 511, 335, 336, 513, 337, 195, 446, - 817, 818, 819, 967, 61, 79, 347, 348, 349, 350, - 351, 517, 352, 353, 354, 355, 261, 476, 921, 922, - 923, 1027, 51, 74, 272, 273, 274, 488, 196, 447, - 197, 448, 264, 477, 925, 926, 927, 1030, 53, 75, - 288, 289, 290, 491, 291, 292, 493, 293, 294, 198, - 456, 846, 847, 848, 984, 55, 76, 306, 307, 308, - 309, 499, 310, 500, 311, 501, 312, 502, 313, 503, - 314, 504, 315, 498, 266, 485, 930, 931, 1033, 199, - 455, 843, 844, 981, 1114, 1115, 1116, 1117, 1118, 1189, - 1119, 200, 459, 876, 877, 878, 998, 1198, 879, 880, - 999, 881, 882, 201, 202, 462, 899, 900, 901, 1010, - 902, 1011, 203, 463, 909, 910, 911, 912, 1015, 913, - 914, 1017, 204, 464, 65, 81, 383, 384, 385, 386, - 527, 387, 528, 388, 389, 530, 390, 391, 392, 533, - 750, 393, 534, 394, 395, 396, 537, 397, 538, 398, - 539, 399, 540, 205, 414, 67, 82, 402, 403, 404, - 543, 405, 206, 468, 917, 918, 1021, 1157, 1158, 1159, - 1160, 1206, 1161, 1204, 1225, 1226, 1227, 1235, 1236, 1237, - 1243, 1238, 1239, 1240, 1241, 1247 + 698, 87, 88, 41, 68, 84, 85, 723, 924, 1030, + 1031, 785, 43, 70, 90, 414, 45, 71, 150, 151, + 152, 416, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 442, 691, 171, 443, 172, 444, 173, 174, 175, 469, + 176, 470, 177, 178, 179, 180, 436, 181, 182, 418, + 47, 72, 212, 213, 214, 476, 215, 183, 419, 184, + 420, 185, 421, 810, 811, 812, 963, 786, 787, 788, + 941, 1180, 789, 942, 790, 943, 791, 944, 792, 793, + 513, 794, 795, 796, 797, 798, 799, 800, 801, 802, + 803, 950, 804, 805, 953, 806, 954, 807, 955, 186, + 458, 844, 845, 846, 983, 187, 455, 831, 832, 833, + 834, 188, 457, 839, 840, 841, 842, 189, 456, 190, + 465, 892, 893, 894, 895, 896, 191, 461, 855, 856, + 857, 992, 63, 80, 364, 365, 366, 526, 367, 527, + 192, 462, 864, 865, 866, 867, 868, 869, 870, 871, + 193, 448, 814, 815, 816, 966, 49, 73, 253, 254, + 255, 482, 256, 483, 257, 484, 258, 488, 259, 487, + 194, 453, 704, 261, 262, 195, 454, 826, 827, 828, + 975, 1102, 1103, 196, 449, 57, 77, 818, 819, 820, + 969, 59, 78, 329, 330, 331, 332, 333, 334, 335, + 512, 336, 516, 337, 515, 338, 339, 517, 340, 197, + 450, 822, 823, 824, 972, 61, 79, 350, 351, 352, + 353, 354, 521, 355, 356, 357, 358, 264, 480, 926, + 927, 928, 1032, 51, 74, 275, 276, 277, 492, 198, + 451, 199, 452, 267, 481, 930, 931, 932, 1035, 53, + 75, 291, 292, 293, 495, 294, 295, 497, 296, 297, + 200, 460, 851, 852, 853, 989, 55, 76, 309, 310, + 311, 312, 503, 313, 504, 314, 505, 315, 506, 316, + 507, 317, 508, 318, 502, 269, 489, 935, 936, 1038, + 201, 459, 848, 849, 986, 1120, 1121, 1122, 1123, 1124, + 1195, 1125, 202, 463, 881, 882, 883, 1003, 1204, 884, + 885, 1004, 886, 887, 203, 204, 466, 904, 905, 906, + 1015, 907, 1016, 205, 467, 914, 915, 916, 917, 1020, + 918, 919, 1022, 206, 468, 65, 81, 386, 387, 388, + 389, 531, 390, 532, 391, 392, 534, 393, 394, 395, + 537, 755, 396, 538, 397, 398, 399, 541, 400, 542, + 401, 543, 402, 544, 207, 417, 67, 82, 405, 406, + 407, 547, 408, 208, 472, 922, 923, 1026, 1163, 1164, + 1165, 1166, 1212, 1167, 1210, 1231, 1232, 1233, 1241, 1242, + 1243, 1249, 1244, 1245, 1246, 1247, 1253 }; - const short + const unsigned short int Dhcp6Parser::yytable_[] = { - 148, 209, 226, 268, 282, 302, 38, 324, 343, 360, - 380, 325, 344, 345, 227, 873, 265, 214, 262, 275, - 286, 304, 803, 338, 356, 833, 381, 1089, 1090, 1091, - 228, 229, 346, 230, 231, 1095, 1101, 30, 31, 824, - 32, 692, 33, 125, 126, 232, 233, 234, 358, 359, - 235, 42, 236, 724, 470, 207, 208, 474, 237, 471, - 973, 296, 475, 974, 238, 730, 731, 732, 928, 44, - 239, 46, 240, 215, 263, 276, 287, 305, 486, 339, - 357, 124, 382, 487, 400, 401, 260, 271, 285, 303, - 241, 242, 267, 243, 48, 883, 884, 885, 244, 125, - 126, 245, 50, 246, 489, 247, 52, 692, 248, 490, - 54, 249, 496, 257, 56, 269, 283, 497, 223, 270, - 284, 224, 825, 58, 147, 60, 91, 92, 125, 126, - 93, 125, 126, 94, 95, 96, 358, 359, 317, 318, - 340, 319, 320, 341, 342, 1230, 748, 749, 1231, 1232, - 1233, 1234, 147, 524, 62, 64, 125, 126, 525, 97, + 149, 211, 228, 271, 285, 305, 38, 327, 346, 363, + 383, 328, 347, 348, 229, 878, 268, 216, 265, 278, + 289, 307, 808, 341, 359, 838, 384, 1095, 1096, 1097, + 230, 231, 349, 232, 233, 1101, 1107, 829, 31, 30, + 32, 697, 33, 729, 299, 234, 235, 236, 361, 362, + 237, 933, 238, 753, 754, 735, 736, 737, 239, 686, + 687, 688, 689, 474, 240, 209, 210, 86, 475, 42, + 241, 44, 242, 217, 266, 279, 290, 308, 978, 342, + 360, 979, 385, 126, 127, 46, 263, 274, 288, 306, + 243, 244, 690, 245, 126, 127, 48, 478, 246, 126, + 127, 247, 479, 248, 490, 249, 50, 697, 250, 491, + 52, 251, 493, 252, 54, 260, 500, 494, 272, 286, + 830, 501, 273, 287, 148, 981, 91, 92, 982, 89, + 93, 528, 545, 94, 95, 96, 529, 546, 56, 126, + 127, 320, 908, 909, 910, 58, 888, 889, 890, 858, + 859, 860, 861, 862, 863, 899, 900, 403, 404, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 894, 895, 318, - 976, 319, 320, 977, 86, 321, 322, 323, 853, 854, - 855, 856, 857, 858, 125, 126, 125, 126, 147, 541, - 545, 127, 66, 89, 542, 546, 128, 129, 130, 131, - 132, 123, 133, 681, 682, 683, 684, 134, 407, 406, - 470, 34, 35, 36, 37, 933, 135, 147, 408, 136, - 147, 409, 545, 1089, 1090, 1091, 137, 934, 474, 867, - 410, 1095, 1101, 935, 138, 139, 685, 982, 766, 140, - 983, 1022, 141, 761, 1023, 147, 142, 419, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 318, 143, 144, 145, - 146, 125, 126, 124, 955, 955, 979, 506, 833, 956, - 957, 980, 1056, 125, 126, 996, 124, 412, 420, 873, - 997, 125, 126, 147, 318, 147, 421, 125, 126, 277, - 278, 279, 280, 281, 125, 126, 422, 1003, 1008, 295, - 124, 318, 1004, 1009, 423, 296, 297, 298, 299, 300, - 301, 1228, 1012, 223, 1229, 424, 224, 1013, 125, 126, - 903, 904, 905, 1018, 541, 955, 486, 1186, 1019, 1020, - 1182, 1183, 1187, 868, 869, 870, 871, 425, 1107, 1108, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 524, 505, 1207, 507, 426, 1194, - 1150, 1208, 1151, 1152, 427, 428, 489, 547, 548, 148, - 906, 1210, 496, 209, 1248, 824, 831, 1211, 832, 1249, - 429, 430, 147, 431, 432, 226, 434, 435, 268, 214, - 147, 1195, 1196, 1197, 436, 282, 147, 227, 437, 265, - 438, 262, 442, 147, 275, 302, 1170, 1171, 1172, 1173, - 147, 286, 443, 228, 229, 324, 230, 231, 460, 325, - 343, 304, 467, 469, 344, 345, 473, 147, 232, 233, - 234, 338, 481, 235, 482, 236, 356, 492, 494, 495, - 380, 237, 510, 514, 346, 215, 516, 238, 515, 695, - 696, 697, 698, 239, 518, 240, 381, 263, 519, 520, - 276, 521, 673, 526, 529, 531, 532, 287, 535, 260, - 536, 544, 271, 241, 242, 549, 243, 305, 550, 285, - 551, 244, 552, 553, 245, 554, 246, 339, 247, 303, - 555, 248, 357, 556, 249, 557, 257, 558, 559, 571, - 269, 560, 561, 562, 270, 563, 564, 283, 577, 578, - 566, 284, 382, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 565, 567, 568, 569, - 114, 115, 116, 117, 118, 119, 120, 121, 570, 572, - 124, 573, 574, 579, 575, 576, 580, 581, 582, 583, - 216, 584, 217, 585, 586, 587, 588, 589, 125, 126, - 218, 219, 220, 221, 222, 127, 590, 591, 592, 593, - 594, 595, 148, 596, 597, 209, 599, 223, 600, 605, - 224, 134, 601, 602, 598, 603, 604, 606, 225, 608, - 609, 214, 611, 612, 613, 614, 615, 618, 616, 619, - 620, 617, 622, 624, 625, 626, 627, 630, 872, 886, - 896, 628, 380, 631, 632, 633, 634, 635, 636, 638, - 639, 641, 640, 642, 874, 892, 897, 907, 381, 643, - 644, 646, 757, 647, 650, 651, 654, 648, 653, 655, - 656, 143, 144, 657, 658, 659, 660, 215, 661, 662, - 663, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 125, 126, 664, 147, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 665, 124, 318, - 875, 893, 898, 908, 382, 666, 667, 669, 672, 670, - 674, 680, 675, 676, 677, 678, 125, 126, 679, 219, - 220, 687, 222, 127, 688, 689, 690, 691, 694, 700, - 32, 701, 702, 703, 714, 223, 704, 705, 224, 706, - 707, 715, 721, 708, 709, 710, 225, 365, 366, 367, + 118, 119, 120, 121, 122, 123, 124, 125, 872, 549, + 361, 362, 911, 321, 550, 322, 323, 771, 124, 324, + 325, 326, 474, 148, 549, 126, 127, 938, 148, 939, + 126, 127, 128, 1176, 1177, 1178, 1179, 129, 130, 131, + 132, 133, 478, 134, 60, 960, 960, 940, 135, 410, + 961, 962, 34, 35, 36, 37, 984, 136, 62, 987, + 137, 985, 988, 411, 1095, 1096, 1097, 138, 148, 1001, + 412, 64, 1101, 1107, 1002, 139, 140, 126, 127, 1027, + 141, 66, 1028, 142, 766, 829, 836, 143, 837, 767, + 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 1008, 144, 145, + 146, 147, 1009, 125, 1013, 1017, 1023, 413, 838, 1014, + 1018, 1024, 1061, 873, 874, 875, 876, 125, 545, 878, + 321, 126, 127, 1025, 148, 1234, 321, 409, 1235, 148, + 280, 281, 282, 283, 284, 126, 127, 126, 127, 298, + 125, 415, 422, 125, 321, 299, 300, 301, 302, 303, + 304, 270, 423, 424, 225, 960, 510, 226, 126, 127, + 1188, 126, 127, 1201, 1202, 1203, 321, 343, 322, 323, + 344, 345, 425, 490, 1192, 509, 148, 225, 1189, 1193, + 226, 1113, 1114, 126, 127, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 1236, + 426, 528, 1237, 1238, 1239, 1240, 1200, 1213, 511, 493, + 551, 552, 1214, 149, 1216, 500, 1254, 211, 427, 428, + 1217, 1255, 429, 430, 1156, 431, 1157, 1158, 432, 228, + 148, 433, 271, 216, 700, 701, 702, 703, 434, 285, + 435, 229, 437, 268, 148, 265, 148, 438, 278, 305, + 439, 440, 148, 441, 445, 289, 446, 230, 231, 327, + 232, 233, 447, 328, 346, 307, 464, 148, 347, 348, + 148, 471, 234, 235, 236, 341, 473, 237, 477, 238, + 359, 485, 486, 496, 383, 239, 498, 499, 349, 217, + 514, 240, 148, 518, 520, 519, 522, 241, 523, 242, + 384, 266, 525, 524, 279, 530, 533, 535, 536, 539, + 540, 290, 548, 263, 554, 553, 274, 243, 244, 561, + 245, 308, 555, 288, 556, 246, 557, 558, 247, 559, + 248, 342, 249, 306, 560, 250, 360, 562, 251, 563, + 252, 564, 260, 565, 566, 567, 568, 272, 575, 569, + 573, 273, 570, 581, 286, 571, 385, 572, 287, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 574, 576, 577, 582, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 578, 579, 125, 580, 583, + 584, 585, 586, 587, 588, 589, 590, 218, 591, 219, + 592, 593, 594, 595, 596, 126, 127, 220, 221, 222, + 223, 224, 128, 597, 598, 599, 600, 149, 601, 602, + 211, 604, 603, 605, 225, 606, 607, 226, 135, 608, + 609, 610, 611, 613, 614, 227, 216, 126, 127, 616, + 617, 618, 619, 620, 621, 623, 624, 622, 625, 627, + 629, 630, 631, 877, 891, 901, 632, 383, 635, 633, + 636, 637, 638, 639, 640, 641, 643, 644, 645, 879, + 897, 902, 912, 384, 646, 647, 648, 762, 649, 651, + 655, 656, 652, 653, 659, 660, 658, 662, 144, 145, + 661, 665, 217, 663, 666, 669, 664, 670, 671, 667, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 711, 712, 713, 716, 717, 719, 720, 378, 379, 726, - 756, 804, 722, 723, 725, 727, 728, 729, 733, 734, - 808, 812, 816, 820, 838, 842, 735, 845, 849, 736, - 916, 737, 751, 147, 738, 739, 920, 924, 740, 143, - 144, 940, 741, 941, 742, 743, 942, 943, 944, 946, - 947, 951, 745, 952, 953, 746, 954, 959, 747, 960, - 753, 962, 754, 963, 755, 147, 966, 965, 968, 969, - 971, 972, 744, 975, 986, 985, 988, 989, 1024, 990, - 991, 992, 993, 994, 995, 1000, 1001, 1002, 1005, 1006, - 1007, 1014, 1016, 1029, 1041, 1028, 1032, 1031, 1036, 1040, - 1034, 1035, 1037, 1038, 1039, 1042, 1043, 1044, 1045, 1046, - 1047, 1048, 1049, 1050, 1051, 1052, 1105, 1132, 1053, 1054, - 226, 1133, 1125, 324, 1126, 1127, 343, 325, 1128, 1064, - 344, 345, 227, 1088, 265, 1129, 262, 1130, 1134, 338, - 1109, 1065, 356, 302, 1110, 1099, 360, 1142, 228, 229, - 346, 230, 231, 1135, 1136, 1139, 1112, 1066, 1067, 304, - 1068, 1069, 872, 232, 233, 234, 1138, 886, 235, 1140, - 236, 896, 1070, 1071, 1072, 1143, 237, 1073, 874, 1074, - 1153, 1145, 238, 892, 1154, 1075, 268, 897, 239, 282, - 240, 1076, 263, 907, 1146, 339, 1155, 1077, 357, 1078, - 1148, 1100, 275, 1163, 260, 286, 1147, 1164, 241, 242, - 1169, 243, 1113, 1098, 1190, 305, 244, 1079, 1080, 245, - 1081, 246, 1175, 247, 1111, 1082, 248, 303, 1083, 249, - 1084, 257, 1085, 1176, 875, 1086, 1177, 1184, 1087, 893, - 1094, 1092, 1185, 898, 1191, 1093, 1178, 1192, 1193, 908, - 1205, 1179, 1156, 1214, 1217, 1180, 1181, 1188, 276, 1219, - 1224, 287, 1222, 1199, 1244, 1245, 1246, 1250, 1254, 758, - 271, 1200, 607, 285, 830, 610, 1057, 1055, 1106, 752, - 1103, 932, 1104, 1123, 760, 1141, 652, 1124, 1213, 1131, - 1059, 1058, 621, 1102, 1201, 1202, 316, 645, 269, 1209, - 1212, 283, 270, 1221, 1215, 284, 1061, 1251, 1060, 1218, - 1252, 1063, 1223, 649, 1253, 1166, 1256, 1257, 1062, 1167, - 1168, 1122, 1165, 929, 1216, 1121, 1137, 1144, 1149, 915, - 668, 1120, 759, 671, 1162, 1220, 1242, 1255, 0, 0, - 0, 0, 0, 0, 0, 1064, 0, 0, 0, 1088, - 0, 1109, 0, 0, 0, 1110, 0, 1065, 0, 0, - 0, 1099, 0, 0, 629, 0, 1153, 1112, 1203, 0, - 1154, 623, 0, 1066, 1067, 0, 1068, 1069, 0, 0, - 0, 0, 1155, 0, 637, 0, 0, 0, 1070, 1071, - 1072, 0, 0, 1073, 0, 1074, 0, 0, 0, 0, - 0, 1075, 0, 0, 0, 0, 0, 1076, 0, 0, - 0, 0, 0, 1077, 0, 1078, 0, 1100, 0, 0, - 0, 0, 0, 1113, 0, 0, 0, 0, 0, 1098, - 0, 0, 0, 1079, 1080, 1111, 1081, 0, 1156, 0, - 0, 1082, 0, 0, 1083, 0, 1084, 0, 1085, 0, - 0, 1086, 0, 0, 1087, 0, 1094, 1092, 0, 0, - 0, 1093 + 378, 379, 380, 668, 148, 672, 674, 675, 677, 756, + 381, 382, 678, 679, 680, 880, 898, 903, 913, 385, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 681, 682, 683, 148, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 684, 125, 321, + 685, 692, 693, 694, 695, 696, 699, 705, 32, 706, + 707, 708, 719, 710, 709, 711, 126, 127, 712, 221, + 222, 713, 224, 128, 714, 715, 716, 717, 718, 721, + 722, 724, 720, 725, 726, 225, 731, 761, 226, 843, + 727, 728, 730, 732, 733, 734, 227, 738, 809, 813, + 817, 821, 739, 825, 847, 740, 850, 741, 854, 742, + 921, 925, 743, 744, 929, 945, 745, 946, 947, 746, + 747, 748, 750, 751, 948, 949, 951, 952, 956, 752, + 957, 958, 758, 959, 964, 965, 759, 967, 760, 968, + 970, 971, 974, 973, 977, 1045, 976, 991, 980, 144, + 145, 990, 993, 994, 1029, 995, 996, 997, 998, 999, + 1000, 1005, 1006, 1007, 1010, 1011, 1012, 1019, 1021, 1034, + 1046, 1033, 1037, 1036, 1041, 148, 1039, 1040, 1042, 1043, + 1044, 1048, 1050, 1053, 1054, 1047, 1049, 1051, 1052, 1055, + 1056, 1057, 1111, 1059, 1058, 228, 1131, 1132, 327, 1133, + 1134, 346, 328, 1135, 1069, 347, 348, 229, 1094, 268, + 1136, 265, 1138, 1139, 341, 1115, 1070, 359, 305, 1116, + 1105, 363, 1140, 230, 231, 349, 232, 233, 1148, 1141, + 1142, 1118, 1071, 1072, 307, 1073, 1074, 877, 234, 235, + 236, 1144, 891, 237, 1145, 238, 901, 1075, 1076, 1077, + 1149, 239, 1078, 879, 1079, 1159, 1152, 240, 897, 1160, + 1080, 271, 902, 241, 285, 242, 1081, 266, 912, 1154, + 342, 1161, 1082, 360, 1083, 1151, 1106, 278, 1169, 263, + 289, 1146, 1170, 243, 244, 1153, 245, 1119, 1104, 1175, + 308, 246, 1084, 1085, 247, 1086, 248, 1181, 249, 1117, + 1087, 250, 306, 1088, 251, 1089, 252, 1090, 260, 880, + 1091, 1182, 1190, 1092, 898, 1093, 1183, 1100, 903, 1098, + 1191, 1196, 1197, 1099, 913, 1198, 1199, 1162, 1211, 1184, + 1220, 1223, 1185, 279, 1186, 1225, 290, 1228, 1250, 1251, + 1230, 1252, 1187, 1256, 1260, 274, 1194, 1205, 288, 749, + 763, 1221, 835, 757, 615, 1062, 765, 937, 1060, 1109, + 1112, 1110, 1130, 1147, 1129, 1064, 657, 1137, 1063, 1108, + 1219, 1206, 1207, 319, 1065, 1066, 272, 1224, 650, 286, + 273, 1208, 1215, 287, 1258, 1218, 1227, 626, 1229, 1067, + 1068, 1259, 1257, 1262, 1263, 654, 1174, 1172, 934, 1128, + 1173, 1171, 1222, 1127, 1143, 1126, 1155, 920, 1150, 673, + 764, 676, 1168, 1226, 612, 1248, 1261, 0, 0, 0, + 0, 1069, 0, 0, 0, 1094, 0, 1115, 0, 0, + 0, 1116, 0, 1070, 628, 0, 0, 1105, 0, 0, + 0, 0, 1159, 1118, 1209, 0, 1160, 0, 0, 1071, + 1072, 0, 1073, 1074, 634, 0, 0, 0, 1161, 0, + 0, 0, 0, 0, 1075, 1076, 1077, 642, 0, 1078, + 0, 1079, 0, 0, 0, 0, 0, 1080, 0, 0, + 0, 0, 0, 1081, 0, 0, 0, 0, 0, 1082, + 0, 1083, 0, 1106, 0, 0, 0, 0, 0, 1119, + 0, 0, 0, 0, 0, 1104, 0, 0, 0, 1084, + 1085, 1117, 1086, 0, 1162, 0, 0, 1087, 0, 0, + 1088, 0, 1089, 0, 1090, 0, 0, 1091, 0, 0, + 1092, 0, 1093, 0, 1100, 0, 1098, 0, 0, 0, + 1099 }; - const short + const short int Dhcp6Parser::yycheck_[] = { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, - 81, 78, 79, 79, 73, 709, 73, 72, 73, 74, - 75, 76, 678, 78, 79, 703, 81, 970, 970, 970, - 73, 73, 79, 73, 73, 970, 970, 0, 5, 115, - 7, 585, 9, 89, 90, 73, 73, 73, 122, 123, - 73, 7, 73, 618, 3, 16, 17, 3, 73, 8, - 3, 113, 8, 6, 73, 630, 631, 632, 120, 7, + 81, 78, 79, 79, 73, 714, 73, 72, 73, 74, + 75, 76, 683, 78, 79, 708, 81, 975, 975, 975, + 73, 73, 79, 73, 73, 975, 975, 116, 5, 0, + 7, 590, 9, 623, 114, 73, 73, 73, 123, 124, + 73, 121, 73, 166, 167, 635, 636, 637, 73, 169, + 170, 171, 172, 3, 73, 16, 17, 199, 8, 7, 73, 7, 73, 72, 73, 74, 75, 76, 3, 78, - 79, 71, 81, 8, 13, 14, 73, 74, 75, 76, - 73, 73, 82, 73, 7, 141, 142, 143, 73, 89, - 90, 73, 7, 73, 3, 73, 7, 651, 73, 8, - 7, 73, 3, 73, 7, 74, 75, 8, 108, 74, - 75, 111, 198, 7, 198, 7, 11, 12, 89, 90, - 15, 89, 90, 18, 19, 20, 122, 123, 21, 72, - 73, 74, 75, 76, 77, 177, 165, 166, 180, 181, - 182, 183, 198, 3, 7, 7, 89, 90, 8, 44, + 79, 6, 81, 90, 91, 7, 73, 74, 75, 76, + 73, 73, 202, 73, 90, 91, 7, 3, 73, 90, + 91, 73, 8, 73, 3, 73, 7, 656, 73, 8, + 7, 73, 3, 73, 7, 73, 3, 8, 74, 75, + 199, 8, 74, 75, 199, 3, 11, 12, 6, 10, + 15, 3, 3, 18, 19, 20, 8, 8, 7, 90, + 91, 21, 149, 150, 151, 7, 142, 143, 144, 126, + 127, 128, 129, 130, 131, 146, 147, 13, 14, 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, 69, 70, 71, 145, 146, 72, - 3, 74, 75, 6, 198, 78, 79, 80, 125, 126, - 127, 128, 129, 130, 89, 90, 89, 90, 198, 3, - 3, 96, 7, 10, 8, 8, 101, 102, 103, 104, - 105, 70, 107, 168, 169, 170, 171, 112, 3, 6, - 3, 198, 199, 200, 201, 8, 121, 198, 4, 124, - 198, 8, 3, 1186, 1186, 1186, 131, 8, 3, 21, - 3, 1186, 1186, 8, 139, 140, 201, 3, 30, 144, - 6, 3, 147, 21, 6, 198, 151, 4, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 72, 172, 173, 174, - 175, 89, 90, 71, 3, 3, 3, 3, 976, 8, - 8, 8, 958, 89, 90, 3, 71, 8, 4, 1003, - 8, 89, 90, 198, 72, 198, 4, 89, 90, 84, - 85, 86, 87, 88, 89, 90, 4, 3, 3, 107, - 71, 72, 8, 8, 4, 113, 114, 115, 116, 117, - 118, 3, 3, 108, 6, 4, 111, 8, 89, 90, - 148, 149, 150, 3, 3, 3, 3, 3, 8, 8, - 8, 8, 8, 135, 136, 137, 138, 4, 109, 110, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 3, 8, 3, 8, 4, 8, - 176, 8, 178, 179, 4, 4, 3, 407, 408, 470, - 198, 8, 3, 474, 3, 115, 116, 8, 118, 8, - 4, 4, 198, 4, 4, 486, 4, 4, 489, 474, - 198, 132, 133, 134, 4, 496, 198, 486, 4, 486, - 4, 486, 4, 198, 489, 506, 22, 23, 24, 25, - 198, 496, 4, 486, 486, 516, 486, 486, 4, 516, - 521, 506, 4, 4, 521, 521, 4, 198, 486, 486, - 486, 516, 4, 486, 4, 486, 521, 4, 4, 4, - 541, 486, 4, 4, 521, 474, 3, 486, 8, 97, - 98, 99, 100, 486, 4, 486, 541, 486, 4, 8, - 489, 3, 7, 4, 4, 4, 4, 496, 4, 486, - 4, 4, 489, 486, 486, 198, 486, 506, 4, 496, - 4, 486, 4, 4, 486, 4, 486, 516, 486, 506, - 4, 486, 521, 4, 486, 199, 486, 199, 199, 4, - 489, 199, 199, 199, 489, 199, 199, 496, 4, 4, - 200, 496, 541, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 201, 200, 200, 199, - 61, 62, 63, 64, 65, 66, 67, 68, 199, 199, - 71, 199, 201, 4, 201, 201, 201, 201, 4, 4, - 81, 4, 83, 4, 4, 4, 4, 4, 89, 90, - 91, 92, 93, 94, 95, 96, 4, 4, 4, 4, - 4, 4, 673, 4, 4, 676, 4, 108, 4, 201, - 111, 112, 4, 4, 199, 4, 4, 4, 119, 4, - 201, 676, 4, 4, 4, 4, 4, 4, 199, 4, - 4, 201, 4, 4, 199, 4, 199, 4, 709, 710, - 711, 199, 713, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 199, 4, 709, 710, 711, 712, 713, 4, - 201, 4, 672, 201, 4, 4, 4, 201, 201, 4, - 199, 172, 173, 4, 199, 199, 4, 676, 4, 201, - 201, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 89, 90, 4, 198, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 4, 71, 72, - 709, 710, 711, 712, 713, 4, 4, 4, 4, 199, - 198, 198, 7, 7, 7, 7, 89, 90, 5, 92, - 93, 198, 95, 96, 198, 5, 5, 5, 198, 5, - 7, 5, 5, 5, 198, 108, 7, 5, 111, 5, - 5, 198, 198, 7, 7, 7, 119, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 7, 7, 7, 5, 5, 5, 5, 172, 173, 7, - 5, 7, 198, 198, 198, 198, 198, 198, 198, 198, - 7, 7, 7, 7, 106, 7, 198, 7, 7, 198, - 7, 198, 167, 198, 198, 198, 7, 7, 198, 172, - 173, 4, 198, 4, 198, 198, 4, 4, 4, 4, - 4, 4, 198, 4, 4, 198, 4, 6, 198, 3, - 198, 6, 198, 3, 198, 198, 3, 6, 6, 3, - 6, 3, 651, 6, 3, 6, 6, 3, 198, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 3, 201, 6, 3, 6, 4, 199, - 8, 6, 4, 4, 4, 199, 201, 199, 4, 199, - 199, 4, 4, 4, 199, 199, 4, 4, 201, 199, - 961, 4, 199, 964, 199, 199, 967, 964, 199, 970, - 967, 967, 961, 970, 961, 199, 961, 199, 199, 964, - 981, 970, 967, 984, 981, 970, 987, 4, 961, 961, - 967, 961, 961, 199, 199, 199, 981, 970, 970, 984, - 970, 970, 1003, 961, 961, 961, 201, 1008, 961, 199, - 961, 1012, 970, 970, 970, 4, 961, 970, 1003, 970, - 1021, 201, 961, 1008, 1021, 970, 1027, 1012, 961, 1030, - 961, 970, 961, 1018, 4, 964, 1021, 970, 967, 970, - 4, 970, 1027, 6, 961, 1030, 199, 3, 961, 961, - 4, 961, 981, 970, 4, 984, 961, 970, 970, 961, - 970, 961, 198, 961, 981, 970, 961, 984, 970, 961, - 970, 961, 970, 198, 1003, 970, 198, 8, 970, 1008, - 970, 970, 8, 1012, 8, 970, 198, 3, 8, 1018, - 4, 198, 1021, 4, 4, 198, 198, 198, 1027, 4, - 7, 1030, 5, 198, 4, 4, 4, 4, 4, 673, - 1027, 198, 470, 1030, 702, 474, 960, 955, 979, 664, - 973, 756, 976, 987, 676, 1008, 524, 989, 1186, 996, - 963, 961, 486, 972, 198, 198, 77, 516, 1027, 198, - 198, 1030, 1027, 198, 201, 1030, 966, 201, 964, 199, - 199, 969, 198, 521, 199, 1029, 198, 198, 967, 1030, - 1032, 986, 1027, 726, 1192, 984, 1003, 1012, 1018, 713, - 541, 982, 675, 545, 1022, 1207, 1228, 1248, -1, -1, - -1, -1, -1, -1, -1, 1186, -1, -1, -1, 1186, - -1, 1192, -1, -1, -1, 1192, -1, 1186, -1, -1, - -1, 1186, -1, -1, 496, -1, 1207, 1192, 1148, -1, - 1207, 489, -1, 1186, 1186, -1, 1186, 1186, -1, -1, - -1, -1, 1207, -1, 506, -1, -1, -1, 1186, 1186, - 1186, -1, -1, 1186, -1, 1186, -1, -1, -1, -1, - -1, 1186, -1, -1, -1, -1, -1, 1186, -1, -1, - -1, -1, -1, 1186, -1, 1186, -1, 1186, -1, -1, - -1, -1, -1, 1192, -1, -1, -1, -1, -1, 1186, - -1, -1, -1, 1186, 1186, 1192, 1186, -1, 1207, -1, - -1, 1186, -1, -1, 1186, -1, 1186, -1, 1186, -1, - -1, 1186, -1, -1, 1186, -1, 1186, 1186, -1, -1, - -1, 1186 + 65, 66, 67, 68, 69, 70, 71, 72, 21, 3, + 123, 124, 199, 73, 8, 75, 76, 30, 71, 79, + 80, 81, 3, 199, 3, 90, 91, 8, 199, 8, + 90, 91, 97, 22, 23, 24, 25, 102, 103, 104, + 105, 106, 3, 108, 7, 3, 3, 8, 113, 3, + 8, 8, 199, 200, 201, 202, 3, 122, 7, 3, + 125, 8, 6, 4, 1192, 1192, 1192, 132, 199, 3, + 8, 7, 1192, 1192, 8, 140, 141, 90, 91, 3, + 145, 7, 6, 148, 21, 116, 117, 152, 119, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 3, 173, 174, + 175, 176, 8, 72, 3, 3, 3, 3, 981, 8, + 8, 8, 963, 136, 137, 138, 139, 72, 3, 1008, + 73, 90, 91, 8, 199, 3, 73, 6, 6, 199, + 85, 86, 87, 88, 89, 90, 91, 90, 91, 108, + 72, 8, 4, 72, 73, 114, 115, 116, 117, 118, + 119, 83, 4, 4, 109, 3, 3, 112, 90, 91, + 8, 90, 91, 133, 134, 135, 73, 74, 75, 76, + 77, 78, 4, 3, 3, 8, 199, 109, 8, 8, + 112, 110, 111, 90, 91, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 178, + 4, 3, 181, 182, 183, 184, 8, 3, 8, 3, + 410, 411, 8, 474, 8, 3, 3, 478, 4, 4, + 8, 8, 4, 4, 177, 4, 179, 180, 4, 490, + 199, 4, 493, 478, 98, 99, 100, 101, 4, 500, + 4, 490, 4, 490, 199, 490, 199, 4, 493, 510, + 4, 4, 199, 4, 4, 500, 4, 490, 490, 520, + 490, 490, 4, 520, 525, 510, 4, 199, 525, 525, + 199, 4, 490, 490, 490, 520, 4, 490, 4, 490, + 525, 4, 4, 4, 545, 490, 4, 4, 525, 478, + 4, 490, 199, 4, 3, 8, 4, 490, 4, 490, + 545, 490, 3, 8, 493, 4, 4, 4, 4, 4, + 4, 500, 4, 490, 4, 199, 493, 490, 490, 200, + 490, 510, 4, 500, 4, 490, 4, 4, 490, 4, + 490, 520, 490, 510, 4, 490, 525, 200, 490, 200, + 490, 200, 490, 200, 200, 200, 200, 493, 4, 202, + 200, 493, 201, 4, 500, 201, 545, 201, 500, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 200, 200, 200, 4, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 202, 202, 72, 202, 4, + 202, 202, 202, 4, 4, 4, 4, 82, 4, 84, + 4, 4, 4, 4, 4, 90, 91, 92, 93, 94, + 95, 96, 97, 4, 4, 4, 4, 678, 4, 4, + 681, 4, 200, 4, 109, 4, 4, 112, 113, 4, + 4, 202, 4, 4, 202, 120, 681, 90, 91, 4, + 4, 4, 4, 4, 200, 4, 4, 202, 4, 4, + 4, 200, 4, 714, 715, 716, 200, 718, 4, 200, + 4, 4, 4, 4, 4, 4, 4, 4, 200, 714, + 715, 716, 717, 718, 4, 4, 4, 677, 202, 4, + 4, 4, 202, 202, 4, 4, 202, 4, 173, 174, + 200, 4, 681, 200, 4, 4, 200, 4, 4, 202, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 202, 199, 4, 4, 200, 4, 168, + 173, 174, 7, 199, 7, 714, 715, 716, 717, 718, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 7, 7, 7, 199, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 5, 72, 73, + 199, 199, 199, 5, 5, 5, 199, 5, 7, 5, + 5, 5, 199, 5, 7, 5, 90, 91, 5, 93, + 94, 7, 96, 97, 7, 7, 7, 7, 7, 5, + 5, 5, 199, 5, 199, 109, 7, 5, 112, 107, + 199, 199, 199, 199, 199, 199, 120, 199, 7, 7, + 7, 7, 199, 7, 7, 199, 7, 199, 7, 199, + 7, 7, 199, 199, 7, 4, 199, 4, 4, 199, + 199, 199, 199, 199, 4, 4, 4, 4, 4, 199, + 4, 4, 199, 4, 6, 3, 199, 6, 199, 3, + 6, 3, 3, 6, 3, 200, 6, 3, 6, 173, + 174, 6, 6, 3, 199, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 202, 6, 3, 6, 4, 199, 8, 6, 4, 4, + 4, 202, 4, 4, 4, 200, 200, 200, 200, 4, + 200, 200, 4, 200, 202, 966, 200, 200, 969, 200, + 200, 972, 969, 200, 975, 972, 972, 966, 975, 966, + 200, 966, 4, 4, 969, 986, 975, 972, 989, 986, + 975, 992, 200, 966, 966, 972, 966, 966, 4, 200, + 200, 986, 975, 975, 989, 975, 975, 1008, 966, 966, + 966, 202, 1013, 966, 200, 966, 1017, 975, 975, 975, + 4, 966, 975, 1008, 975, 1026, 4, 966, 1013, 1026, + 975, 1032, 1017, 966, 1035, 966, 975, 966, 1023, 4, + 969, 1026, 975, 972, 975, 202, 975, 1032, 6, 966, + 1035, 200, 3, 966, 966, 200, 966, 986, 975, 4, + 989, 966, 975, 975, 966, 975, 966, 199, 966, 986, + 975, 966, 989, 975, 966, 975, 966, 975, 966, 1008, + 975, 199, 8, 975, 1013, 975, 199, 975, 1017, 975, + 8, 4, 8, 975, 1023, 3, 8, 1026, 4, 199, + 4, 4, 199, 1032, 199, 4, 1035, 5, 4, 4, + 7, 4, 199, 4, 4, 1032, 199, 199, 1035, 656, + 678, 202, 707, 669, 478, 965, 681, 761, 960, 978, + 984, 981, 994, 1013, 992, 968, 528, 1001, 966, 977, + 1192, 199, 199, 77, 969, 971, 1032, 200, 520, 1035, + 1032, 199, 199, 1035, 200, 199, 199, 490, 199, 972, + 974, 200, 202, 199, 199, 525, 1037, 1034, 731, 991, + 1035, 1032, 1198, 989, 1008, 987, 1023, 718, 1017, 545, + 680, 549, 1027, 1213, 474, 1234, 1254, -1, -1, -1, + -1, 1192, -1, -1, -1, 1192, -1, 1198, -1, -1, + -1, 1198, -1, 1192, 493, -1, -1, 1192, -1, -1, + -1, -1, 1213, 1198, 1154, -1, 1213, -1, -1, 1192, + 1192, -1, 1192, 1192, 500, -1, -1, -1, 1213, -1, + -1, -1, -1, -1, 1192, 1192, 1192, 510, -1, 1192, + -1, 1192, -1, -1, -1, -1, -1, 1192, -1, -1, + -1, -1, -1, 1192, -1, -1, -1, -1, -1, 1192, + -1, 1192, -1, 1192, -1, -1, -1, -1, -1, 1198, + -1, -1, -1, -1, -1, 1192, -1, -1, -1, 1192, + 1192, 1198, 1192, -1, 1213, -1, -1, 1192, -1, -1, + 1192, -1, 1192, -1, 1192, -1, -1, 1192, -1, -1, + 1192, -1, 1192, -1, 1192, -1, 1192, -1, -1, -1, + 1192 }; - const short + const unsigned short int Dhcp6Parser::yystos_[] = { - 0, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 0, 5, 7, 9, 198, 199, 200, 201, 218, 219, - 220, 225, 7, 234, 7, 238, 7, 281, 7, 387, - 7, 464, 7, 480, 7, 497, 7, 416, 7, 422, - 7, 446, 7, 363, 7, 566, 7, 597, 226, 221, - 235, 239, 282, 388, 465, 481, 498, 417, 423, 447, - 364, 567, 598, 218, 227, 228, 198, 223, 224, 10, - 236, 11, 12, 15, 18, 19, 20, 44, 45, 46, + 0, 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, + 0, 5, 7, 9, 199, 200, 201, 202, 219, 220, + 221, 226, 7, 235, 7, 239, 7, 283, 7, 389, + 7, 466, 7, 482, 7, 499, 7, 418, 7, 424, + 7, 448, 7, 365, 7, 568, 7, 599, 227, 222, + 236, 240, 284, 390, 467, 483, 500, 419, 425, 449, + 366, 569, 600, 219, 228, 229, 199, 224, 225, 10, + 237, 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, 69, 70, 71, 89, 90, 96, 101, 102, - 103, 104, 105, 107, 112, 121, 124, 131, 139, 140, - 144, 147, 151, 172, 173, 174, 175, 198, 233, 240, - 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, + 67, 68, 69, 70, 71, 72, 90, 91, 97, 102, + 103, 104, 105, 106, 108, 113, 122, 125, 132, 140, + 141, 145, 148, 152, 173, 174, 175, 176, 199, 234, + 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 264, 266, 268, 269, 271, 273, 274, 275, 276, 278, - 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, 595, 604, 16, 17, 233, - 283, 284, 285, 287, 470, 472, 81, 83, 91, 92, - 93, 94, 95, 108, 111, 119, 233, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 258, 259, 260, 261, 264, 266, 268, 269, 271, 273, - 389, 390, 391, 393, 395, 397, 399, 401, 404, 405, - 440, 458, 470, 472, 474, 491, 516, 82, 233, 397, - 399, 440, 466, 467, 468, 470, 472, 84, 85, 86, - 87, 88, 233, 397, 399, 440, 470, 472, 482, 483, - 484, 486, 487, 489, 490, 107, 113, 114, 115, 116, - 117, 118, 233, 440, 470, 472, 499, 500, 501, 502, - 504, 506, 508, 510, 512, 514, 414, 21, 72, 74, - 75, 78, 79, 80, 233, 310, 424, 425, 426, 427, - 428, 429, 430, 432, 434, 436, 437, 439, 470, 472, - 73, 76, 77, 233, 310, 428, 434, 448, 449, 450, - 451, 452, 454, 455, 456, 457, 470, 472, 122, 123, - 233, 365, 366, 367, 369, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 172, 173, - 233, 470, 472, 568, 569, 570, 571, 573, 575, 576, - 578, 579, 580, 583, 585, 586, 587, 589, 591, 593, - 13, 14, 599, 600, 601, 603, 6, 3, 4, 8, - 3, 237, 8, 243, 596, 280, 289, 291, 293, 4, + 262, 265, 267, 269, 270, 271, 273, 275, 276, 277, + 278, 280, 281, 290, 292, 294, 332, 338, 344, 350, + 352, 359, 373, 383, 403, 408, 416, 442, 472, 474, + 493, 523, 535, 547, 548, 556, 566, 597, 606, 16, + 17, 234, 285, 286, 287, 289, 472, 474, 82, 84, + 92, 93, 94, 95, 96, 109, 112, 120, 234, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 259, 260, 261, 262, 265, 267, 269, 270, + 271, 273, 275, 391, 392, 393, 395, 397, 399, 401, + 403, 406, 407, 442, 460, 472, 474, 476, 493, 518, + 83, 234, 399, 401, 442, 468, 469, 470, 472, 474, + 85, 86, 87, 88, 89, 234, 399, 401, 442, 472, + 474, 484, 485, 486, 488, 489, 491, 492, 108, 114, + 115, 116, 117, 118, 119, 234, 442, 472, 474, 501, + 502, 503, 504, 506, 508, 510, 512, 514, 516, 416, + 21, 73, 75, 76, 79, 80, 81, 234, 312, 426, + 427, 428, 429, 430, 431, 432, 434, 436, 438, 439, + 441, 472, 474, 74, 77, 78, 234, 312, 430, 436, + 450, 451, 452, 453, 454, 456, 457, 458, 459, 472, + 474, 123, 124, 234, 367, 368, 369, 371, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 173, 174, 234, 472, 474, 570, 571, 572, 573, + 575, 577, 578, 580, 581, 582, 585, 587, 588, 589, + 591, 593, 595, 13, 14, 601, 602, 603, 605, 6, + 3, 4, 8, 3, 238, 8, 244, 598, 282, 291, + 293, 295, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 279, 4, 4, 4, + 4, 4, 263, 266, 268, 4, 4, 4, 384, 417, + 443, 473, 475, 404, 409, 339, 351, 345, 333, 524, + 494, 360, 374, 536, 4, 353, 549, 557, 567, 272, + 274, 4, 607, 4, 3, 8, 288, 4, 3, 8, + 461, 477, 394, 396, 398, 4, 4, 402, 400, 519, + 3, 8, 471, 3, 8, 487, 4, 490, 4, 4, + 3, 8, 517, 505, 507, 509, 511, 513, 515, 8, + 3, 8, 433, 313, 4, 437, 435, 440, 4, 8, + 3, 455, 4, 4, 8, 3, 370, 372, 3, 8, + 4, 574, 576, 4, 579, 4, 4, 583, 586, 4, + 4, 590, 592, 594, 596, 3, 8, 604, 4, 3, + 8, 219, 219, 199, 4, 4, 4, 4, 4, 4, + 4, 200, 200, 200, 200, 200, 200, 200, 200, 202, + 201, 201, 201, 200, 200, 4, 200, 200, 202, 202, + 202, 4, 4, 4, 202, 202, 202, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 277, 4, 4, 4, 4, 4, 262, - 265, 267, 4, 4, 382, 415, 441, 471, 473, 402, - 407, 337, 349, 343, 331, 522, 492, 358, 372, 534, - 4, 351, 547, 555, 565, 270, 272, 4, 605, 4, - 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, 602, 4, 3, 8, 218, 218, 198, - 4, 4, 4, 4, 4, 4, 4, 199, 199, 199, - 199, 199, 199, 199, 199, 201, 200, 200, 200, 199, - 199, 4, 199, 199, 201, 201, 201, 4, 4, 4, - 201, 201, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 199, 4, - 4, 4, 4, 4, 4, 201, 4, 241, 4, 201, - 284, 4, 4, 4, 4, 4, 199, 201, 4, 4, - 4, 390, 4, 467, 4, 199, 4, 199, 199, 483, - 4, 4, 4, 4, 4, 4, 4, 501, 4, 4, - 199, 4, 4, 4, 201, 426, 4, 201, 201, 450, - 4, 4, 366, 201, 4, 4, 199, 4, 199, 199, - 4, 4, 201, 201, 4, 4, 4, 4, 569, 4, - 199, 600, 4, 7, 198, 7, 7, 7, 7, 5, - 198, 168, 169, 170, 171, 201, 263, 198, 198, 5, - 5, 5, 220, 222, 198, 97, 98, 99, 100, 403, - 5, 5, 5, 5, 7, 5, 5, 5, 7, 7, - 7, 7, 7, 7, 198, 198, 5, 5, 229, 5, - 5, 198, 198, 198, 229, 198, 7, 198, 198, 198, - 229, 229, 229, 198, 198, 198, 198, 198, 198, 198, - 198, 198, 198, 198, 222, 198, 198, 198, 165, 166, - 582, 167, 263, 198, 198, 198, 5, 218, 240, 599, - 283, 21, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 233, 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, 115, 198, 338, 339, 340, 341, - 227, 116, 118, 340, 344, 345, 346, 347, 106, 332, - 333, 334, 7, 523, 524, 7, 493, 494, 495, 7, - 359, 360, 361, 125, 126, 127, 128, 129, 130, 373, - 374, 375, 376, 377, 378, 379, 380, 21, 135, 136, - 137, 138, 233, 312, 470, 472, 535, 536, 537, 540, - 541, 543, 544, 141, 142, 143, 233, 352, 353, 354, - 355, 356, 470, 472, 145, 146, 233, 470, 472, 548, - 549, 550, 552, 148, 149, 150, 198, 470, 472, 556, - 557, 558, 559, 561, 562, 568, 7, 606, 607, 230, - 7, 460, 461, 462, 7, 476, 477, 478, 120, 502, - 518, 519, 294, 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, 608, 3, 6, 198, 231, 232, 463, 6, 3, - 479, 6, 3, 520, 8, 6, 4, 4, 4, 4, - 199, 201, 199, 201, 199, 4, 199, 199, 4, 4, - 4, 199, 199, 201, 199, 299, 298, 296, 389, 385, - 424, 420, 448, 444, 233, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, - 260, 261, 264, 266, 268, 269, 271, 273, 310, 381, - 393, 395, 397, 399, 401, 405, 412, 413, 440, 470, - 472, 516, 410, 339, 345, 4, 333, 109, 110, 233, - 310, 440, 470, 472, 526, 527, 528, 529, 530, 532, - 524, 499, 495, 365, 361, 199, 199, 199, 199, 199, - 199, 374, 4, 4, 199, 199, 199, 536, 201, 199, - 199, 353, 4, 4, 549, 201, 4, 199, 4, 557, - 176, 178, 179, 233, 310, 470, 472, 609, 610, 611, - 612, 614, 607, 6, 3, 466, 462, 482, 478, 4, - 22, 23, 24, 25, 302, 198, 198, 198, 198, 198, - 198, 198, 8, 8, 8, 8, 3, 8, 198, 531, - 4, 8, 3, 8, 8, 132, 133, 134, 539, 198, - 198, 198, 198, 218, 615, 4, 613, 3, 8, 198, - 8, 8, 198, 413, 4, 201, 528, 4, 199, 4, - 610, 198, 5, 198, 7, 616, 617, 618, 3, 6, - 177, 180, 181, 182, 183, 619, 620, 621, 623, 624, - 625, 626, 617, 622, 4, 4, 4, 627, 3, 8, - 4, 201, 199, 199, 4, 620, 198, 198 + 4, 4, 4, 200, 4, 4, 4, 4, 4, 4, + 202, 4, 242, 4, 202, 286, 4, 4, 4, 4, + 4, 200, 202, 4, 4, 4, 392, 4, 469, 4, + 200, 4, 200, 200, 485, 4, 4, 4, 4, 4, + 4, 4, 503, 4, 4, 200, 4, 4, 4, 202, + 428, 4, 202, 202, 452, 4, 4, 368, 202, 4, + 4, 200, 4, 200, 200, 4, 4, 202, 202, 4, + 4, 4, 4, 571, 4, 200, 602, 4, 7, 199, + 7, 7, 7, 7, 5, 199, 169, 170, 171, 172, + 202, 264, 199, 199, 5, 5, 5, 221, 223, 199, + 98, 99, 100, 101, 405, 5, 5, 5, 5, 7, + 5, 5, 5, 7, 7, 7, 7, 7, 7, 199, + 199, 5, 5, 230, 5, 5, 199, 199, 199, 230, + 199, 7, 199, 199, 199, 230, 230, 230, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 223, + 199, 199, 199, 166, 167, 584, 168, 264, 199, 199, + 199, 5, 219, 241, 601, 285, 21, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 234, 300, 301, 302, 305, + 307, 309, 311, 312, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 325, 326, 328, 330, 300, 7, + 296, 297, 298, 7, 385, 386, 387, 7, 420, 421, + 422, 7, 444, 445, 446, 7, 410, 411, 412, 116, + 199, 340, 341, 342, 343, 228, 117, 119, 342, 346, + 347, 348, 349, 107, 334, 335, 336, 7, 525, 526, + 7, 495, 496, 497, 7, 361, 362, 363, 126, 127, + 128, 129, 130, 131, 375, 376, 377, 378, 379, 380, + 381, 382, 21, 136, 137, 138, 139, 234, 314, 472, + 474, 537, 538, 539, 542, 543, 545, 546, 142, 143, + 144, 234, 354, 355, 356, 357, 358, 472, 474, 146, + 147, 234, 472, 474, 550, 551, 552, 554, 149, 150, + 151, 199, 472, 474, 558, 559, 560, 561, 563, 564, + 570, 7, 608, 609, 231, 7, 462, 463, 464, 7, + 478, 479, 480, 121, 504, 520, 521, 296, 8, 8, + 8, 303, 306, 308, 310, 4, 4, 4, 4, 4, + 324, 4, 4, 327, 329, 331, 4, 4, 4, 4, + 3, 8, 8, 299, 6, 3, 388, 6, 3, 423, + 6, 3, 447, 6, 3, 413, 6, 3, 3, 6, + 6, 3, 6, 337, 3, 8, 527, 3, 6, 498, + 6, 3, 364, 6, 3, 4, 4, 4, 4, 4, + 4, 3, 8, 540, 544, 4, 4, 4, 3, 8, + 4, 4, 4, 3, 8, 553, 555, 3, 8, 4, + 562, 4, 565, 3, 8, 8, 610, 3, 6, 199, + 232, 233, 465, 6, 3, 481, 6, 3, 522, 8, + 6, 4, 4, 4, 4, 200, 202, 200, 202, 200, + 4, 200, 200, 4, 4, 4, 200, 200, 202, 200, + 301, 300, 298, 391, 387, 426, 422, 450, 446, 234, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 259, 260, 261, 262, 265, 267, 269, + 270, 271, 273, 275, 312, 383, 395, 397, 399, 401, + 403, 407, 414, 415, 442, 472, 474, 518, 412, 341, + 347, 4, 335, 110, 111, 234, 312, 442, 472, 474, + 528, 529, 530, 531, 532, 534, 526, 501, 497, 367, + 363, 200, 200, 200, 200, 200, 200, 376, 4, 4, + 200, 200, 200, 538, 202, 200, 200, 355, 4, 4, + 551, 202, 4, 200, 4, 559, 177, 179, 180, 234, + 312, 472, 474, 611, 612, 613, 614, 616, 609, 6, + 3, 468, 464, 484, 480, 4, 22, 23, 24, 25, + 304, 199, 199, 199, 199, 199, 199, 199, 8, 8, + 8, 8, 3, 8, 199, 533, 4, 8, 3, 8, + 8, 133, 134, 135, 541, 199, 199, 199, 199, 219, + 617, 4, 615, 3, 8, 199, 8, 8, 199, 415, + 4, 202, 530, 4, 200, 4, 612, 199, 5, 199, + 7, 618, 619, 620, 3, 6, 178, 181, 182, 183, + 184, 621, 622, 623, 625, 626, 627, 628, 619, 624, + 4, 4, 4, 629, 3, 8, 4, 202, 200, 200, + 4, 622, 199, 199 }; - const short + const unsigned short int Dhcp6Parser::yyr1_[] = { - 0, 202, 204, 203, 205, 203, 206, 203, 207, 203, - 208, 203, 209, 203, 210, 203, 211, 203, 212, 203, - 213, 203, 214, 203, 215, 203, 216, 203, 217, 203, - 218, 218, 218, 218, 218, 218, 218, 219, 221, 220, - 222, 223, 223, 224, 224, 226, 225, 227, 227, 228, - 228, 230, 229, 231, 231, 232, 232, 233, 235, 234, - 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, 241, 241, - 241, 241, 241, 243, 242, 244, 245, 246, 247, 248, + 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, 219, 219, 219, 219, 219, 219, 220, 222, 221, + 223, 224, 224, 225, 225, 227, 226, 228, 228, 229, + 229, 231, 230, 232, 232, 233, 233, 234, 236, 235, + 238, 237, 240, 239, 241, 241, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 244, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 262, 261, 263, 263, 263, 263, 263, 265, - 264, 267, 266, 268, 270, 269, 272, 271, 273, 274, - 275, 277, 276, 278, 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, 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, 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, 599, 599, 600, 600, 602, 601, 603, 605, - 604, 606, 606, 608, 607, 609, 609, 610, 610, 610, - 610, 610, 610, 610, 611, 613, 612, 615, 614, 616, - 616, 618, 617, 619, 619, 620, 620, 620, 620, 620, - 622, 621, 623, 624, 625, 627, 626 + 259, 260, 261, 263, 262, 264, 264, 264, 264, 264, + 266, 265, 268, 267, 269, 270, 272, 271, 274, 273, + 275, 276, 277, 279, 278, 280, 282, 281, 284, 283, + 285, 285, 286, 286, 286, 286, 286, 288, 287, 289, + 291, 290, 293, 292, 295, 294, 296, 296, 297, 297, + 299, 298, 300, 300, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 303, 302, 304, 304, 304, + 304, 306, 305, 308, 307, 310, 309, 311, 313, 312, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 324, + 323, 325, 327, 326, 329, 328, 331, 330, 333, 332, + 334, 334, 335, 337, 336, 339, 338, 340, 340, 341, + 341, 342, 343, 345, 344, 346, 346, 347, 347, 347, + 348, 349, 351, 350, 353, 352, 354, 354, 355, 355, + 355, 355, 355, 355, 356, 357, 358, 360, 359, 361, + 361, 362, 362, 364, 363, 366, 365, 367, 367, 367, + 368, 368, 370, 369, 372, 371, 374, 373, 375, 375, + 376, 376, 376, 376, 376, 376, 377, 378, 379, 380, + 381, 382, 384, 383, 385, 385, 386, 386, 388, 387, + 390, 389, 391, 391, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 394, 393, 396, 395, 398, 397, + 400, 399, 402, 401, 404, 403, 405, 405, 405, 405, + 406, 407, 409, 408, 410, 410, 411, 411, 413, 412, + 414, 414, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 417, + 416, 419, 418, 420, 420, 421, 421, 423, 422, 425, + 424, 426, 426, 427, 427, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 429, 430, 431, 433, 432, + 435, 434, 437, 436, 438, 440, 439, 441, 443, 442, + 444, 444, 445, 445, 447, 446, 449, 448, 450, 450, + 451, 451, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 453, 455, 454, 456, 457, 458, 459, 461, 460, + 462, 462, 463, 463, 465, 464, 467, 466, 468, 468, + 469, 469, 469, 469, 469, 469, 469, 471, 470, 473, + 472, 475, 474, 477, 476, 478, 478, 479, 479, 481, + 480, 483, 482, 484, 484, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 487, 486, 488, 490, + 489, 491, 492, 494, 493, 495, 495, 496, 496, 498, + 497, 500, 499, 501, 501, 502, 502, 503, 503, 503, + 503, 503, 503, 503, 503, 503, 503, 503, 505, 504, + 507, 506, 509, 508, 511, 510, 513, 512, 515, 514, + 517, 516, 519, 518, 520, 520, 522, 521, 524, 523, + 525, 525, 527, 526, 528, 528, 529, 529, 530, 530, + 530, 530, 530, 530, 530, 531, 533, 532, 534, 536, + 535, 537, 537, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 540, 539, 541, 541, 541, 542, 544, 543, + 545, 546, 547, 549, 548, 550, 550, 551, 551, 551, + 551, 551, 553, 552, 555, 554, 557, 556, 558, 558, + 559, 559, 559, 559, 559, 559, 560, 562, 561, 563, + 565, 564, 567, 566, 569, 568, 570, 570, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 572, 574, 573, 576, + 575, 577, 579, 578, 580, 581, 583, 582, 584, 584, + 586, 585, 587, 588, 590, 589, 592, 591, 594, 593, + 596, 595, 598, 597, 600, 599, 601, 601, 602, 602, + 604, 603, 605, 607, 606, 608, 608, 610, 609, 611, + 611, 612, 612, 612, 612, 612, 612, 612, 613, 615, + 614, 617, 616, 618, 618, 620, 619, 621, 621, 622, + 622, 622, 622, 622, 624, 623, 625, 626, 627, 629, + 628 }; - const signed char + const unsigned char Dhcp6Parser::yyr2_[] = { 0, 2, 0, 3, 0, 3, 0, 3, 0, 3, @@ -5433,84 +5296,85 @@ 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, 0, 4, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 0, 4, 3, 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, 3, 0, 4, 0, 4, 3, 3, - 3, 0, 4, 3, 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, 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, + 3, 3, 3, 0, 4, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 3, 3, 0, 4, 0, 4, + 3, 3, 3, 0, 4, 3, 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, 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, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 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, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 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, 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, 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, - 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, + 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, 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, 6, - 0, 4, 1, 3, 1, 1, 0, 6, 3, 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, 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, 6, 0, 4, 1, 3, 1, 1, + 0, 6, 3, 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 }; -#if PARSER6_DEBUG || 1 + // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - // First, the terminals, then, starting at \a YYNTOKENS, nonterminals. + // First, the terminals, then, starting at \a yyntokens_, nonterminals. const char* const Dhcp6Parser::yytname_[] = { - "\"end of file\"", "error", "\"invalid token\"", "\",\"", "\":\"", - "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", - "\"data-directory\"", "\"config-control\"", "\"config-databases\"", + "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"", + "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", "\"data-directory\"", + "\"config-control\"", "\"config-databases\"", "\"config-fetch-wait-time\"", "\"interfaces-config\"", "\"interfaces\"", "\"re-detect\"", "\"lease-database\"", "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"", @@ -5529,9 +5393,10 @@ namespace isc { namespace dhcp { "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"", - "\"ddns-update-on-renew\"", "\"store-extended-info\"", "\"subnet6\"", - "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", - "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"", + "\"ddns-update-on-renew\"", "\"ddns-use-conflict-resolution\"", + "\"store-extended-info\"", "\"subnet6\"", "\"option-def\"", + "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"", + "\"csv-format\"", "\"always-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"", "\"prefix\"", "\"prefix-len\"", "\"excluded-prefix\"", "\"excluded-prefix-len\"", "\"delegated-len\"", "\"user-context\"", @@ -5585,22 +5450,23 @@ namespace isc { namespace dhcp { "ddns_override_client_update", "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value", "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24", "ddns_update_on_renew", - "hostname_char_set", "$@25", "hostname_char_replacement", "$@26", - "store_extended_info", "statistic_default_sample_count", - "statistic_default_sample_age", "server_tag", "$@27", - "ip_reservations_unique", "interfaces_config", "$@28", "sub_interfaces6", - "$@29", "interfaces_config_params", "interfaces_config_param", - "interfaces_list", "$@30", "re_detect", "lease_database", "$@31", - "hosts_database", "$@32", "hosts_databases", "$@33", "database_list", - "not_empty_database_list", "database", "$@34", "database_map_params", - "database_map_param", "database_type", "$@35", "db_type", "user", "$@36", - "password", "$@37", "host", "$@38", "port", "name", "$@39", "persist", - "lfc_interval", "readonly", "connect_timeout", "reconnect_wait_time", - "max_row_errors", "request_timeout", "tcp_keepalive", "tcp_nodelay", - "contact_points", "$@40", "max_reconnect_tries", "keyspace", "$@41", - "consistency", "$@42", "serial_consistency", "$@43", "sanity_checks", - "$@44", "sanity_checks_params", "sanity_checks_param", "lease_checks", - "$@45", "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", + "ddns_use_conflict_resolution", "hostname_char_set", "$@25", + "hostname_char_replacement", "$@26", "store_extended_info", + "statistic_default_sample_count", "statistic_default_sample_age", + "server_tag", "$@27", "ip_reservations_unique", "interfaces_config", + "$@28", "sub_interfaces6", "$@29", "interfaces_config_params", + "interfaces_config_param", "interfaces_list", "$@30", "re_detect", + "lease_database", "$@31", "hosts_database", "$@32", "hosts_databases", + "$@33", "database_list", "not_empty_database_list", "database", "$@34", + "database_map_params", "database_map_param", "database_type", "$@35", + "db_type", "user", "$@36", "password", "$@37", "host", "$@38", "port", + "name", "$@39", "persist", "lfc_interval", "readonly", "connect_timeout", + "reconnect_wait_time", "max_row_errors", "request_timeout", + "tcp_keepalive", "tcp_nodelay", "contact_points", "$@40", + "max_reconnect_tries", "keyspace", "$@41", "consistency", "$@42", + "serial_consistency", "$@43", "sanity_checks", "$@44", + "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@45", + "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", "duid_id", "string_id", "host_reservation_identifiers", "$@47", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@48", @@ -5675,113 +5541,114 @@ namespace isc { namespace dhcp { "output_params_list", "output_params", "output", "$@133", "flush", "maxsize", "maxver", "pattern", "$@134", YY_NULLPTR }; -#endif - #if PARSER6_DEBUG - const short + const unsigned short int Dhcp6Parser::yyrline_[] = { - 0, 287, 287, 287, 288, 288, 289, 289, 290, 290, - 291, 291, 292, 292, 293, 293, 294, 294, 295, 295, - 296, 296, 297, 297, 298, 298, 299, 299, 300, 300, - 308, 309, 310, 311, 312, 313, 314, 317, 322, 322, - 333, 336, 337, 340, 345, 353, 353, 360, 361, 364, - 368, 375, 375, 382, 383, 386, 390, 401, 410, 410, - 425, 425, 442, 442, 451, 452, 457, 458, 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, 510, - 511, 512, 513, 516, 516, 525, 531, 537, 543, 549, - 555, 561, 567, 573, 579, 585, 591, 597, 603, 609, - 615, 621, 627, 627, 636, 639, 642, 645, 648, 654, - 654, 663, 663, 672, 678, 678, 687, 687, 696, 702, - 708, 714, 714, 723, 729, 729, 741, 741, 750, 751, - 754, 755, 756, 757, 758, 761, 761, 772, 778, 778, - 791, 791, 804, 804, 815, 816, 819, 820, 823, 823, - 833, 834, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 860, 860, 868, 869, 870, 871, 874, - 874, 883, 883, 892, 892, 901, 907, 907, 916, 922, - 928, 934, 940, 946, 952, 958, 964, 970, 970, 979, - 985, 985, 994, 994, 1003, 1003, 1012, 1012, 1023, 1024, - 1026, 1028, 1028, 1047, 1047, 1058, 1059, 1062, 1063, 1066, - 1071, 1076, 1076, 1087, 1088, 1091, 1092, 1093, 1096, 1101, - 1108, 1108, 1121, 1121, 1134, 1135, 1138, 1139, 1140, 1141, - 1142, 1143, 1146, 1152, 1158, 1164, 1164, 1175, 1176, 1179, - 1180, 1183, 1183, 1193, 1193, 1203, 1204, 1205, 1208, 1209, - 1212, 1212, 1221, 1221, 1230, 1230, 1242, 1243, 1246, 1247, - 1248, 1249, 1250, 1251, 1254, 1260, 1266, 1272, 1278, 1284, - 1293, 1293, 1307, 1308, 1311, 1312, 1319, 1319, 1345, 1345, - 1356, 1357, 1361, 1362, 1363, 1364, 1365, 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, - 1399, 1402, 1402, 1411, 1411, 1420, 1420, 1429, 1429, 1438, - 1438, 1449, 1449, 1457, 1458, 1459, 1460, 1463, 1469, 1477, - 1477, 1489, 1490, 1494, 1495, 1498, 1498, 1506, 1507, 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, 1536, 1537, 1538, 1539, 1540, - 1541, 1542, 1543, 1544, 1545, 1552, 1552, 1566, 1566, 1575, - 1576, 1579, 1580, 1585, 1585, 1600, 1600, 1614, 1615, 1618, - 1619, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, - 1631, 1634, 1636, 1642, 1644, 1644, 1653, 1653, 1662, 1662, - 1671, 1673, 1673, 1682, 1692, 1692, 1705, 1706, 1711, 1712, - 1717, 1717, 1729, 1729, 1741, 1742, 1747, 1748, 1753, 1754, - 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1764, 1766, 1766, - 1775, 1777, 1779, 1785, 1794, 1794, 1807, 1808, 1811, 1812, - 1815, 1815, 1825, 1825, 1835, 1836, 1839, 1840, 1841, 1842, - 1843, 1844, 1845, 1848, 1848, 1857, 1857, 1882, 1882, 1912, - 1912, 1925, 1926, 1929, 1930, 1933, 1933, 1945, 1945, 1957, - 1958, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, - 1970, 1971, 1974, 1974, 1983, 1989, 1989, 1998, 2004, 2013, - 2013, 2024, 2025, 2028, 2029, 2032, 2032, 2041, 2041, 2050, - 2051, 2054, 2055, 2059, 2060, 2061, 2062, 2063, 2064, 2065, - 2066, 2067, 2068, 2069, 2072, 2072, 2083, 2083, 2094, 2094, - 2103, 2103, 2112, 2112, 2121, 2121, 2130, 2130, 2144, 2144, - 2155, 2156, 2159, 2159, 2171, 2171, 2182, 2183, 2186, 2186, - 2196, 2197, 2200, 2201, 2204, 2205, 2206, 2207, 2208, 2209, - 2210, 2213, 2215, 2215, 2224, 2233, 2233, 2246, 2247, 2250, - 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2261, 2261, - 2269, 2270, 2271, 2274, 2280, 2280, 2289, 2295, 2303, 2311, - 2311, 2322, 2323, 2326, 2327, 2328, 2329, 2330, 2333, 2333, - 2342, 2342, 2354, 2354, 2367, 2368, 2371, 2372, 2373, 2374, - 2375, 2376, 2379, 2385, 2385, 2394, 2400, 2400, 2410, 2410, - 2423, 2423, 2433, 2434, 2437, 2438, 2439, 2440, 2441, 2442, - 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, - 2453, 2454, 2457, 2464, 2464, 2473, 2473, 2482, 2488, 2488, - 2497, 2503, 2509, 2509, 2518, 2519, 2522, 2522, 2532, 2539, - 2546, 2546, 2555, 2555, 2565, 2565, 2575, 2575, 2587, 2587, - 2599, 2599, 2609, 2610, 2614, 2615, 2618, 2618, 2629, 2637, - 2637, 2650, 2651, 2655, 2655, 2663, 2664, 2667, 2668, 2669, - 2670, 2671, 2672, 2673, 2676, 2682, 2682, 2691, 2691, 2702, - 2703, 2706, 2706, 2714, 2715, 2718, 2719, 2720, 2721, 2722, - 2725, 2725, 2734, 2740, 2746, 2752, 2752 + 0, 288, 288, 288, 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, + 309, 310, 311, 312, 313, 314, 315, 318, 323, 323, + 334, 337, 338, 341, 346, 354, 354, 361, 362, 365, + 369, 376, 376, 383, 384, 387, 391, 402, 411, 411, + 426, 426, 443, 443, 452, 453, 458, 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, 510, 511, + 512, 513, 514, 515, 518, 518, 527, 533, 539, 545, + 551, 557, 563, 569, 575, 581, 587, 593, 599, 605, + 611, 617, 623, 629, 629, 638, 641, 644, 647, 650, + 656, 656, 665, 665, 674, 680, 686, 686, 695, 695, + 704, 710, 716, 722, 722, 731, 737, 737, 749, 749, + 758, 759, 762, 763, 764, 765, 766, 769, 769, 780, + 786, 786, 799, 799, 812, 812, 823, 824, 827, 828, + 831, 831, 841, 842, 845, 846, 847, 848, 849, 850, + 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 868, 868, 876, 877, 878, + 879, 882, 882, 891, 891, 900, 900, 909, 915, 915, + 924, 930, 936, 942, 948, 954, 960, 966, 972, 978, + 978, 987, 993, 993, 1002, 1002, 1011, 1011, 1020, 1020, + 1031, 1032, 1034, 1036, 1036, 1055, 1055, 1066, 1067, 1070, + 1071, 1074, 1079, 1084, 1084, 1095, 1096, 1099, 1100, 1101, + 1104, 1109, 1116, 1116, 1129, 1129, 1142, 1143, 1146, 1147, + 1148, 1149, 1150, 1151, 1154, 1160, 1166, 1172, 1172, 1183, + 1184, 1187, 1188, 1191, 1191, 1201, 1201, 1211, 1212, 1213, + 1216, 1217, 1220, 1220, 1229, 1229, 1238, 1238, 1250, 1251, + 1254, 1255, 1256, 1257, 1258, 1259, 1262, 1268, 1274, 1280, + 1286, 1292, 1301, 1301, 1315, 1316, 1319, 1320, 1327, 1327, + 1353, 1353, 1364, 1365, 1369, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1411, 1411, 1420, 1420, 1429, 1429, + 1438, 1438, 1447, 1447, 1458, 1458, 1466, 1467, 1468, 1469, + 1472, 1478, 1486, 1486, 1498, 1499, 1503, 1504, 1507, 1507, + 1515, 1516, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, + 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, + 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1562, + 1562, 1576, 1576, 1585, 1586, 1589, 1590, 1595, 1595, 1610, + 1610, 1624, 1625, 1628, 1629, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1639, 1640, 1641, 1644, 1646, 1652, 1654, 1654, + 1663, 1663, 1672, 1672, 1681, 1683, 1683, 1692, 1702, 1702, + 1715, 1716, 1721, 1722, 1727, 1727, 1739, 1739, 1751, 1752, + 1757, 1758, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, + 1771, 1774, 1776, 1776, 1785, 1787, 1789, 1795, 1804, 1804, + 1817, 1818, 1821, 1822, 1825, 1825, 1835, 1835, 1845, 1846, + 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1858, 1858, 1867, + 1867, 1892, 1892, 1922, 1922, 1935, 1936, 1939, 1940, 1943, + 1943, 1955, 1955, 1967, 1968, 1971, 1972, 1973, 1974, 1975, + 1976, 1977, 1978, 1979, 1980, 1981, 1984, 1984, 1993, 1999, + 1999, 2008, 2014, 2023, 2023, 2034, 2035, 2038, 2039, 2042, + 2042, 2051, 2051, 2060, 2061, 2064, 2065, 2069, 2070, 2071, + 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2082, 2082, + 2093, 2093, 2104, 2104, 2113, 2113, 2122, 2122, 2131, 2131, + 2140, 2140, 2154, 2154, 2165, 2166, 2169, 2169, 2181, 2181, + 2192, 2193, 2196, 2196, 2206, 2207, 2210, 2211, 2214, 2215, + 2216, 2217, 2218, 2219, 2220, 2223, 2225, 2225, 2234, 2243, + 2243, 2256, 2257, 2260, 2261, 2262, 2263, 2264, 2265, 2266, + 2267, 2268, 2271, 2271, 2279, 2280, 2281, 2284, 2290, 2290, + 2299, 2305, 2313, 2321, 2321, 2332, 2333, 2336, 2337, 2338, + 2339, 2340, 2343, 2343, 2352, 2352, 2364, 2364, 2377, 2378, + 2381, 2382, 2383, 2384, 2385, 2386, 2389, 2395, 2395, 2404, + 2410, 2410, 2420, 2420, 2433, 2433, 2443, 2444, 2447, 2448, + 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, + 2459, 2460, 2461, 2462, 2463, 2464, 2467, 2474, 2474, 2483, + 2483, 2492, 2498, 2498, 2507, 2513, 2519, 2519, 2528, 2529, + 2532, 2532, 2542, 2549, 2556, 2556, 2565, 2565, 2575, 2575, + 2585, 2585, 2597, 2597, 2609, 2609, 2619, 2620, 2624, 2625, + 2628, 2628, 2639, 2647, 2647, 2660, 2661, 2665, 2665, 2673, + 2674, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2686, 2692, + 2692, 2701, 2701, 2712, 2713, 2716, 2716, 2724, 2725, 2728, + 2729, 2730, 2731, 2732, 2735, 2735, 2744, 2750, 2756, 2762, + 2762 }; + // Print the state stack on the debug stream. void - Dhcp6Parser::yy_stack_print_ () const + Dhcp6Parser::yystack_print_ () { *yycdebug_ << "Stack now"; for (stack_type::const_iterator 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) const + 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 << " =", @@ -5790,11 +5657,10 @@ namespace isc { namespace dhcp { #endif // PARSER6_DEBUG -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 5796 "dhcp6_parser.cc" - -#line 2761 "dhcp6_parser.yy" +#line 5663 "dhcp6_parser.cc" // lalr1.cc:1167 +#line 2771 "dhcp6_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index a410fca6b0..b6cb6e538f 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.7.2. +// 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,14 +37,10 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. - #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 <string> #include <cc/data.h> @@ -57,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 61 "dhcp6_parser.h" +#line 56 "dhcp6_parser.h" // lalr1.cc:377 # include <cassert> # include <cstdlib> // std::abort @@ -65,64 +60,39 @@ using namespace std; # include <stdexcept> # include <string> # include <vector> - -#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 <typeinfo> -#ifndef YY_ASSERT +#ifndef YYASSERT # include <cassert> -# 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 @@ -133,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 @@ -152,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<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (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 @@ -198,182 +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 204 "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 <size_t S> + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant<S> self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) + variant () + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - semantic_type (YY_RVREF (T) t) + variant (const T& t) : yytypeid_ (&typeid (T)) { - YY_ASSERT (sizeof (T) <= size); - new (yyas_<T> ()) T (YY_MOVE (t)); + YYASSERT (sizeof (T) <= S); + new (yyas_<T> ()) T (t); } -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - semantic_type (const self_type&) = delete; - /// Non copyable. - self_type& operator= (const self_type&) = delete; -#endif - /// 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 <typename T, typename... U> - T& - emplace (U&&... u) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (std::forward <U>(u)...); - } -# else /// Instantiate an empty \a T in here. template <typename T> T& - emplace () + build () { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (); + return *new (yyas_<T> ()) T; } /// Instantiate a \a T in here from \a t. template <typename T> T& - emplace (const T& t) + build (const T& t) { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } -# endif - - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. - template <typename T> - T& - build () - { - return emplace<T> (); - } - - /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. - template <typename T> - T& - build (const T& t) - { - return emplace<T> (t); - } /// Accessor to a built \a T. template <typename T> 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_<T> (); } /// Const accessor to a built \a T (for %printer). template <typename T> 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_<T> (); } - /// 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 <typename T> void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as<T> (), that.as<T> ()); + YYASSERT (yytypeid_); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as<T> (), other.as<T> ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. - template <typename T> - void - move (self_type& that) - { -# if 201103L <= YY_CPLUSPLUS - emplace<T> (std::move (that.as<T> ())); -# else - emplace<T> (); - swap<T> (that); -# endif - that.destroy<T> (); - } - -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. + /// Destroys \a other. template <typename T> void - move (self_type&& that) + move (self_type& other) { - emplace<T> (std::move (that.as<T> ())); - that.destroy<T> (); + build<T> (); + swap<T> (other); + other.destroy<T> (); } -#endif - /// Copy the content of \a that to this. + /// Copy the content of \a other to this. template <typename T> void - copy (const self_type& that) + copy (const self_type& other) { - emplace<T> (that.as<T> ()); + build<T> (other.as<T> ()); } /// Destroy the stored \a T. @@ -386,17 +261,14 @@ namespace isc { namespace dhcp { } private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - semantic_type (const self_type&); - /// Non copyable. - self_type& operator= (const self_type&); -#endif + /// Prohibit blind copies. + self_type& operator=(const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template <typename T> T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); @@ -405,12 +277,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template <typename T> const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (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 { @@ -421,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<sizeof(union_type)> semantic_type; #else typedef PARSER6_STYPE semantic_type; #endif @@ -461,888 +337,235 @@ 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; }; - /// Token kinds. + /// Tokens. struct token { - enum token_kind_type - { - TOKEN_PARSER6_EMPTY = -2, - TOKEN_END = 0, // "end of file" - TOKEN_PARSER6_error = 256, // error - TOKEN_PARSER6_UNDEF = 257, // "invalid token" - TOKEN_COMMA = 258, // "," - TOKEN_COLON = 259, // ":" - TOKEN_LSQUARE_BRACKET = 260, // "[" - TOKEN_RSQUARE_BRACKET = 261, // "]" - TOKEN_LCURLY_BRACKET = 262, // "{" - TOKEN_RCURLY_BRACKET = 263, // "}" - TOKEN_NULL_TYPE = 264, // "null" - TOKEN_DHCP6 = 265, // "Dhcp6" - TOKEN_DATA_DIRECTORY = 266, // "data-directory" - TOKEN_CONFIG_CONTROL = 267, // "config-control" - TOKEN_CONFIG_DATABASES = 268, // "config-databases" - TOKEN_CONFIG_FETCH_WAIT_TIME = 269, // "config-fetch-wait-time" - TOKEN_INTERFACES_CONFIG = 270, // "interfaces-config" - TOKEN_INTERFACES = 271, // "interfaces" - TOKEN_RE_DETECT = 272, // "re-detect" - TOKEN_LEASE_DATABASE = 273, // "lease-database" - TOKEN_HOSTS_DATABASE = 274, // "hosts-database" - TOKEN_HOSTS_DATABASES = 275, // "hosts-databases" - TOKEN_TYPE = 276, // "type" - TOKEN_MEMFILE = 277, // "memfile" - TOKEN_MYSQL = 278, // "mysql" - TOKEN_POSTGRESQL = 279, // "postgresql" - TOKEN_CQL = 280, // "cql" - TOKEN_USER = 281, // "user" - TOKEN_PASSWORD = 282, // "password" - TOKEN_HOST = 283, // "host" - TOKEN_PORT = 284, // "port" - TOKEN_PERSIST = 285, // "persist" - TOKEN_LFC_INTERVAL = 286, // "lfc-interval" - TOKEN_READONLY = 287, // "readonly" - TOKEN_CONNECT_TIMEOUT = 288, // "connect-timeout" - TOKEN_CONTACT_POINTS = 289, // "contact-points" - TOKEN_MAX_RECONNECT_TRIES = 290, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 291, // "reconnect-wait-time" - TOKEN_KEYSPACE = 292, // "keyspace" - TOKEN_CONSISTENCY = 293, // "consistency" - TOKEN_SERIAL_CONSISTENCY = 294, // "serial-consistency" - TOKEN_REQUEST_TIMEOUT = 295, // "request-timeout" - TOKEN_TCP_KEEPALIVE = 296, // "tcp-keepalive" - TOKEN_TCP_NODELAY = 297, // "tcp-nodelay" - TOKEN_MAX_ROW_ERRORS = 298, // "max-row-errors" - TOKEN_PREFERRED_LIFETIME = 299, // "preferred-lifetime" - TOKEN_MIN_PREFERRED_LIFETIME = 300, // "min-preferred-lifetime" - TOKEN_MAX_PREFERRED_LIFETIME = 301, // "max-preferred-lifetime" - TOKEN_VALID_LIFETIME = 302, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 303, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 304, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 305, // "renew-timer" - TOKEN_REBIND_TIMER = 306, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 307, // "calculate-tee-times" - TOKEN_T1_PERCENT = 308, // "t1-percent" - TOKEN_T2_PERCENT = 309, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 310, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 311, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 312, // "decline-probation-period" - TOKEN_SERVER_TAG = 313, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 314, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 315, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 316, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 317, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 318, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 319, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 320, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 321, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 322, // "ddns-update-on-renew" - TOKEN_STORE_EXTENDED_INFO = 323, // "store-extended-info" - TOKEN_SUBNET6 = 324, // "subnet6" - TOKEN_OPTION_DEF = 325, // "option-def" - TOKEN_OPTION_DATA = 326, // "option-data" - TOKEN_NAME = 327, // "name" - TOKEN_DATA = 328, // "data" - TOKEN_CODE = 329, // "code" - TOKEN_SPACE = 330, // "space" - TOKEN_CSV_FORMAT = 331, // "csv-format" - TOKEN_ALWAYS_SEND = 332, // "always-send" - TOKEN_RECORD_TYPES = 333, // "record-types" - TOKEN_ENCAPSULATE = 334, // "encapsulate" - TOKEN_ARRAY = 335, // "array" - TOKEN_POOLS = 336, // "pools" - TOKEN_POOL = 337, // "pool" - TOKEN_PD_POOLS = 338, // "pd-pools" - TOKEN_PREFIX = 339, // "prefix" - TOKEN_PREFIX_LEN = 340, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 341, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 342, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 343, // "delegated-len" - TOKEN_USER_CONTEXT = 344, // "user-context" - TOKEN_COMMENT = 345, // "comment" - TOKEN_SUBNET = 346, // "subnet" - TOKEN_INTERFACE = 347, // "interface" - TOKEN_INTERFACE_ID = 348, // "interface-id" - TOKEN_ID = 349, // "id" - TOKEN_RAPID_COMMIT = 350, // "rapid-commit" - TOKEN_RESERVATION_MODE = 351, // "reservation-mode" - TOKEN_DISABLED = 352, // "disabled" - TOKEN_OUT_OF_POOL = 353, // "out-of-pool" - TOKEN_GLOBAL = 354, // "global" - TOKEN_ALL = 355, // "all" - TOKEN_SHARED_NETWORKS = 356, // "shared-networks" - TOKEN_MAC_SOURCES = 357, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 358, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 359, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 360, // "sanity-checks" - TOKEN_LEASE_CHECKS = 361, // "lease-checks" - TOKEN_CLIENT_CLASSES = 362, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 363, // "require-client-classes" - TOKEN_TEST = 364, // "test" - TOKEN_ONLY_IF_REQUIRED = 365, // "only-if-required" - TOKEN_CLIENT_CLASS = 366, // "client-class" - TOKEN_RESERVATIONS = 367, // "reservations" - TOKEN_IP_ADDRESSES = 368, // "ip-addresses" - TOKEN_PREFIXES = 369, // "prefixes" - TOKEN_DUID = 370, // "duid" - TOKEN_HW_ADDRESS = 371, // "hw-address" - TOKEN_HOSTNAME = 372, // "hostname" - TOKEN_FLEX_ID = 373, // "flex-id" - TOKEN_RELAY = 374, // "relay" - TOKEN_IP_ADDRESS = 375, // "ip-address" - TOKEN_HOOKS_LIBRARIES = 376, // "hooks-libraries" - TOKEN_LIBRARY = 377, // "library" - TOKEN_PARAMETERS = 378, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 379, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 380, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 381, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 382, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 383, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 384, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 385, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 386, // "server-id" - TOKEN_LLT = 387, // "LLT" - TOKEN_EN = 388, // "EN" - TOKEN_LL = 389, // "LL" - TOKEN_IDENTIFIER = 390, // "identifier" - TOKEN_HTYPE = 391, // "htype" - TOKEN_TIME = 392, // "time" - TOKEN_ENTERPRISE_ID = 393, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 394, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 395, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 396, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 397, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 398, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 399, // "control-socket" - TOKEN_SOCKET_TYPE = 400, // "socket-type" - TOKEN_SOCKET_NAME = 401, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 402, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 403, // "enable-queue" - TOKEN_QUEUE_TYPE = 404, // "queue-type" - TOKEN_CAPACITY = 405, // "capacity" - TOKEN_DHCP_DDNS = 406, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 407, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 408, // "qualifying-suffix" - TOKEN_SERVER_IP = 409, // "server-ip" - TOKEN_SERVER_PORT = 410, // "server-port" - TOKEN_SENDER_IP = 411, // "sender-ip" - TOKEN_SENDER_PORT = 412, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 413, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 414, // "ncr-protocol" - TOKEN_NCR_FORMAT = 415, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 416, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 417, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 418, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 419, // "generated-prefix" - TOKEN_UDP = 420, // "UDP" - TOKEN_TCP = 421, // "TCP" - TOKEN_JSON = 422, // "JSON" - TOKEN_WHEN_PRESENT = 423, // "when-present" - TOKEN_NEVER = 424, // "never" - TOKEN_ALWAYS = 425, // "always" - TOKEN_WHEN_NOT_PRESENT = 426, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 427, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 428, // "hostname-char-replacement" - TOKEN_IP_RESERVATIONS_UNIQUE = 429, // "ip-reservations-unique" - TOKEN_LOGGERS = 430, // "loggers" - TOKEN_OUTPUT_OPTIONS = 431, // "output_options" - TOKEN_OUTPUT = 432, // "output" - TOKEN_DEBUGLEVEL = 433, // "debuglevel" - TOKEN_SEVERITY = 434, // "severity" - TOKEN_FLUSH = 435, // "flush" - TOKEN_MAXSIZE = 436, // "maxsize" - TOKEN_MAXVER = 437, // "maxver" - TOKEN_PATTERN = 438, // "pattern" - TOKEN_TOPLEVEL_JSON = 439, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 440, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 441, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 442, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 443, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 444, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 445, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 446, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 447, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 448, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 449, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 450, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 451, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 452, // SUB_CONFIG_CONTROL - TOKEN_STRING = 453, // "constant string" - TOKEN_INTEGER = 454, // "integer" - TOKEN_FLOAT = 455, // "floating point" - TOKEN_BOOLEAN = 456 // "boolean" + enum yytokentype + { + TOKEN_END = 0, + TOKEN_COMMA = 258, + TOKEN_COLON = 259, + TOKEN_LSQUARE_BRACKET = 260, + TOKEN_RSQUARE_BRACKET = 261, + TOKEN_LCURLY_BRACKET = 262, + TOKEN_RCURLY_BRACKET = 263, + TOKEN_NULL_TYPE = 264, + TOKEN_DHCP6 = 265, + TOKEN_DATA_DIRECTORY = 266, + TOKEN_CONFIG_CONTROL = 267, + TOKEN_CONFIG_DATABASES = 268, + TOKEN_CONFIG_FETCH_WAIT_TIME = 269, + TOKEN_INTERFACES_CONFIG = 270, + TOKEN_INTERFACES = 271, + TOKEN_RE_DETECT = 272, + TOKEN_LEASE_DATABASE = 273, + TOKEN_HOSTS_DATABASE = 274, + TOKEN_HOSTS_DATABASES = 275, + TOKEN_TYPE = 276, + TOKEN_MEMFILE = 277, + TOKEN_MYSQL = 278, + TOKEN_POSTGRESQL = 279, + TOKEN_CQL = 280, + TOKEN_USER = 281, + TOKEN_PASSWORD = 282, + TOKEN_HOST = 283, + TOKEN_PORT = 284, + TOKEN_PERSIST = 285, + TOKEN_LFC_INTERVAL = 286, + TOKEN_READONLY = 287, + TOKEN_CONNECT_TIMEOUT = 288, + TOKEN_CONTACT_POINTS = 289, + TOKEN_MAX_RECONNECT_TRIES = 290, + TOKEN_RECONNECT_WAIT_TIME = 291, + TOKEN_KEYSPACE = 292, + TOKEN_CONSISTENCY = 293, + TOKEN_SERIAL_CONSISTENCY = 294, + TOKEN_REQUEST_TIMEOUT = 295, + TOKEN_TCP_KEEPALIVE = 296, + TOKEN_TCP_NODELAY = 297, + TOKEN_MAX_ROW_ERRORS = 298, + TOKEN_PREFERRED_LIFETIME = 299, + TOKEN_MIN_PREFERRED_LIFETIME = 300, + TOKEN_MAX_PREFERRED_LIFETIME = 301, + TOKEN_VALID_LIFETIME = 302, + TOKEN_MIN_VALID_LIFETIME = 303, + TOKEN_MAX_VALID_LIFETIME = 304, + TOKEN_RENEW_TIMER = 305, + TOKEN_REBIND_TIMER = 306, + TOKEN_CALCULATE_TEE_TIMES = 307, + TOKEN_T1_PERCENT = 308, + TOKEN_T2_PERCENT = 309, + TOKEN_CACHE_THRESHOLD = 310, + TOKEN_CACHE_MAX_AGE = 311, + TOKEN_DECLINE_PROBATION_PERIOD = 312, + TOKEN_SERVER_TAG = 313, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 314, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 315, + TOKEN_DDNS_SEND_UPDATES = 316, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 317, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 318, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 319, + TOKEN_DDNS_GENERATED_PREFIX = 320, + TOKEN_DDNS_QUALIFYING_SUFFIX = 321, + TOKEN_DDNS_UPDATE_ON_RENEW = 322, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 323, + TOKEN_STORE_EXTENDED_INFO = 324, + TOKEN_SUBNET6 = 325, + TOKEN_OPTION_DEF = 326, + TOKEN_OPTION_DATA = 327, + TOKEN_NAME = 328, + TOKEN_DATA = 329, + TOKEN_CODE = 330, + TOKEN_SPACE = 331, + TOKEN_CSV_FORMAT = 332, + TOKEN_ALWAYS_SEND = 333, + TOKEN_RECORD_TYPES = 334, + TOKEN_ENCAPSULATE = 335, + TOKEN_ARRAY = 336, + TOKEN_POOLS = 337, + TOKEN_POOL = 338, + TOKEN_PD_POOLS = 339, + TOKEN_PREFIX = 340, + TOKEN_PREFIX_LEN = 341, + TOKEN_EXCLUDED_PREFIX = 342, + TOKEN_EXCLUDED_PREFIX_LEN = 343, + TOKEN_DELEGATED_LEN = 344, + TOKEN_USER_CONTEXT = 345, + TOKEN_COMMENT = 346, + TOKEN_SUBNET = 347, + TOKEN_INTERFACE = 348, + TOKEN_INTERFACE_ID = 349, + TOKEN_ID = 350, + TOKEN_RAPID_COMMIT = 351, + TOKEN_RESERVATION_MODE = 352, + TOKEN_DISABLED = 353, + TOKEN_OUT_OF_POOL = 354, + TOKEN_GLOBAL = 355, + TOKEN_ALL = 356, + TOKEN_SHARED_NETWORKS = 357, + TOKEN_MAC_SOURCES = 358, + TOKEN_RELAY_SUPPLIED_OPTIONS = 359, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 360, + TOKEN_SANITY_CHECKS = 361, + TOKEN_LEASE_CHECKS = 362, + TOKEN_CLIENT_CLASSES = 363, + TOKEN_REQUIRE_CLIENT_CLASSES = 364, + TOKEN_TEST = 365, + TOKEN_ONLY_IF_REQUIRED = 366, + TOKEN_CLIENT_CLASS = 367, + TOKEN_RESERVATIONS = 368, + TOKEN_IP_ADDRESSES = 369, + TOKEN_PREFIXES = 370, + TOKEN_DUID = 371, + TOKEN_HW_ADDRESS = 372, + TOKEN_HOSTNAME = 373, + TOKEN_FLEX_ID = 374, + TOKEN_RELAY = 375, + TOKEN_IP_ADDRESS = 376, + TOKEN_HOOKS_LIBRARIES = 377, + TOKEN_LIBRARY = 378, + TOKEN_PARAMETERS = 379, + TOKEN_EXPIRED_LEASES_PROCESSING = 380, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 381, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 382, + TOKEN_HOLD_RECLAIMED_TIME = 383, + TOKEN_MAX_RECLAIM_LEASES = 384, + TOKEN_MAX_RECLAIM_TIME = 385, + TOKEN_UNWARNED_RECLAIM_CYCLES = 386, + TOKEN_SERVER_ID = 387, + TOKEN_LLT = 388, + TOKEN_EN = 389, + TOKEN_LL = 390, + TOKEN_IDENTIFIER = 391, + TOKEN_HTYPE = 392, + TOKEN_TIME = 393, + TOKEN_ENTERPRISE_ID = 394, + TOKEN_DHCP4O6_PORT = 395, + TOKEN_DHCP_MULTI_THREADING = 396, + TOKEN_ENABLE_MULTI_THREADING = 397, + TOKEN_THREAD_POOL_SIZE = 398, + TOKEN_PACKET_QUEUE_SIZE = 399, + TOKEN_CONTROL_SOCKET = 400, + TOKEN_SOCKET_TYPE = 401, + TOKEN_SOCKET_NAME = 402, + TOKEN_DHCP_QUEUE_CONTROL = 403, + TOKEN_ENABLE_QUEUE = 404, + TOKEN_QUEUE_TYPE = 405, + TOKEN_CAPACITY = 406, + TOKEN_DHCP_DDNS = 407, + TOKEN_ENABLE_UPDATES = 408, + TOKEN_QUALIFYING_SUFFIX = 409, + TOKEN_SERVER_IP = 410, + TOKEN_SERVER_PORT = 411, + TOKEN_SENDER_IP = 412, + TOKEN_SENDER_PORT = 413, + TOKEN_MAX_QUEUE_SIZE = 414, + TOKEN_NCR_PROTOCOL = 415, + TOKEN_NCR_FORMAT = 416, + TOKEN_OVERRIDE_NO_UPDATE = 417, + TOKEN_OVERRIDE_CLIENT_UPDATE = 418, + TOKEN_REPLACE_CLIENT_NAME = 419, + TOKEN_GENERATED_PREFIX = 420, + TOKEN_UDP = 421, + TOKEN_TCP = 422, + TOKEN_JSON = 423, + TOKEN_WHEN_PRESENT = 424, + TOKEN_NEVER = 425, + TOKEN_ALWAYS = 426, + TOKEN_WHEN_NOT_PRESENT = 427, + TOKEN_HOSTNAME_CHAR_SET = 428, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 429, + TOKEN_IP_RESERVATIONS_UNIQUE = 430, + TOKEN_LOGGERS = 431, + TOKEN_OUTPUT_OPTIONS = 432, + TOKEN_OUTPUT = 433, + TOKEN_DEBUGLEVEL = 434, + TOKEN_SEVERITY = 435, + TOKEN_FLUSH = 436, + TOKEN_MAXSIZE = 437, + TOKEN_MAXVER = 438, + TOKEN_PATTERN = 439, + TOKEN_TOPLEVEL_JSON = 440, + TOKEN_TOPLEVEL_DHCP6 = 441, + TOKEN_SUB_DHCP6 = 442, + TOKEN_SUB_INTERFACES6 = 443, + TOKEN_SUB_SUBNET6 = 444, + TOKEN_SUB_POOL6 = 445, + TOKEN_SUB_PD_POOL = 446, + TOKEN_SUB_RESERVATION = 447, + TOKEN_SUB_OPTION_DEFS = 448, + TOKEN_SUB_OPTION_DEF = 449, + TOKEN_SUB_OPTION_DATA = 450, + TOKEN_SUB_HOOKS_LIBRARY = 451, + TOKEN_SUB_DHCP_DDNS = 452, + TOKEN_SUB_CONFIG_CONTROL = 453, + TOKEN_STRING = 454, + TOKEN_INTEGER = 455, + TOKEN_FLOAT = 456, + TOKEN_BOOLEAN = 457 }; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type yytokentype; }; - /// Token kind, as returned by yylex. - typedef token::yytokentype token_kind_type; - - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type token_type; + /// (External) token type, as returned by yylex. + typedef token::yytokentype token_type; - /// Symbol kinds. - struct symbol_kind - { - enum symbol_kind_type - { - YYNTOKENS = 202, ///< Number of tokens. - S_YYEMPTY = -2, - S_YYEOF = 0, // "end of file" - S_YYerror = 1, // error - S_YYUNDEF = 2, // "invalid token" - S_COMMA = 3, // "," - S_COLON = 4, // ":" - S_LSQUARE_BRACKET = 5, // "[" - S_RSQUARE_BRACKET = 6, // "]" - S_LCURLY_BRACKET = 7, // "{" - S_RCURLY_BRACKET = 8, // "}" - S_NULL_TYPE = 9, // "null" - S_DHCP6 = 10, // "Dhcp6" - S_DATA_DIRECTORY = 11, // "data-directory" - S_CONFIG_CONTROL = 12, // "config-control" - S_CONFIG_DATABASES = 13, // "config-databases" - S_CONFIG_FETCH_WAIT_TIME = 14, // "config-fetch-wait-time" - S_INTERFACES_CONFIG = 15, // "interfaces-config" - S_INTERFACES = 16, // "interfaces" - S_RE_DETECT = 17, // "re-detect" - S_LEASE_DATABASE = 18, // "lease-database" - S_HOSTS_DATABASE = 19, // "hosts-database" - S_HOSTS_DATABASES = 20, // "hosts-databases" - S_TYPE = 21, // "type" - S_MEMFILE = 22, // "memfile" - S_MYSQL = 23, // "mysql" - S_POSTGRESQL = 24, // "postgresql" - S_CQL = 25, // "cql" - S_USER = 26, // "user" - S_PASSWORD = 27, // "password" - S_HOST = 28, // "host" - S_PORT = 29, // "port" - S_PERSIST = 30, // "persist" - S_LFC_INTERVAL = 31, // "lfc-interval" - S_READONLY = 32, // "readonly" - S_CONNECT_TIMEOUT = 33, // "connect-timeout" - S_CONTACT_POINTS = 34, // "contact-points" - S_MAX_RECONNECT_TRIES = 35, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 36, // "reconnect-wait-time" - S_KEYSPACE = 37, // "keyspace" - S_CONSISTENCY = 38, // "consistency" - S_SERIAL_CONSISTENCY = 39, // "serial-consistency" - S_REQUEST_TIMEOUT = 40, // "request-timeout" - S_TCP_KEEPALIVE = 41, // "tcp-keepalive" - S_TCP_NODELAY = 42, // "tcp-nodelay" - S_MAX_ROW_ERRORS = 43, // "max-row-errors" - S_PREFERRED_LIFETIME = 44, // "preferred-lifetime" - S_MIN_PREFERRED_LIFETIME = 45, // "min-preferred-lifetime" - S_MAX_PREFERRED_LIFETIME = 46, // "max-preferred-lifetime" - S_VALID_LIFETIME = 47, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 48, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 49, // "max-valid-lifetime" - S_RENEW_TIMER = 50, // "renew-timer" - S_REBIND_TIMER = 51, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 52, // "calculate-tee-times" - S_T1_PERCENT = 53, // "t1-percent" - S_T2_PERCENT = 54, // "t2-percent" - S_CACHE_THRESHOLD = 55, // "cache-threshold" - S_CACHE_MAX_AGE = 56, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 57, // "decline-probation-period" - S_SERVER_TAG = 58, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 59, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 60, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 61, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 62, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 63, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 64, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 65, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 66, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 67, // "ddns-update-on-renew" - S_STORE_EXTENDED_INFO = 68, // "store-extended-info" - S_SUBNET6 = 69, // "subnet6" - S_OPTION_DEF = 70, // "option-def" - S_OPTION_DATA = 71, // "option-data" - S_NAME = 72, // "name" - S_DATA = 73, // "data" - S_CODE = 74, // "code" - S_SPACE = 75, // "space" - S_CSV_FORMAT = 76, // "csv-format" - S_ALWAYS_SEND = 77, // "always-send" - S_RECORD_TYPES = 78, // "record-types" - S_ENCAPSULATE = 79, // "encapsulate" - S_ARRAY = 80, // "array" - S_POOLS = 81, // "pools" - S_POOL = 82, // "pool" - S_PD_POOLS = 83, // "pd-pools" - S_PREFIX = 84, // "prefix" - S_PREFIX_LEN = 85, // "prefix-len" - S_EXCLUDED_PREFIX = 86, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 87, // "excluded-prefix-len" - S_DELEGATED_LEN = 88, // "delegated-len" - S_USER_CONTEXT = 89, // "user-context" - S_COMMENT = 90, // "comment" - S_SUBNET = 91, // "subnet" - S_INTERFACE = 92, // "interface" - S_INTERFACE_ID = 93, // "interface-id" - S_ID = 94, // "id" - S_RAPID_COMMIT = 95, // "rapid-commit" - S_RESERVATION_MODE = 96, // "reservation-mode" - S_DISABLED = 97, // "disabled" - S_OUT_OF_POOL = 98, // "out-of-pool" - S_GLOBAL = 99, // "global" - S_ALL = 100, // "all" - S_SHARED_NETWORKS = 101, // "shared-networks" - S_MAC_SOURCES = 102, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 103, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 104, // "host-reservation-identifiers" - S_SANITY_CHECKS = 105, // "sanity-checks" - S_LEASE_CHECKS = 106, // "lease-checks" - S_CLIENT_CLASSES = 107, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 108, // "require-client-classes" - S_TEST = 109, // "test" - S_ONLY_IF_REQUIRED = 110, // "only-if-required" - S_CLIENT_CLASS = 111, // "client-class" - S_RESERVATIONS = 112, // "reservations" - S_IP_ADDRESSES = 113, // "ip-addresses" - S_PREFIXES = 114, // "prefixes" - S_DUID = 115, // "duid" - S_HW_ADDRESS = 116, // "hw-address" - S_HOSTNAME = 117, // "hostname" - S_FLEX_ID = 118, // "flex-id" - S_RELAY = 119, // "relay" - S_IP_ADDRESS = 120, // "ip-address" - S_HOOKS_LIBRARIES = 121, // "hooks-libraries" - S_LIBRARY = 122, // "library" - S_PARAMETERS = 123, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 124, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 125, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 126, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 127, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 128, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 129, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 130, // "unwarned-reclaim-cycles" - S_SERVER_ID = 131, // "server-id" - S_LLT = 132, // "LLT" - S_EN = 133, // "EN" - S_LL = 134, // "LL" - S_IDENTIFIER = 135, // "identifier" - S_HTYPE = 136, // "htype" - S_TIME = 137, // "time" - S_ENTERPRISE_ID = 138, // "enterprise-id" - S_DHCP4O6_PORT = 139, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 140, // "multi-threading" - S_ENABLE_MULTI_THREADING = 141, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 142, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 143, // "packet-queue-size" - S_CONTROL_SOCKET = 144, // "control-socket" - S_SOCKET_TYPE = 145, // "socket-type" - S_SOCKET_NAME = 146, // "socket-name" - S_DHCP_QUEUE_CONTROL = 147, // "dhcp-queue-control" - S_ENABLE_QUEUE = 148, // "enable-queue" - S_QUEUE_TYPE = 149, // "queue-type" - S_CAPACITY = 150, // "capacity" - S_DHCP_DDNS = 151, // "dhcp-ddns" - S_ENABLE_UPDATES = 152, // "enable-updates" - S_QUALIFYING_SUFFIX = 153, // "qualifying-suffix" - S_SERVER_IP = 154, // "server-ip" - S_SERVER_PORT = 155, // "server-port" - S_SENDER_IP = 156, // "sender-ip" - S_SENDER_PORT = 157, // "sender-port" - S_MAX_QUEUE_SIZE = 158, // "max-queue-size" - S_NCR_PROTOCOL = 159, // "ncr-protocol" - S_NCR_FORMAT = 160, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 161, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 162, // "override-client-update" - S_REPLACE_CLIENT_NAME = 163, // "replace-client-name" - S_GENERATED_PREFIX = 164, // "generated-prefix" - S_UDP = 165, // "UDP" - S_TCP = 166, // "TCP" - S_JSON = 167, // "JSON" - S_WHEN_PRESENT = 168, // "when-present" - S_NEVER = 169, // "never" - S_ALWAYS = 170, // "always" - S_WHEN_NOT_PRESENT = 171, // "when-not-present" - S_HOSTNAME_CHAR_SET = 172, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 173, // "hostname-char-replacement" - S_IP_RESERVATIONS_UNIQUE = 174, // "ip-reservations-unique" - S_LOGGERS = 175, // "loggers" - S_OUTPUT_OPTIONS = 176, // "output_options" - S_OUTPUT = 177, // "output" - S_DEBUGLEVEL = 178, // "debuglevel" - S_SEVERITY = 179, // "severity" - S_FLUSH = 180, // "flush" - S_MAXSIZE = 181, // "maxsize" - S_MAXVER = 182, // "maxver" - S_PATTERN = 183, // "pattern" - S_TOPLEVEL_JSON = 184, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 185, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 186, // SUB_DHCP6 - S_SUB_INTERFACES6 = 187, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 188, // SUB_SUBNET6 - S_SUB_POOL6 = 189, // SUB_POOL6 - S_SUB_PD_POOL = 190, // SUB_PD_POOL - S_SUB_RESERVATION = 191, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 192, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 193, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 194, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 195, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 196, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 197, // SUB_CONFIG_CONTROL - S_STRING = 198, // "constant string" - S_INTEGER = 199, // "integer" - S_FLOAT = 200, // "floating point" - S_BOOLEAN = 201, // "boolean" - S_YYACCEPT = 202, // $accept - S_start = 203, // start - S_204_1 = 204, // $@1 - S_205_2 = 205, // $@2 - S_206_3 = 206, // $@3 - S_207_4 = 207, // $@4 - S_208_5 = 208, // $@5 - S_209_6 = 209, // $@6 - S_210_7 = 210, // $@7 - S_211_8 = 211, // $@8 - S_212_9 = 212, // $@9 - S_213_10 = 213, // $@10 - S_214_11 = 214, // $@11 - S_215_12 = 215, // $@12 - S_216_13 = 216, // $@13 - S_217_14 = 217, // $@14 - S_value = 218, // value - S_sub_json = 219, // sub_json - S_map2 = 220, // map2 - S_221_15 = 221, // $@15 - S_map_value = 222, // map_value - S_map_content = 223, // map_content - S_not_empty_map = 224, // not_empty_map - S_list_generic = 225, // list_generic - S_226_16 = 226, // $@16 - S_list_content = 227, // list_content - S_not_empty_list = 228, // not_empty_list - S_list_strings = 229, // list_strings - S_230_17 = 230, // $@17 - S_list_strings_content = 231, // list_strings_content - S_not_empty_list_strings = 232, // not_empty_list_strings - S_unknown_map_entry = 233, // unknown_map_entry - S_syntax_map = 234, // syntax_map - S_235_18 = 235, // $@18 - S_global_object = 236, // global_object - S_237_19 = 237, // $@19 - S_sub_dhcp6 = 238, // sub_dhcp6 - S_239_20 = 239, // $@20 - S_global_params = 240, // global_params - S_global_param = 241, // global_param - S_data_directory = 242, // data_directory - S_243_21 = 243, // $@21 - S_preferred_lifetime = 244, // preferred_lifetime - S_min_preferred_lifetime = 245, // min_preferred_lifetime - S_max_preferred_lifetime = 246, // max_preferred_lifetime - S_valid_lifetime = 247, // valid_lifetime - S_min_valid_lifetime = 248, // min_valid_lifetime - S_max_valid_lifetime = 249, // max_valid_lifetime - S_renew_timer = 250, // renew_timer - S_rebind_timer = 251, // rebind_timer - S_calculate_tee_times = 252, // calculate_tee_times - S_t1_percent = 253, // t1_percent - S_t2_percent = 254, // t2_percent - S_cache_threshold = 255, // cache_threshold - S_cache_max_age = 256, // cache_max_age - S_decline_probation_period = 257, // decline_probation_period - S_ddns_send_updates = 258, // ddns_send_updates - S_ddns_override_no_update = 259, // ddns_override_no_update - S_ddns_override_client_update = 260, // ddns_override_client_update - S_ddns_replace_client_name = 261, // ddns_replace_client_name - S_262_22 = 262, // $@22 - S_ddns_replace_client_name_value = 263, // ddns_replace_client_name_value - S_ddns_generated_prefix = 264, // ddns_generated_prefix - S_265_23 = 265, // $@23 - S_ddns_qualifying_suffix = 266, // ddns_qualifying_suffix - S_267_24 = 267, // $@24 - S_ddns_update_on_renew = 268, // ddns_update_on_renew - S_hostname_char_set = 269, // hostname_char_set - S_270_25 = 270, // $@25 - S_hostname_char_replacement = 271, // hostname_char_replacement - S_272_26 = 272, // $@26 - S_store_extended_info = 273, // store_extended_info - S_statistic_default_sample_count = 274, // statistic_default_sample_count - S_statistic_default_sample_age = 275, // statistic_default_sample_age - S_server_tag = 276, // server_tag - S_277_27 = 277, // $@27 - S_ip_reservations_unique = 278, // ip_reservations_unique - S_interfaces_config = 279, // interfaces_config - S_280_28 = 280, // $@28 - S_sub_interfaces6 = 281, // sub_interfaces6 - S_282_29 = 282, // $@29 - S_interfaces_config_params = 283, // interfaces_config_params - S_interfaces_config_param = 284, // interfaces_config_param - S_interfaces_list = 285, // interfaces_list - S_286_30 = 286, // $@30 - S_re_detect = 287, // re_detect - S_lease_database = 288, // lease_database - S_289_31 = 289, // $@31 - S_hosts_database = 290, // hosts_database - S_291_32 = 291, // $@32 - S_hosts_databases = 292, // hosts_databases - S_293_33 = 293, // $@33 - S_database_list = 294, // database_list - S_not_empty_database_list = 295, // not_empty_database_list - S_database = 296, // database - S_297_34 = 297, // $@34 - S_database_map_params = 298, // database_map_params - S_database_map_param = 299, // database_map_param - S_database_type = 300, // database_type - S_301_35 = 301, // $@35 - S_db_type = 302, // db_type - S_user = 303, // user - S_304_36 = 304, // $@36 - S_password = 305, // password - S_306_37 = 306, // $@37 - S_host = 307, // host - S_308_38 = 308, // $@38 - S_port = 309, // port - S_name = 310, // name - S_311_39 = 311, // $@39 - S_persist = 312, // persist - S_lfc_interval = 313, // lfc_interval - S_readonly = 314, // readonly - S_connect_timeout = 315, // connect_timeout - S_reconnect_wait_time = 316, // reconnect_wait_time - S_max_row_errors = 317, // max_row_errors - S_request_timeout = 318, // request_timeout - S_tcp_keepalive = 319, // tcp_keepalive - S_tcp_nodelay = 320, // tcp_nodelay - S_contact_points = 321, // contact_points - S_322_40 = 322, // $@40 - S_max_reconnect_tries = 323, // max_reconnect_tries - S_keyspace = 324, // keyspace - S_325_41 = 325, // $@41 - S_consistency = 326, // consistency - S_327_42 = 327, // $@42 - S_serial_consistency = 328, // serial_consistency - S_329_43 = 329, // $@43 - S_sanity_checks = 330, // sanity_checks - S_331_44 = 331, // $@44 - S_sanity_checks_params = 332, // sanity_checks_params - S_sanity_checks_param = 333, // sanity_checks_param - S_lease_checks = 334, // lease_checks - S_335_45 = 335, // $@45 - S_mac_sources = 336, // mac_sources - S_337_46 = 337, // $@46 - S_mac_sources_list = 338, // mac_sources_list - S_mac_sources_value = 339, // mac_sources_value - S_duid_id = 340, // duid_id - S_string_id = 341, // string_id - S_host_reservation_identifiers = 342, // host_reservation_identifiers - S_343_47 = 343, // $@47 - S_host_reservation_identifiers_list = 344, // host_reservation_identifiers_list - S_host_reservation_identifier = 345, // host_reservation_identifier - S_hw_address_id = 346, // hw_address_id - S_flex_id = 347, // flex_id - S_relay_supplied_options = 348, // relay_supplied_options - S_349_48 = 349, // $@48 - S_dhcp_multi_threading = 350, // dhcp_multi_threading - S_351_49 = 351, // $@49 - S_multi_threading_params = 352, // multi_threading_params - S_multi_threading_param = 353, // multi_threading_param - S_enable_multi_threading = 354, // enable_multi_threading - S_thread_pool_size = 355, // thread_pool_size - S_packet_queue_size = 356, // packet_queue_size - S_hooks_libraries = 357, // hooks_libraries - S_358_50 = 358, // $@50 - S_hooks_libraries_list = 359, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 360, // not_empty_hooks_libraries_list - S_hooks_library = 361, // hooks_library - S_362_51 = 362, // $@51 - S_sub_hooks_library = 363, // sub_hooks_library - S_364_52 = 364, // $@52 - S_hooks_params = 365, // hooks_params - S_hooks_param = 366, // hooks_param - S_library = 367, // library - S_368_53 = 368, // $@53 - S_parameters = 369, // parameters - S_370_54 = 370, // $@54 - S_expired_leases_processing = 371, // expired_leases_processing - S_372_55 = 372, // $@55 - S_expired_leases_params = 373, // expired_leases_params - S_expired_leases_param = 374, // expired_leases_param - S_reclaim_timer_wait_time = 375, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 376, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 377, // hold_reclaimed_time - S_max_reclaim_leases = 378, // max_reclaim_leases - S_max_reclaim_time = 379, // max_reclaim_time - S_unwarned_reclaim_cycles = 380, // unwarned_reclaim_cycles - S_subnet6_list = 381, // subnet6_list - S_382_56 = 382, // $@56 - S_subnet6_list_content = 383, // subnet6_list_content - S_not_empty_subnet6_list = 384, // not_empty_subnet6_list - S_subnet6 = 385, // subnet6 - S_386_57 = 386, // $@57 - S_sub_subnet6 = 387, // sub_subnet6 - S_388_58 = 388, // $@58 - S_subnet6_params = 389, // subnet6_params - S_subnet6_param = 390, // subnet6_param - S_subnet = 391, // subnet - S_392_59 = 392, // $@59 - S_interface = 393, // interface - S_394_60 = 394, // $@60 - S_interface_id = 395, // interface_id - S_396_61 = 396, // $@61 - S_client_class = 397, // client_class - S_398_62 = 398, // $@62 - S_require_client_classes = 399, // require_client_classes - S_400_63 = 400, // $@63 - S_reservation_mode = 401, // reservation_mode - S_402_64 = 402, // $@64 - S_hr_mode = 403, // hr_mode - S_id = 404, // id - S_rapid_commit = 405, // rapid_commit - S_shared_networks = 406, // shared_networks - S_407_65 = 407, // $@65 - S_shared_networks_content = 408, // shared_networks_content - S_shared_networks_list = 409, // shared_networks_list - S_shared_network = 410, // shared_network - S_411_66 = 411, // $@66 - S_shared_network_params = 412, // shared_network_params - S_shared_network_param = 413, // shared_network_param - S_option_def_list = 414, // option_def_list - S_415_67 = 415, // $@67 - S_sub_option_def_list = 416, // sub_option_def_list - S_417_68 = 417, // $@68 - S_option_def_list_content = 418, // option_def_list_content - S_not_empty_option_def_list = 419, // not_empty_option_def_list - S_option_def_entry = 420, // option_def_entry - S_421_69 = 421, // $@69 - S_sub_option_def = 422, // sub_option_def - S_423_70 = 423, // $@70 - S_option_def_params = 424, // option_def_params - S_not_empty_option_def_params = 425, // not_empty_option_def_params - S_option_def_param = 426, // option_def_param - S_option_def_name = 427, // option_def_name - S_code = 428, // code - S_option_def_code = 429, // option_def_code - S_option_def_type = 430, // option_def_type - S_431_71 = 431, // $@71 - S_option_def_record_types = 432, // option_def_record_types - S_433_72 = 433, // $@72 - S_space = 434, // space - S_435_73 = 435, // $@73 - S_option_def_space = 436, // option_def_space - S_option_def_encapsulate = 437, // option_def_encapsulate - S_438_74 = 438, // $@74 - S_option_def_array = 439, // option_def_array - S_option_data_list = 440, // option_data_list - S_441_75 = 441, // $@75 - S_option_data_list_content = 442, // option_data_list_content - S_not_empty_option_data_list = 443, // not_empty_option_data_list - S_option_data_entry = 444, // option_data_entry - S_445_76 = 445, // $@76 - S_sub_option_data = 446, // sub_option_data - S_447_77 = 447, // $@77 - S_option_data_params = 448, // option_data_params - S_not_empty_option_data_params = 449, // not_empty_option_data_params - S_option_data_param = 450, // option_data_param - S_option_data_name = 451, // option_data_name - S_option_data_data = 452, // option_data_data - S_453_78 = 453, // $@78 - S_option_data_code = 454, // option_data_code - S_option_data_space = 455, // option_data_space - S_option_data_csv_format = 456, // option_data_csv_format - S_option_data_always_send = 457, // option_data_always_send - S_pools_list = 458, // pools_list - S_459_79 = 459, // $@79 - S_pools_list_content = 460, // pools_list_content - S_not_empty_pools_list = 461, // not_empty_pools_list - S_pool_list_entry = 462, // pool_list_entry - S_463_80 = 463, // $@80 - S_sub_pool6 = 464, // sub_pool6 - S_465_81 = 465, // $@81 - S_pool_params = 466, // pool_params - S_pool_param = 467, // pool_param - S_pool_entry = 468, // pool_entry - S_469_82 = 469, // $@82 - S_user_context = 470, // user_context - S_471_83 = 471, // $@83 - S_comment = 472, // comment - S_473_84 = 473, // $@84 - S_pd_pools_list = 474, // pd_pools_list - S_475_85 = 475, // $@85 - S_pd_pools_list_content = 476, // pd_pools_list_content - S_not_empty_pd_pools_list = 477, // not_empty_pd_pools_list - S_pd_pool_entry = 478, // pd_pool_entry - S_479_86 = 479, // $@86 - S_sub_pd_pool = 480, // sub_pd_pool - S_481_87 = 481, // $@87 - S_pd_pool_params = 482, // pd_pool_params - S_pd_pool_param = 483, // pd_pool_param - S_pd_prefix = 484, // pd_prefix - S_485_88 = 485, // $@88 - S_pd_prefix_len = 486, // pd_prefix_len - S_excluded_prefix = 487, // excluded_prefix - S_488_89 = 488, // $@89 - S_excluded_prefix_len = 489, // excluded_prefix_len - S_pd_delegated_len = 490, // pd_delegated_len - S_reservations = 491, // reservations - S_492_90 = 492, // $@90 - S_reservations_list = 493, // reservations_list - S_not_empty_reservations_list = 494, // not_empty_reservations_list - S_reservation = 495, // reservation - S_496_91 = 496, // $@91 - S_sub_reservation = 497, // sub_reservation - S_498_92 = 498, // $@92 - S_reservation_params = 499, // reservation_params - S_not_empty_reservation_params = 500, // not_empty_reservation_params - S_reservation_param = 501, // reservation_param - S_ip_addresses = 502, // ip_addresses - S_503_93 = 503, // $@93 - S_prefixes = 504, // prefixes - S_505_94 = 505, // $@94 - S_duid = 506, // duid - S_507_95 = 507, // $@95 - S_hw_address = 508, // hw_address - S_509_96 = 509, // $@96 - S_hostname = 510, // hostname - S_511_97 = 511, // $@97 - S_flex_id_value = 512, // flex_id_value - S_513_98 = 513, // $@98 - S_reservation_client_classes = 514, // reservation_client_classes - S_515_99 = 515, // $@99 - S_relay = 516, // relay - S_517_100 = 517, // $@100 - S_relay_map = 518, // relay_map - S_ip_address = 519, // ip_address - S_520_101 = 520, // $@101 - S_client_classes = 521, // client_classes - S_522_102 = 522, // $@102 - S_client_classes_list = 523, // client_classes_list - S_client_class_entry = 524, // client_class_entry - S_525_103 = 525, // $@103 - S_client_class_params = 526, // client_class_params - S_not_empty_client_class_params = 527, // not_empty_client_class_params - S_client_class_param = 528, // client_class_param - S_client_class_name = 529, // client_class_name - S_client_class_test = 530, // client_class_test - S_531_104 = 531, // $@104 - S_only_if_required = 532, // only_if_required - S_server_id = 533, // server_id - S_534_105 = 534, // $@105 - S_server_id_params = 535, // server_id_params - S_server_id_param = 536, // server_id_param - S_server_id_type = 537, // server_id_type - S_538_106 = 538, // $@106 - S_duid_type = 539, // duid_type - S_htype = 540, // htype - S_identifier = 541, // identifier - S_542_107 = 542, // $@107 - S_time = 543, // time - S_enterprise_id = 544, // enterprise_id - S_dhcp4o6_port = 545, // dhcp4o6_port - S_control_socket = 546, // control_socket - S_547_108 = 547, // $@108 - S_control_socket_params = 548, // control_socket_params - S_control_socket_param = 549, // control_socket_param - S_socket_type = 550, // socket_type - S_551_109 = 551, // $@109 - S_socket_name = 552, // socket_name - S_553_110 = 553, // $@110 - S_dhcp_queue_control = 554, // dhcp_queue_control - S_555_111 = 555, // $@111 - S_queue_control_params = 556, // queue_control_params - S_queue_control_param = 557, // queue_control_param - S_enable_queue = 558, // enable_queue - S_queue_type = 559, // queue_type - S_560_112 = 560, // $@112 - S_capacity = 561, // capacity - S_arbitrary_map_entry = 562, // arbitrary_map_entry - S_563_113 = 563, // $@113 - S_dhcp_ddns = 564, // dhcp_ddns - S_565_114 = 565, // $@114 - S_sub_dhcp_ddns = 566, // sub_dhcp_ddns - S_567_115 = 567, // $@115 - S_dhcp_ddns_params = 568, // dhcp_ddns_params - S_dhcp_ddns_param = 569, // dhcp_ddns_param - S_enable_updates = 570, // enable_updates - S_dep_qualifying_suffix = 571, // dep_qualifying_suffix - S_572_116 = 572, // $@116 - S_server_ip = 573, // server_ip - S_574_117 = 574, // $@117 - S_server_port = 575, // server_port - S_sender_ip = 576, // sender_ip - S_577_118 = 577, // $@118 - S_sender_port = 578, // sender_port - S_max_queue_size = 579, // max_queue_size - S_ncr_protocol = 580, // ncr_protocol - S_581_119 = 581, // $@119 - S_ncr_protocol_value = 582, // ncr_protocol_value - S_ncr_format = 583, // ncr_format - S_584_120 = 584, // $@120 - S_dep_override_no_update = 585, // dep_override_no_update - S_dep_override_client_update = 586, // dep_override_client_update - S_dep_replace_client_name = 587, // dep_replace_client_name - S_588_121 = 588, // $@121 - S_dep_generated_prefix = 589, // dep_generated_prefix - S_590_122 = 590, // $@122 - S_dep_hostname_char_set = 591, // dep_hostname_char_set - S_592_123 = 592, // $@123 - S_dep_hostname_char_replacement = 593, // dep_hostname_char_replacement - S_594_124 = 594, // $@124 - S_config_control = 595, // config_control - S_596_125 = 596, // $@125 - S_sub_config_control = 597, // sub_config_control - S_598_126 = 598, // $@126 - S_config_control_params = 599, // config_control_params - S_config_control_param = 600, // config_control_param - S_config_databases = 601, // config_databases - S_602_127 = 602, // $@127 - S_config_fetch_wait_time = 603, // config_fetch_wait_time - S_loggers = 604, // loggers - S_605_128 = 605, // $@128 - S_loggers_entries = 606, // loggers_entries - S_logger_entry = 607, // logger_entry - S_608_129 = 608, // $@129 - S_logger_params = 609, // logger_params - S_logger_param = 610, // logger_param - S_debuglevel = 611, // debuglevel - S_severity = 612, // severity - S_613_130 = 613, // $@130 - S_output_options_list = 614, // output_options_list - S_615_131 = 615, // $@131 - S_output_options_list_content = 616, // output_options_list_content - S_output_entry = 617, // output_entry - S_618_132 = 618, // $@132 - S_output_params_list = 619, // output_params_list - S_output_params = 620, // output_params - S_output = 621, // output - S_622_133 = 622, // $@133 - S_flush = 623, // flush - S_maxsize = 624, // maxsize - S_maxver = 625, // maxver - S_pattern = 626, // pattern - S_627_134 = 627 // $@134 - }; - }; + /// Symbol type: an internal symbol number. + typedef int symbol_number_type; - /// (Internal) symbol kind. - typedef symbol_kind::symbol_kind_type symbol_kind_type; + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; - /// The number of tokens. - static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + /// Internal symbol number for tokens (subsumed by symbol_number_type). + typedef unsigned char token_number_type; /// A complete symbol. /// - /// Expects its Base type to provide access to the symbol kind - /// via kind (). + /// Expects its Base type to provide access to the symbol type + /// via type_get(). /// /// Provide access to semantic value and location. template <typename Base> @@ -1352,200 +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) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } -#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 - /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + basic_symbol (typename Base::kind_type t, const location_type& l); - /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_kind_type yykind = this->kind (); - basic_symbol<Base>& yysym = *this; - (void) yysym; - switch (yykind) - { - default: - break; - } - - // Value type destructor. -switch (yykind) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; + basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); - case symbol_kind::S_BOOLEAN: // "boolean" - value.template destroy< bool > (); - break; + basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); - case symbol_kind::S_FLOAT: // "floating point" - value.template destroy< double > (); - break; + basic_symbol (typename Base::kind_type t, const double v, const location_type& l); - case symbol_kind::S_INTEGER: // "integer" - value.template destroy< int64_t > (); - break; + basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); - case symbol_kind::S_STRING: // "constant string" - value.template destroy< std::string > (); - break; + basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); - default: - break; - } - Base::clear (); - } + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + const semantic_type& v, + const location_type& l); - /// The user-facing name of this symbol. - std::string name () const YY_NOEXCEPT - { - return Dhcp6Parser::symbol_name (this->kind ()); - } + /// Destroy the symbol. + ~basic_symbol (); - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + /// Destroy contents, and record that is empty. + 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); @@ -1557,145 +619,857 @@ switch (yykind) 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. - struct by_kind + struct by_type { /// Default constructor. - by_kind (); - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_kind (by_kind&& that); -#endif + by_type (); /// Copy constructor. - by_kind (const by_kind& that); + by_type (const by_type& other); - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; + /// The symbol type as needed by the constructor. + typedef token_type kind_type; /// Constructor from (external) token numbers. - by_kind (kind_type t); + by_type (kind_type t); /// Record that this symbol is empty. void clear (); - /// Steal the symbol kind from \a that. - void move (by_kind& that); + /// Steal the symbol type from \a that. + void move (by_type& that); /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + symbol_number_type type_get () const; - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + /// The token. + token_type token () const; - /// The symbol kind. - /// \a S_YYEMPTY when empty. - symbol_kind_type kind_; + /// The symbol type. + /// \a empty_symbol when empty. + /// An int, not token_number_type, to be able to store empty_symbol. + int type; }; - /// Backward compatibility for a private implementation detail (Bison 3.6). - typedef by_kind by_type; - /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol<by_kind> - { - /// Superclass. - typedef basic_symbol<by_kind> super_type; + typedef basic_symbol<by_type> 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_CACHE_THRESHOLD (const location_type& l); + + static inline + symbol_type + make_CACHE_MAX_AGE (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_DDNS_UPDATE_ON_RENEW (const location_type& l); + + static inline + symbol_type + make_DDNS_USE_CONFLICT_RESOLUTION (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_IP_RESERVATIONS_UNIQUE (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_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_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_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_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_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_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_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_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_IP_RESERVATIONS_UNIQUE || 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_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_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_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_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_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_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_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_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_IP_RESERVATIONS_UNIQUE || 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_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_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 (); -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - Dhcp6Parser (const Dhcp6Parser&) = delete; - /// Non copyable. - Dhcp6Parser& operator= (const Dhcp6Parser&) = delete; -#endif - - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); - /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -1722,3084 +1496,24 @@ switch (yykind) /// Report a syntax error. void error (const syntax_error& err); - /// The user-facing name of the symbol whose (internal) number is - /// YYSYMBOL. No bounds checking. - static std::string symbol_name (symbol_kind_type yysymbol); - - // 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_PARSER6_error (location_type l) - { - return symbol_type (token::TOKEN_PARSER6_error, std::move (l)); - } -#else - static - symbol_type - make_PARSER6_error (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER6_error, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER6_UNDEF (location_type l) - { - return symbol_type (token::TOKEN_PARSER6_UNDEF, std::move (l)); - } -#else - static - symbol_type - make_PARSER6_UNDEF (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER6_UNDEF, 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_CACHE_THRESHOLD (location_type l) - { - return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l)); - } -#else - static - symbol_type - make_CACHE_THRESHOLD (const location_type& l) - { - return symbol_type (token::TOKEN_CACHE_THRESHOLD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CACHE_MAX_AGE (location_type l) - { - return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l)); - } -#else - static - symbol_type - make_CACHE_MAX_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_CACHE_MAX_AGE, 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_DDNS_UPDATE_ON_RENEW (location_type l) - { - return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l)); - } -#else - static - symbol_type - make_DDNS_UPDATE_ON_RENEW (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, 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_DHCP_MULTI_THREADING (location_type l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l)); - } -#else - static - symbol_type - make_DHCP_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_MULTI_THREADING (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_THREAD_POOL_SIZE (location_type l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l)); - } -#else - static - symbol_type - make_THREAD_POOL_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PACKET_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_PACKET_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, 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_IP_RESERVATIONS_UNIQUE (location_type l) - { - return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l)); - } -#else - static - symbol_type - make_IP_RESERVATIONS_UNIQUE (const location_type& l) - { - return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, 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_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_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 - - - class context - { - public: - context (const Dhcp6Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const { return yyla_; } - symbol_kind_type token () const { return yyla_.kind (); } - const location_type& location () const { return yyla_.location; } - - /// Put in YYARG at most YYARGN of the expected tokens, and return the - /// number of tokens stored in YYARG. If YYARG is null, return the - /// number of expected tokens (guaranteed to be less than YYNTOKENS). - int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; - - private: - const Dhcp6Parser& yyparser_; - const symbol_type& yyla_; - }; - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. + /// This class is not copyable. Dhcp6Parser (const Dhcp6Parser&); - /// Non copyable. Dhcp6Parser& operator= (const Dhcp6Parser&); -#endif - - /// Stored state numbers (used for stacks). - typedef short state_type; - - /// The arguments of the error message. - int yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const; + /// State numbers. + typedef int state_type; /// Generate an error message. - /// \param yyctx the context in which the error occurred. - virtual std::string yysyntax_error_ (const context& yyctx) const; + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + /// 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 @@ -4809,69 +1523,65 @@ switch (yykind) /// \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 kind \a t to a symbol kind. - /// In theory \a t should be a token_kind_type, but character literals - /// are valid, yet not members of the token_type enum. - static symbol_kind_type yytranslate_ (int t); - - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *yystr); + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); - /// For a symbol, its name in clear. - static const char* const yytname_[]; + // Tables. + // 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 unsigned short int yydefact_[]; - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + // YYPGOTO[NTERM-NUM]. + static const short int yypgoto_[]; - // 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_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short int yydefgoto_[]; - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + // 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_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + static const short int yycheck_[]; - // 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_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short int yystos_[]; - static const short yycheck_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short int yyr1_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const short yystos_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const short yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const signed char yyr2_[]; + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + /// 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) const; + virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. - virtual void yy_stack_print_ () const; + virtual void yystack_print_ (); - /// Debugging level. + // Debugging. int yydebug_; - /// Debug stream. std::ostream* yycdebug_; - /// \brief Display a symbol kind, value and location. + /// \brief Display a symbol type, value and location. /// \param yyo The output stream. /// \param yysym The symbol. template <typename Base> @@ -4890,30 +1600,29 @@ switch (yykind) struct by_state { /// Default constructor. - by_state () YY_NOEXCEPT; + by_state (); - /// The symbol kind as needed by the constructor. + /// 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 kind from \a that. + /// Steal the symbol type from \a that. void move (by_state& that); - /// The symbol kind (corresponding to \a state). - /// \a symbol_kind::S_YYEMPTY when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + 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. @@ -4927,139 +1636,12 @@ switch (yykind) typedef basic_symbol<by_state> 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 <typename T, typename S = std::vector<T> > - class stack - { - public: - // Hide our reversed order. - typedef typename S::iterator iterator; - typedef typename S::const_iterator const_iterator; - typedef typename S::size_type size_type; - typedef typename std::ptrdiff_t index_type; - - stack (size_type n = 200) - : seq_ (n) - {} - -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - stack (const stack&) = delete; - /// Non copyable. - stack& operator= (const stack&) = delete; -#endif - - /// 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 ()); - } - - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.begin (); - } - - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.end (); - } - - /// 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: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - stack (const stack&); - /// Non copyable. - stack& operator= (const stack&); -#endif - /// The wrapped container. - S seq_; - }; - - /// Stack type. typedef stack<stack_symbol_type> stack_type; @@ -5069,46 +1651,48 @@ switch (yykind) /// 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); + /// Pop \a n symbols the three stacks. + void yypop_ (unsigned int n = 1); /// Constants. enum { - yylast_ = 1231, ///< Last index in yytable_. - yynnts_ = 426, ///< Number of nonterminal symbols. - yyfinal_ = 30 ///< Termination state number. + yyeof_ = 0, + yylast_ = 1240, ///< Last index in yytable_. + yynnts_ = 427, ///< Number of nonterminal symbols. + yyfinal_ = 30, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 203 ///< Number of tokens. }; // User arguments. isc::dhcp::Parser6Context& ctx; - }; + // Symbol number corresponding to token number t. inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::yytranslate_ (int t) + Dhcp6Parser::token_number_type + Dhcp6Parser::yytranslate_ (token_type t) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. static - const unsigned char + 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, @@ -5153,52 +1737,65 @@ switch (yykind) 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, 199, 200, 201 + 195, 196, 197, 198, 199, 200, 201, 202 }; - // Last valid token kind. - const int code_max = 456; + const unsigned int user_token_number_max_ = 457; + const token_number_type undef_token_ = 2; - if (t <= 0) - return symbol_kind::S_YYEOF; - else if (t <= code_max) - return YY_CAST (symbol_kind_type, translate_table[t]); + if (static_cast<int>(t) <= yyeof_) + return yyeof_; + else if (static_cast<unsigned int> (t) <= user_token_number_max_) + return translate_table[t]; else - return symbol_kind::S_YYUNDEF; + 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. template <typename Base> - Dhcp6Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that) - : Base (that) + inline + Dhcp6Parser::basic_symbol<Base>::basic_symbol () + : value () + {} + + template <typename Base> + inline + Dhcp6Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other) + : Base (other) , value () - , location (that.location) + , location (other.location) { - switch (this->kind ()) + switch (other.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.copy< ElementPtr > (YY_MOVE (that.value)); + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.copy< ElementPtr > (other.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); + case 202: // "boolean" + value.copy< bool > (other.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.copy< double > (YY_MOVE (that.value)); + case 201: // "floating point" + value.copy< double > (other.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); + case 200: // "integer" + value.copy< int64_t > (other.value); break; - case symbol_kind::S_STRING: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); + case 199: // "constant string" + value.copy< std::string > (other.value); break; default: @@ -5208,118 +1805,1483 @@ switch (yykind) } + template <typename Base> + inline + Dhcp6Parser::basic_symbol<Base>::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 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // 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 <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , value () + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} template <typename Base> - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + + template <typename Base> + inline + Dhcp6Parser::basic_symbol<Base>::~basic_symbol () { - return this->kind (); + clear (); } template <typename Base> + inline + void + Dhcp6Parser::basic_symbol<Base>::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol<Base>& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // 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 <typename Base> + inline bool - Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT + Dhcp6Parser::basic_symbol<Base>::empty () const { - return this->kind () == symbol_kind::S_YYEMPTY; + return Base::type_get () == empty_symbol; } template <typename Base> + inline void Dhcp6Parser::basic_symbol<Base>::move (basic_symbol& s) { - super_type::move (s); - switch (this->kind ()) + super_type::move(s); + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.move< ElementPtr > (s.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (YY_MOVE (s.value)); + case 202: // "boolean" + value.move< bool > (s.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (YY_MOVE (s.value)); + case 201: // "floating point" + value.move< double > (s.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); + case 200: // "integer" + value.move< int64_t > (s.value); break; - case symbol_kind::S_STRING: // "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_kind. + // by_type. inline - Dhcp6Parser::by_kind::by_kind () - : kind_ (symbol_kind::S_YYEMPTY) + Dhcp6Parser::by_type::by_type () + : type (empty_symbol) {} -#if 201103L <= YY_CPLUSPLUS inline - Dhcp6Parser::by_kind::by_kind (by_kind&& that) - : kind_ (that.kind_) - { - that.clear (); - } -#endif - - inline - Dhcp6Parser::by_kind::by_kind (const by_kind& that) - : kind_ (that.kind_) + Dhcp6Parser::by_type::by_type (const by_type& other) + : type (other.type) {} inline - Dhcp6Parser::by_kind::by_kind (token_kind_type t) - : kind_ (yytranslate_ (t)) + Dhcp6Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) {} inline void - Dhcp6Parser::by_kind::clear () + Dhcp6Parser::by_type::clear () { - kind_ = symbol_kind::S_YYEMPTY; + type = empty_symbol; } inline void - Dhcp6Parser::by_kind::move (by_kind& that) + Dhcp6Parser::by_type::move (by_type& that) { - kind_ = that.kind_; + type = that.type; that.clear (); } inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::kind () const YY_NOEXCEPT + int + Dhcp6Parser::by_type::type_get () const { - return kind_; + return type; } inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT + 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<token_type> (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_CACHE_THRESHOLD (const location_type& l) + { + return symbol_type (token::TOKEN_CACHE_THRESHOLD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CACHE_MAX_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_CACHE_MAX_AGE, 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_DDNS_UPDATE_ON_RENEW (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_USE_CONFLICT_RESOLUTION (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, 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 this->kind (); + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); } -#line 14 "dhcp6_parser.yy" + 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_IP_RESERVATIONS_UNIQUE (const location_type& l) + { + return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, 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_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_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 5323 "dhcp6_parser.h" +#line 3285 "dhcp6_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 367b27bc13..e0fe398404 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -111,6 +111,7 @@ using namespace std; DDNS_GENERATED_PREFIX "ddns-generated-prefix" DDNS_QUALIFYING_SUFFIX "ddns-qualifying-suffix" DDNS_UPDATE_ON_RENEW "ddns-update-on-renew" + DDNS_USE_CONFLICT_RESOLUTION "ddns-use-conflict-resolution" STORE_EXTENDED_INFO "store-extended-info" SUBNET6 "subnet6" OPTION_DEF "option-def" @@ -505,6 +506,7 @@ global_param: data_directory | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | statistic_default_sample_count | statistic_default_sample_age @@ -675,6 +677,12 @@ ddns_update_on_renew: DDNS_UPDATE_ON_RENEW COLON BOOLEAN { ctx.stack_.back()->set("ddns-update-on-renew", b); }; +ddns_use_conflict_resolution: DDNS_USE_CONFLICT_RESOLUTION COLON BOOLEAN { + ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(@1)); + ElementPtr b(new BoolElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("ddns-use-conflict-resolution", b); +}; + hostname_char_set: HOSTNAME_CHAR_SET { ctx.unique("hostname-char-set", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); @@ -1395,6 +1403,7 @@ subnet6_param: preferred_lifetime | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | unknown_map_entry ; @@ -1541,6 +1550,7 @@ shared_network_param: name | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | unknown_map_entry ; diff --git a/src/bin/dhcp6/json_config_parser.cc b/src/bin/dhcp6/json_config_parser.cc index 1632aaddc6..227fb54c16 100644 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@ -776,6 +776,7 @@ configureDhcp6Server(Dhcpv6Srv& server, isc::data::ConstElementPtr config_set, (config_pair.first == "ddns-generated-prefix") || (config_pair.first == "ddns-qualifying-suffix") || (config_pair.first == "ddns-update-on-renew") || + (config_pair.first == "ddns-use-conflict-resolution") || (config_pair.first == "store-extended-info") || (config_pair.first == "statistic-default-sample-count") || (config_pair.first == "statistic-default-sample-age") || diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index a24ac29e54..239704683c 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,9 +1,8 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. +// 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,164 +38,44 @@ #ifndef YY_PARSER6_LOCATION_HH_INCLUDED # define YY_PARSER6_LOCATION_HH_INCLUDED -# include <iostream> -# include <string> +# 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 file name. - typedef const std::string filename_type; - /// Type for line and column numbers. - typedef int counter_type; - - /// Construct a position. - explicit position (filename_type* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (filename_type* 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. - filename_type* 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; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template <typename YYChar> - std::basic_ostream<YYChar>& - operator<< (std::basic_ostream<YYChar>& 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 file name. - typedef position::filename_type filename_type; - /// 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 (filename_type* f, - counter_type l = 1, - counter_type c = 1) + explicit location (std::string* f, + unsigned int l = 1u, + unsigned int c = 1u) : begin (f, l, c) , end (f, l, c) - {} + { + } /// Initialization. - void initialize (filename_type* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) + void initialize (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) { begin.initialize (f, l, c); end = begin; @@ -212,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); } @@ -233,49 +112,57 @@ 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; } + /// Compare two location objects. + inline bool + operator== (const location& loc1, const location& loc2) + { + return loc1.begin == loc2.begin && loc1.end == loc2.end; + } + + /// Compare two location objects. + inline bool + operator!= (const location& loc1, const location& loc2) + { + return !(loc1 == loc2); + } + /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -283,11 +170,10 @@ namespace isc { namespace dhcp { ** Avoid duplicate information. */ template <typename YYChar> - std::basic_ostream<YYChar>& + inline std::basic_ostream<YYChar>& operator<< (std::basic_ostream<YYChar>& 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 @@ -300,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 305 "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 48ecfcbf2b..2ee80e6d0a 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,12 +1,180 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. - -// 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. - -#include "location.hh" +// A Bison parser, made by GNU Bison 3.0.4. + +// Positions 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 <http://www.gnu.org/licenses/>. + +// 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 <algorithm> // std::max +# include <iostream> +# include <string> + +# 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<unsigned int>(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 <typename YYChar> + inline std::basic_ostream<YYChar>& + operator<< (std::basic_ostream<YYChar>& 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 1bd3435eff..db2863a06e 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,9 +1,157 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. - -// 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. +// A Bison parser, made by GNU Bison 3.0.4. + +// 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 <http://www.gnu.org/licenses/>. + +// 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 <vector> + +#line 14 "dhcp6_parser.yy" // stack.hh:132 +namespace isc { namespace dhcp { +#line 46 "stack.hh" // stack.hh:132 + template <class T, class S = std::vector<T> > + 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 T, class S = stack<T> > + 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/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index 327812c8a0..a8eb129169 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -20,6 +20,7 @@ #include <dhcp6/json_config_parser.h> #include <dhcp6/tests/dhcp6_test_utils.h> #include <dhcp6/tests/get_config_unittest.h> +#include <testutils/gtest_utils.h> #include <boost/algorithm/string.hpp> #include <gtest/gtest.h> @@ -1997,6 +1998,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2078,6 +2080,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2193,6 +2196,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2375,6 +2379,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2557,6 +2562,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2739,6 +2745,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2854,6 +2861,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2962,6 +2970,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3070,6 +3079,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3210,6 +3220,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3317,6 +3328,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3426,6 +3438,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3537,6 +3550,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3663,6 +3677,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3772,6 +3787,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3861,6 +3877,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3950,6 +3967,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4048,6 +4066,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4137,6 +4156,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4226,6 +4246,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4350,6 +4371,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4474,6 +4496,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4608,6 +4631,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4725,6 +4749,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4885,6 +4910,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5035,6 +5061,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5195,6 +5222,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5317,6 +5345,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5443,6 +5472,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5524,6 +5554,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5605,6 +5636,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5712,6 +5744,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5819,6 +5852,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6004,6 +6038,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6126,6 +6161,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6256,6 +6292,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6363,6 +6400,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"when-present\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6470,6 +6508,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"always\",\n" " \"ddns-send-updates\": false,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6577,6 +6616,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6809,6 +6849,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6939,6 +6980,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7020,6 +7062,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7101,6 +7144,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7312,6 +7356,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7445,6 +7490,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7526,6 +7572,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7605,6 +7652,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7684,6 +7732,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 12345,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7763,6 +7812,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7856,6 +7906,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7963,6 +8014,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8070,6 +8122,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8178,6 +8231,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8291,6 +8345,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8404,6 +8459,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8513,6 +8569,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8623,6 +8680,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8738,6 +8796,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8862,6 +8921,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9060,6 +9120,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9259,6 +9320,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9340,6 +9402,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9419,6 +9482,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9719,9 +9783,9 @@ TEST_P(Dhcp6GetConfigTest, run) { // unparse it ConstSrvConfigPtr extracted = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed; - ASSERT_NO_THROW(unparsed = extracted->toElement()); + ASSERT_NO_THROW_LOG(unparsed = extracted->toElement()); ConstElementPtr dhcp; - ASSERT_NO_THROW(dhcp = unparsed->get("Dhcp6")); + ASSERT_NO_THROW_LOG(dhcp = unparsed->get("Dhcp6")); ASSERT_TRUE(dhcp); // dump if wanted else check @@ -9731,16 +9795,16 @@ TEST_P(Dhcp6GetConfigTest, run) { std::cerr << ",\n"; } std::cerr << " // CONFIGURATION " << config_counter; - ASSERT_NO_THROW(expected = prettyPrint(dhcp)); - ASSERT_NO_THROW(outputFormatted(dhcp->str())); + ASSERT_NO_THROW_LOG(expected = prettyPrint(dhcp)); + ASSERT_NO_THROW_LOG(outputFormatted(dhcp->str())); } else { expected = UNPARSED_CONFIGS[config_counter]; // get the expected config using the dhcpv6 syntax parser ElementPtr jsond; - ASSERT_NO_THROW(jsond = parseDHCP6(expected, true)); + ASSERT_NO_THROW_LOG(jsond = parseDHCP6(expected, true)); // get the expected config using the generic JSON syntax parser ElementPtr jsonj; - ASSERT_NO_THROW(jsonj = parseJSON(expected)); + ASSERT_NO_THROW_LOG(jsonj = parseJSON(expected)); // the generic JSON parser does not handle comments EXPECT_TRUE(isEquivalent(jsond, moveComments(jsonj))); // check that unparsed and expected values match @@ -9761,7 +9825,7 @@ TEST_P(Dhcp6GetConfigTest, run) { // is it a fixed point? ConstSrvConfigPtr extracted2 = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed2; - ASSERT_NO_THROW(unparsed2 = extracted2->toElement()); + ASSERT_NO_THROW_LOG(unparsed2 = extracted2->toElement()); ASSERT_TRUE(unparsed2); EXPECT_TRUE(isEquivalent(unparsed, unparsed2)); } diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc.skel b/src/bin/dhcp6/tests/get_config_unittest.cc.skel index 5c227dbc53..0945e09fa6 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc.skel +++ b/src/bin/dhcp6/tests/get_config_unittest.cc.skel @@ -20,6 +20,7 @@ #include <dhcp6/json_config_parser.h> #include <dhcp6/tests/dhcp6_test_utils.h> #include <dhcp6/tests/get_config_unittest.h> +#include <testutils/gtest_utils.h> #include <boost/algorithm/string.hpp> #include <gtest/gtest.h> @@ -306,9 +307,9 @@ TEST_P(Dhcp6GetConfigTest, run) { // unparse it ConstSrvConfigPtr extracted = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed; - ASSERT_NO_THROW(unparsed = extracted->toElement()); + ASSERT_NO_THROW_LOG(unparsed = extracted->toElement()); ConstElementPtr dhcp; - ASSERT_NO_THROW(dhcp = unparsed->get("Dhcp6")); + ASSERT_NO_THROW_LOG(dhcp = unparsed->get("Dhcp6")); ASSERT_TRUE(dhcp); // dump if wanted else check @@ -318,16 +319,16 @@ TEST_P(Dhcp6GetConfigTest, run) { std::cerr << ",\n"; } std::cerr << " // CONFIGURATION " << config_counter; - ASSERT_NO_THROW(expected = prettyPrint(dhcp)); - ASSERT_NO_THROW(outputFormatted(dhcp->str())); + ASSERT_NO_THROW_LOG(expected = prettyPrint(dhcp)); + ASSERT_NO_THROW_LOG(outputFormatted(dhcp->str())); } else { expected = UNPARSED_CONFIGS[config_counter]; // get the expected config using the dhcpv6 syntax parser ElementPtr jsond; - ASSERT_NO_THROW(jsond = parseDHCP6(expected, true)); + ASSERT_NO_THROW_LOG(jsond = parseDHCP6(expected, true)); // get the expected config using the generic JSON syntax parser ElementPtr jsonj; - ASSERT_NO_THROW(jsonj = parseJSON(expected)); + ASSERT_NO_THROW_LOG(jsonj = parseJSON(expected)); // the generic JSON parser does not handle comments EXPECT_TRUE(isEquivalent(jsond, moveComments(jsonj))); // check that unparsed and expected values match @@ -348,7 +349,7 @@ TEST_P(Dhcp6GetConfigTest, run) { // is it a fixed point? ConstSrvConfigPtr extracted2 = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed2; - ASSERT_NO_THROW(unparsed2 = extracted2->toElement()); + ASSERT_NO_THROW_LOG(unparsed2 = extracted2->toElement()); ASSERT_TRUE(unparsed2); EXPECT_TRUE(isEquivalent(unparsed, unparsed2)); } |