From: Thomas Markwalder Date: Thu, 8 Aug 2019 17:34:05 +0000 (-0400) Subject: [#665,!460] Implemented support in kea-dhcp6 X-Git-Tag: Kea-1.6.0~41^2~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=986c23c0296dade3a99353f84c28919b566f5a0d;p=thirdparty%2Fkea.git [#665,!460] Implemented support in kea-dhcp6 doc/examples/kea6/advanced.json doc/examples/kea6/all-keys-current.json src/bin/dhcp6/dhcp6_lexer.ll src/bin/dhcp6/dhcp6_parser.yy src/bin/dhcp6/dhcp6_lexer.cc src/bin/dhcp6/dhcp6_parser.cc src/bin/dhcp6/dhcp6_parser.h src/bin/dhcp6/location.hh src/bin/dhcp6/position.hh src/bin/dhcp6/stack.hh --- diff --git a/doc/examples/kea6/advanced.json b/doc/examples/kea6/advanced.json index b1746bc195..1830f32d62 100644 --- a/doc/examples/kea6/advanced.json +++ b/doc/examples/kea6/advanced.json @@ -174,7 +174,9 @@ // kept. "flush": true, "maxsize": 204800, - "maxver": 4 + "maxver": 4, + // We use pattern to specify custom log message layout + "pattern": "%d{%y.%m.%d %H:%M:%S.%q} %-5p [%c/%i] %m\n" } ], "debuglevel": 0, diff --git a/doc/examples/kea6/all-keys-current.json b/doc/examples/kea6/all-keys-current.json index 9e38763ab1..acadb2a3e0 100644 --- a/doc/examples/kea6/all-keys-current.json +++ b/doc/examples/kea6/all-keys-current.json @@ -837,7 +837,10 @@ "maxver": 1, // Specifies logging destination. - "output": "stdout" + "output": "stdout", + + // Specifies log entry content + "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p [%c/%i] %m\n" } ], diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index d58e3cd43e..d766259e7c 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp6_lexer.cc" +#line 2 "dhcp6_lexer.cc" -#line 3 "dhcp6_lexer.cc" +#line 4 "dhcp6_lexer.cc" #define YY_INT_ALIGNED short int @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 190 -#define YY_END_OF_BUFFER 191 +#define YY_NUM_RULES 191 +#define YY_END_OF_BUFFER 192 /* 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[1615] = +static const flex_int16_t yy_accept[1621] = { 0, - 183, 183, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 189, 10, 11, 189, 1, 183, 180, 183, 183, - 189, 182, 181, 189, 189, 189, 189, 189, 176, 177, - 189, 189, 189, 178, 179, 5, 5, 5, 189, 189, - 189, 10, 11, 0, 0, 172, 0, 0, 0, 0, + 184, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 192, 190, 10, 11, 190, 1, 184, 181, 184, 184, + 190, 183, 182, 190, 190, 190, 190, 190, 177, 178, + 190, 190, 190, 179, 180, 5, 5, 5, 190, 190, + 190, 10, 11, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 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, 183, - 183, 0, 182, 183, 3, 2, 6, 0, 183, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 184, + 184, 0, 183, 184, 3, 2, 6, 0, 184, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, + 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,9 +722,9 @@ static const flex_int16_t yy_accept[1615] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, - 0, 0, 0, 0, 150, 0, 0, 151, 0, 0, + 0, 0, 0, 0, 151, 0, 0, 152, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, @@ -733,153 +733,153 @@ static const flex_int16_t yy_accept[1615] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 186, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, - 0, 185, 184, 0, 0, 0, 0, 0, 0, 0, - 149, 0, 0, 28, 0, 27, 0, 0, 109, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 187, 0, 186, 185, 0, 0, 0, 0, 0, 0, + 0, 150, 0, 0, 28, 0, 27, 0, 0, 109, 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, - 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 184, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 0, 0, 31, 0, 0, - 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, - 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, - 134, 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, 188, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 31, + 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, + 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, + 0, 0, 135, 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, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 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, 129, 154, 51, 0, 56, 0, 0, - 0, 0, 0, 0, 169, 37, 0, 34, 0, 33, - 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 130, 155, 51, 0, + 56, 0, 0, 0, 0, 0, 0, 170, 37, 0, + 34, 0, 33, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, - 0, 0, 0, 0, 0, 0, 153, 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, 89, + 121, 0, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 35, 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, 89, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, + 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, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 108, 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, 120, 0, - 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, - 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 117, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, + 0, 0, 120, 0, 0, 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, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, + 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 137, 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, 147, 118, 0, 0, - 0, 0, 0, 0, 122, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 148, 118, 0, 0, 0, 0, 0, 0, 122, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 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, 82, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, - - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 57, 90, 0, - 0, 0, 133, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, + 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 57, 90, 0, 0, 0, 134, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 148, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 149, 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, 140, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 136, 153, + + 0, 40, 0, 145, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, + 84, 0, 0, 0, 0, 147, 54, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 139, 0, 124, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 0, 0, 115, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 88, + 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 135, 152, 0, 40, 0, 144, 0, 0, + 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 85, 107, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, + 0, 0, 17, 0, 15, 0, 167, 166, 0, 69, + 0, 0, 0, 0, 0, 30, 0, 129, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 84, 0, 0, 0, 0, 146, - 54, 0, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, - 0, 0, 0, 115, 116, 0, 0, 0, 0, 0, - 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 141, + 0, 101, 0, 133, 43, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 103, 79, 0, 0, 141, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 97, 0, + + 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 95, 0, 0, 156, 0, 0, 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, 85, 107, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, - 0, 0, 0, 0, 0, 0, 17, 0, 15, 0, - 166, 165, 0, 69, 0, 0, 0, 0, 0, 30, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 101, 0, 132, 43, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 19, - 0, 0, 0, 0, 0, 0, 103, 79, 0, 0, - 140, 0, 0, 0, 0, 0, 131, 0, 0, 0, - 0, 0, 97, 0, 171, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 95, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 68, 0, 0, 0, 0, 127, 47, 0, 0, + 0, 70, 165, 38, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 45, 0, 0, 44, + 0, 18, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 75, 0, 0, 0, 0, 62, + 0, 0, 93, 0, 0, 0, 0, 0, 146, 0, + 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 42, 0, 0, 68, 0, 0, 0, 0, - 126, 47, 0, 0, 0, 70, 164, 38, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 0, 0, 44, 0, 18, 0, 0, 0, 0, - 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - - 0, 0, 0, 62, 0, 0, 93, 0, 0, 0, - 0, 0, 145, 0, 0, 0, 46, 0, 0, 0, + 67, 0, 0, 0, 83, 0, 36, 0, 48, 0, + 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 0, 0, 131, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 0, 0, 0, 83, 0, - 36, 0, 48, 0, 0, 0, 0, 0, 0, 24, - 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, - 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, - 0, 0, 0, 0, 0, 160, 0, 77, 0, 76, - 0, 21, 72, 0, 0, 0, 0, 0, 65, 0, - 114, 0, 0, 94, 0, 0, 159, 0, 0, 0, - 71, 0, 0, 0, 66, 0, 23, 0, 0, 0, + 0, 25, 39, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, + 0, 161, 0, 77, 0, 76, 0, 21, 72, 0, + 0, 0, 0, 0, 65, 0, 114, 0, 0, 94, + 0, 0, 160, 0, 0, 0, 71, 0, 0, 0, + 66, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, - 0, 74, 73, 22, 0, 112, 127, 0, 0, 0, - 0, 0, 0, 157, 162, 80, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 74, 73, 22, + 0, 112, 128, 0, 0, 0, 0, 0, 0, 158, - 156, 0, 0, 26, 0, 0, 0, 0, 0, 113, - 0, 0, 158, 0 + 163, 80, 0, 0, 0, 0, 157, 0, 0, 26, + 0, 0, 0, 0, 0, 113, 0, 0, 159, 0 } ; static const YY_CHAR yy_ec[256] = @@ -926,390 +926,392 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1627] = +static const flex_int16_t yy_base[1633] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2016, 2017, 34, 2012, 145, 0, 207, 2017, 214, 221, - 13, 228, 2017, 1992, 118, 25, 2, 6, 2017, 2017, - 73, 11, 17, 2017, 2017, 2017, 104, 2000, 1953, 0, - 1990, 108, 2007, 24, 256, 2017, 67, 1949, 1955, 1975, + 2022, 2023, 34, 2018, 145, 0, 207, 2023, 214, 221, + 13, 228, 2023, 1998, 118, 25, 2, 6, 2023, 2023, + 73, 11, 17, 2023, 2023, 2023, 104, 2006, 1959, 0, + 1996, 108, 2013, 24, 256, 2023, 67, 1955, 1961, 1981, 84, 75, 189, 88, 226, 91, 89, 284, 196, 206, - 219, 191, 210, 197, 60, 242, 1956, 278, 287, 298, - 294, 313, 1939, 212, 318, 350, 328, 1958, 0, 379, - 400, 417, 424, 429, 2017, 0, 2017, 393, 407, 269, - 299, 301, 406, 418, 304, 2017, 1955, 1996, 2017, 293, - - 2017, 442, 312, 1942, 1952, 1993, 421, 10, 345, 1946, - 319, 338, 336, 369, 248, 1991, 0, 495, 413, 1933, - 1938, 1940, 332, 1936, 1925, 1926, 410, 1942, 1925, 1934, - 418, 340, 226, 1928, 1926, 405, 1915, 1973, 448, 1918, - 1971, 1911, 1934, 1931, 1931, 1925, 411, 1918, 1916, 1910, - 1915, 1909, 421, 1920, 1913, 1904, 1903, 1917, 408, 1955, - 1902, 413, 1914, 1917, 1901, 491, 1902, 423, 1914, 1911, - 1912, 1910, 1945, 1944, 434, 1890, 1895, 1891, 1883, 1900, - 1892, 0, 451, 460, 434, 460, 468, 476, 1891, 2017, - 0, 481, 1882, 1885, 2017, 464, 474, 2017, 1939, 1892, - - 504, 1937, 507, 1936, 497, 1935, 2017, 544, 1934, 517, - 1893, 1890, 1887, 1886, 1877, 514, 1928, 1922, 1886, 1865, - 1873, 1879, 1867, 1881, 1877, 1878, 1878, 1873, 1865, 1867, - 1851, 1855, 1868, 1870, 1867, 1859, 1849, 1852, 1866, 2017, - 1852, 1860, 1863, 1844, 1843, 1895, 1842, 1852, 1892, 519, - 1851, 1890, 1838, 1849, 1887, 524, 1891, 1826, 1841, 358, - 1831, 1847, 1828, 1830, 1826, 1832, 1823, 1822, 1835, 1828, - 1830, 1834, 1833, 1827, 220, 1834, 1829, 1821, 1811, 1826, - 1821, 1825, 482, 1823, 1809, 1815, 1822, 1810, 1807, 1806, - 486, 1801, 1815, 1814, 1817, 1799, 1807, 537, 2017, 2017, - - 539, 2017, 2017, 1794, 0, 506, 1796, 579, 548, 1852, - 2017, 1803, 545, 2017, 1850, 2017, 1844, 595, 2017, 536, - 1784, 1787, 1793, 1845, 1800, 1795, 1798, 1793, 80, 2017, - 1795, 593, 1793, 1790, 1791, 323, 1795, 1835, 1783, 1778, - 1775, 1771, 1773, 1824, 1781, 1770, 1786, 1820, 1766, 596, - 1779, 1779, 1762, 1763, 1776, 1763, 1773, 1768, 1775, 1770, - 1755, 563, 1764, 1767, 1762, 322, 1758, 1808, 566, 553, - 2017, 1802, 1752, 1751, 1744, 1746, 1750, 1739, 1746, 1751, - 575, 1798, 1751, 578, 1748, 1752, 1750, 1739, 1739, 1751, - 570, 1726, 1727, 1748, 581, 1730, 1727, 1741, 1744, 1739, - - 1725, 1737, 1736, 1735, 1734, 1733, 1732, 476, 1775, 1774, - 1773, 1715, 641, 1728, 2017, 2017, 1727, 0, 598, 1715, - 1768, 1767, 1723, 1765, 2017, 1711, 1763, 2017, 604, 652, - 617, 1762, 1710, 1701, 2017, 1706, 1712, 1715, 1698, 1713, - 1700, 1699, 2017, 1709, 1700, 1697, 1709, 552, 1694, 1696, - 2017, 1702, 1687, 1689, 1700, 1698, 1693, 643, 1700, 1688, - 1681, 1732, 2017, 1679, 1695, 1729, 1733, 1689, 1683, 1685, - 1686, 1688, 1722, 1673, 1668, 1667, 1669, 1665, 1661, 1676, - 1679, 1653, 1660, 1665, 1658, 1674, 1713, 2017, 1658, 1654, - 1710, 1661, 1655, 1662, 1647, 1657, 1660, 1649, 1648, 1643, - - 2017, 1700, 2017, 1642, 1641, 1634, 1651, 1690, 1635, 1640, - 1649, 1643, 1637, 1646, 645, 1683, 1645, 1628, 1628, 1623, - 1619, 1625, 1630, 1623, 1631, 1635, 1618, 1676, 1616, 1617, - 1616, 1628, 1617, 2017, 2017, 2017, 1617, 2017, 1627, 1663, - 1623, 0, 1666, 1614, 2017, 2017, 1611, 2017, 1617, 2017, - 604, 622, 676, 2017, 1622, 1656, 1601, 1654, 1599, 1598, - 1597, 1604, 1597, 1605, 1608, 1607, 1591, 1606, 1588, 1635, - 1602, 1640, 1584, 1586, 1598, 1598, 1597, 2017, 1582, 1579, - 1637, 1592, 1584, 1590, 1581, 1589, 2017, 1574, 1585, 1589, - 1571, 1585, 536, 1567, 1561, 1566, 1563, 1578, 1577, 1578, - - 1568, 1574, 1617, 1572, 1571, 1563, 2017, 1556, 1558, 2017, - 1566, 1605, 1604, 16, 1565, 1548, 1549, 1554, 1545, 2017, - 1559, 1545, 677, 1537, 1558, 1555, 1547, 1592, 1544, 1551, - 1589, 2017, 1535, 1533, 1547, 1531, 1545, 1548, 1582, 1581, - 1580, 1579, 1524, 1577, 1576, 2017, 597, 1538, 1537, 1534, - 1534, 1532, 1521, 1523, 2017, 2017, 1568, 1514, 1571, 621, - 621, 1512, 1510, 1526, 1567, 641, 1561, 1521, 1559, 1558, - 1510, 1504, 1499, 1554, 1514, 1504, 1512, 1550, 1511, 1493, - 1501, 1503, 1507, 1544, 1548, 1503, 1502, 2017, 1503, 1496, - 1485, 1498, 1501, 1496, 1491, 1496, 1493, 1492, 1488, 1494, - - 1489, 1532, 1531, 1473, 1484, 1468, 634, 1479, 1526, 2017, - 1525, 1479, 1475, 1470, 1462, 1515, 1476, 1463, 2017, 1463, - 1472, 1471, 1471, 1455, 1512, 77, 245, 2017, 348, 430, - 460, 456, 534, 530, 575, 639, 611, 596, 606, 619, - 663, 673, 682, 630, 648, 643, 657, 652, 637, 649, - 650, 2017, 704, 661, 662, 653, 666, 669, 660, 666, - 675, 716, 2017, 712, 688, 675, 676, 671, 2017, 669, - 684, 681, 667, 674, 673, 671, 690, 687, 688, 678, - 691, 677, 676, 682, 738, 684, 700, 683, 737, 692, - 2017, 702, 702, 696, 707, 705, 750, 692, 694, 709, - - 710, 698, 757, 714, 700, 703, 2017, 2017, 719, 718, - 719, 724, 712, 723, 2017, 2017, 723, 725, 729, 716, - 714, 732, 719, 719, 770, 720, 778, 779, 2017, 724, - 738, 738, 783, 731, 733, 727, 787, 740, 730, 731, - 727, 737, 741, 752, 736, 754, 749, 751, 744, 746, - 747, 759, 749, 764, 805, 762, 767, 744, 2017, 756, - 757, 771, 761, 808, 756, 771, 771, 2017, 790, 798, - 767, 816, 782, 770, 765, 766, 778, 785, 774, 775, - 771, 789, 781, 776, 829, 835, 792, 783, 2017, 795, - 780, 796, 786, 799, 793, 841, 807, 791, 792, 2017, - - 808, 811, 794, 796, 854, 797, 2017, 814, 817, 797, - 816, 804, 857, 815, 811, 860, 809, 862, 809, 827, - 826, 812, 827, 819, 815, 833, 818, 2017, 2017, 826, - 873, 826, 2017, 834, 829, 882, 2017, 831, 836, 880, - 832, 833, 845, 839, 843, 841, 839, 850, 895, 839, - 844, 898, 899, 843, 855, 2017, 843, 851, 849, 846, - 847, 856, 868, 852, 866, 867, 869, 885, 890, 872, - 858, 860, 860, 880, 879, 870, 859, 876, 883, 926, - 868, 928, 875, 879, 2017, 926, 875, 893, 890, 930, - 879, 897, 898, 884, 892, 901, 883, 898, 905, 947, - - 948, 2017, 901, 950, 951, 902, 912, 914, 898, 900, - 900, 907, 916, 910, 905, 912, 964, 911, 910, 927, - 968, 918, 922, 920, 918, 973, 974, 924, 976, 972, - 930, 2017, 935, 928, 919, 938, 932, 927, 937, 934, - 939, 935, 947, 2017, 931, 933, 2017, 2017, 933, 993, - 932, 952, 953, 998, 999, 952, 937, 958, 940, 945, - 952, 985, 976, 1008, 965, 952, 954, 971, 966, 970, - 1015, 963, 967, 2017, 964, 2017, 978, 976, 979, 963, - 964, 1024, 977, 982, 969, 980, 973, 979, 975, 993, - 994, 996, 2017, 2017, 994, 2017, 996, 2017, 981, 982, - - 1001, 991, 1043, 1000, 997, 1041, 1005, 1000, 1005, 1002, - 2017, 1000, 992, 1053, 2017, 1054, 1001, 1008, 1052, 2017, - 2017, 1010, 2017, 1001, 1001, 1004, 1018, 1023, 1006, 1017, - 1066, 1023, 1024, 1025, 1065, 1021, 1072, 1025, 1074, 2017, - 1021, 1076, 1077, 2017, 2017, 1017, 1079, 1038, 1022, 1034, - 1024, 1054, 1085, 2017, 1042, 1087, 1034, 1049, 1085, 1037, - 2017, 1033, 1049, 1037, 1055, 1043, 1043, 1098, 1055, 2017, - 1057, 1056, 1058, 1051, 1060, 1061, 1058, 1048, 1051, 1051, - 1110, 1057, 1113, 1114, 1057, 1116, 2017, 1074, 1053, 1068, - 1061, 1076, 1079, 1079, 1125, 1078, 2017, 2017, 1075, 1085, - - 1070, 1087, 1073, 1134, 1135, 1079, 1089, 1138, 1095, 2017, - 1087, 1087, 1089, 1091, 1144, 1087, 2017, 1088, 2017, 1090, - 2017, 2017, 1104, 2017, 1098, 1150, 1099, 1152, 1132, 2017, - 1149, 2017, 1097, 1105, 1099, 1096, 1099, 1102, 1102, 1098, - 1104, 1164, 1112, 2017, 1108, 1167, 1120, 1111, 1126, 1126, - 1129, 1129, 1126, 1170, 1133, 2017, 1125, 2017, 2017, 1135, - 2017, 1175, 1137, 1138, 1135, 1179, 1141, 1181, 1143, 2017, - 1131, 1131, 1137, 1136, 1148, 1148, 2017, 2017, 1189, 1136, - 2017, 1153, 1138, 1138, 1140, 1146, 2017, 1201, 1143, 1153, - 1204, 1165, 2017, 1162, 2017, 1181, 1149, 1209, 1210, 1167, - - 1172, 1154, 1214, 1215, 1216, 1169, 2017, 1159, 1219, 2017, - 1157, 1216, 1179, 1175, 1219, 1167, 1172, 1170, 1229, 1185, - 1231, 1181, 1233, 1195, 1184, 1178, 1179, 1188, 1181, 1197, - 1242, 1184, 1201, 1186, 1201, 1185, 1243, 1244, 1245, 1192, - 1247, 1210, 2017, 1210, 1197, 2017, 1208, 1257, 1227, 1211, - 2017, 2017, 1202, 1213, 1262, 2017, 2017, 2017, 1209, 1207, - 2017, 1265, 1211, 1262, 1205, 1210, 1271, 1219, 1229, 1230, - 2017, 1275, 1228, 2017, 1229, 2017, 1220, 1235, 1223, 1233, - 1234, 1235, 1241, 2017, 1280, 1248, 1241, 1242, 1251, 1233, - 1239, 1241, 1295, 1254, 1253, 1245, 1299, 1248, 2017, 1301, - - 1250, 1303, 1245, 2017, 1252, 1252, 2017, 1256, 1251, 1250, - 1310, 1263, 2017, 1307, 1258, 1255, 2017, 1269, 1271, 1273, - 1318, 1271, 1268, 1276, 1270, 1323, 1264, 1266, 1274, 1264, - 1280, 1281, 1275, 1291, 2017, 1281, 1333, 1292, 2017, 1330, - 2017, 1292, 2017, 1332, 1333, 1288, 1296, 1287, 1294, 2017, - 1291, 1296, 1294, 1346, 1347, 1304, 1291, 2017, 1306, 1307, - 1308, 1309, 2017, 1299, 1311, 1312, 1357, 1299, 1307, 1301, - 1309, 1322, 2017, 1299, 1322, 1307, 1307, 1312, 1368, 1316, - 1328, 1319, 1328, 1330, 1334, 2017, 2017, 1316, 1376, 1319, - 1378, 1320, 1380, 1338, 1382, 1383, 2017, 1379, 1341, 1338, - - 1343, 1330, 1389, 1326, 1391, 1344, 1349, 2017, 1394, 1351, - 1352, 1397, 1354, 1357, 1352, 2017, 1401, 2017, 1354, 2017, - 1363, 2017, 2017, 1345, 1405, 1352, 1407, 1350, 2017, 1367, - 2017, 1358, 1354, 2017, 1354, 1356, 2017, 1361, 1371, 1364, - 2017, 1365, 1359, 1371, 2017, 1367, 2017, 1377, 1371, 1379, - 1376, 1367, 1421, 1368, 1376, 1385, 1386, 1387, 1380, 1375, - 1376, 1391, 1436, 1383, 1390, 1377, 1392, 1397, 1442, 1443, - 1444, 1401, 1446, 1447, 1390, 2017, 1406, 1397, 1411, 1407, - 1400, 2017, 2017, 2017, 1454, 2017, 2017, 1455, 1456, 1411, - 1410, 1411, 1401, 2017, 2017, 2017, 1461, 1403, 1419, 1464, - - 2017, 1460, 1409, 2017, 1408, 1410, 1421, 1470, 1419, 2017, - 1428, 1473, 2017, 2017, 1479, 1484, 1489, 1494, 1499, 1504, - 1509, 1512, 1486, 1491, 1493, 1506 + 219, 191, 210, 197, 60, 242, 1962, 278, 287, 298, + 294, 313, 1945, 212, 318, 350, 328, 1964, 0, 379, + 400, 417, 424, 429, 2023, 0, 2023, 393, 407, 269, + 299, 301, 406, 418, 304, 2023, 1961, 2002, 2023, 293, + + 2023, 442, 312, 1948, 1958, 1999, 421, 10, 345, 1952, + 319, 338, 336, 369, 248, 1997, 0, 495, 413, 1939, + 1944, 1946, 332, 1942, 1931, 1932, 410, 1948, 1931, 1940, + 418, 340, 226, 1934, 1932, 405, 1921, 1979, 448, 1924, + 1977, 1917, 1940, 1937, 1937, 1931, 411, 1924, 1922, 1916, + 1921, 1915, 421, 1926, 1919, 1910, 1909, 1923, 408, 1961, + 1908, 427, 1920, 1923, 1907, 491, 1908, 433, 1920, 1917, + 1918, 1916, 1951, 1950, 434, 1896, 1901, 1897, 1889, 1906, + 1898, 0, 440, 446, 434, 450, 468, 467, 1897, 2023, + 0, 483, 1888, 1891, 2023, 490, 465, 2023, 1945, 1898, + + 501, 1943, 506, 1942, 498, 1941, 2023, 544, 1940, 517, + 1899, 1896, 1893, 1892, 1883, 514, 1934, 1928, 1892, 1871, + 1879, 1885, 1873, 1887, 1883, 1884, 1884, 1879, 1871, 1873, + 1857, 1861, 1874, 1876, 1873, 1865, 1855, 1858, 1872, 2023, + 1858, 1866, 1869, 1850, 1849, 1901, 1848, 1858, 1898, 516, + 1857, 1896, 1844, 1855, 1893, 537, 1897, 1832, 1847, 358, + 1837, 1853, 1834, 1832, 1835, 1831, 1837, 1828, 1827, 1840, + 1833, 1835, 1839, 1838, 1832, 220, 1839, 1834, 1826, 1816, + 1831, 1826, 1830, 480, 1828, 1814, 1820, 1827, 1815, 1812, + 1811, 525, 1806, 1820, 1819, 1822, 1804, 1812, 539, 2023, + + 2023, 547, 2023, 2023, 1799, 0, 534, 1801, 559, 555, + 1857, 2023, 1808, 546, 2023, 1855, 2023, 1849, 596, 2023, + 545, 1789, 1792, 1798, 1850, 1805, 1800, 1803, 1798, 80, + 2023, 1800, 590, 1798, 1795, 1796, 323, 1800, 1840, 1788, + 1783, 1780, 1776, 1778, 1829, 1786, 1775, 1791, 1825, 1771, + 592, 1784, 1784, 1767, 1768, 1781, 1768, 1778, 1773, 1780, + 1775, 1760, 564, 1769, 1772, 1767, 322, 1763, 1813, 555, + 565, 2023, 1807, 1757, 1756, 1749, 1751, 1755, 1744, 1761, + 1750, 1755, 543, 1802, 1755, 534, 1752, 1756, 1754, 1743, + 1743, 1755, 570, 1730, 1731, 1752, 580, 1734, 1731, 1745, + + 1748, 1743, 1729, 1741, 1740, 1739, 1738, 1737, 1736, 476, + 1779, 1778, 1777, 1719, 626, 1732, 2023, 2023, 1731, 0, + 572, 1719, 1772, 1771, 1727, 1769, 2023, 1715, 1767, 2023, + 606, 654, 599, 1766, 1714, 1705, 2023, 1710, 1716, 1719, + 1702, 1717, 1704, 1703, 2023, 1713, 1704, 1701, 1713, 590, + 1698, 1700, 2023, 1706, 1691, 1693, 1704, 1702, 1697, 642, + 1704, 1692, 1685, 1736, 2023, 1683, 1699, 1733, 1737, 1693, + 1687, 1689, 1690, 1692, 1726, 1677, 1672, 1671, 1673, 1669, + 1665, 1680, 1683, 1657, 1664, 1669, 1662, 1678, 1717, 2023, + 1662, 1658, 1714, 1665, 1659, 1666, 1651, 1661, 1664, 1653, + + 1649, 1651, 1646, 2023, 1703, 2023, 1645, 1644, 1637, 1654, + 1693, 1638, 1643, 1652, 1646, 1640, 1649, 643, 1686, 1648, + 1631, 1631, 1626, 1622, 1628, 1633, 1626, 1634, 1638, 1621, + 1679, 1619, 1620, 1619, 1631, 1620, 2023, 2023, 2023, 1620, + 2023, 1630, 1666, 1626, 0, 1669, 1617, 2023, 2023, 1614, + 2023, 1620, 2023, 624, 620, 653, 2023, 1625, 1659, 1604, + 1657, 1602, 1601, 1600, 1607, 1600, 1608, 1611, 1610, 1594, + 1609, 1591, 1638, 1605, 1643, 1587, 1589, 1601, 1601, 1600, + 2023, 1585, 1582, 1640, 1595, 1587, 1593, 1584, 1592, 2023, + 1577, 1588, 1592, 1574, 1588, 467, 1570, 1564, 1569, 1566, + + 1581, 1580, 1581, 1571, 1577, 1620, 1575, 1574, 1566, 2023, + 1559, 1561, 2023, 1569, 1608, 1607, 16, 1568, 1551, 1552, + 1555, 1556, 1547, 2023, 1561, 1547, 679, 1539, 1560, 1557, + 1549, 1594, 1546, 1553, 1591, 2023, 1537, 1535, 1549, 1533, + 1547, 1550, 1584, 1583, 1582, 1581, 1526, 1579, 1578, 2023, + 644, 1540, 1539, 1536, 1536, 1534, 1523, 1525, 2023, 2023, + 1570, 1516, 1573, 621, 591, 1514, 1512, 1528, 1569, 625, + 1563, 1523, 1561, 1560, 1512, 1506, 1501, 1556, 1516, 1506, + 1514, 1552, 1513, 1495, 1503, 1505, 1509, 1546, 1550, 1505, + 1504, 2023, 1505, 1498, 1487, 1500, 1503, 1498, 1493, 1498, + + 1495, 1494, 1490, 1496, 1491, 1534, 1533, 1475, 1486, 1470, + 542, 1481, 1528, 2023, 1527, 1481, 1477, 1472, 1464, 1517, + 1478, 1465, 2023, 1465, 1474, 91, 246, 399, 418, 611, + 596, 611, 2023, 609, 611, 633, 628, 641, 621, 627, + 682, 646, 630, 630, 643, 687, 688, 695, 642, 660, + 655, 662, 657, 642, 654, 655, 2023, 709, 667, 669, + 660, 673, 675, 666, 672, 681, 722, 2023, 719, 695, + 682, 683, 677, 2023, 675, 690, 687, 673, 680, 679, + 677, 696, 693, 694, 684, 697, 683, 682, 688, 744, + 690, 706, 689, 743, 698, 2023, 708, 708, 701, 713, + + 711, 756, 698, 700, 715, 716, 704, 763, 720, 706, + 709, 2023, 2023, 725, 724, 725, 730, 718, 729, 2023, + 2023, 729, 731, 735, 722, 720, 738, 725, 725, 776, + 726, 784, 2023, 785, 2023, 730, 744, 744, 789, 737, + 739, 733, 793, 746, 736, 737, 733, 743, 747, 758, + 742, 760, 755, 757, 750, 752, 753, 765, 755, 770, + 811, 768, 773, 750, 2023, 762, 763, 777, 767, 814, + 762, 777, 777, 2023, 796, 804, 773, 822, 788, 776, + 771, 772, 784, 791, 780, 781, 777, 795, 787, 782, + 835, 841, 798, 789, 2023, 801, 786, 802, 792, 805, + + 799, 847, 813, 797, 798, 2023, 814, 817, 800, 802, + 860, 803, 2023, 820, 823, 803, 822, 810, 863, 821, + 817, 866, 815, 868, 815, 833, 832, 818, 833, 825, + 821, 839, 824, 2023, 2023, 832, 879, 832, 2023, 840, + 835, 888, 2023, 837, 842, 886, 838, 839, 851, 845, + 849, 847, 845, 856, 901, 845, 850, 904, 905, 849, + 861, 2023, 849, 857, 855, 852, 853, 862, 874, 858, + 872, 873, 875, 891, 896, 878, 864, 866, 866, 886, + 885, 876, 865, 882, 889, 932, 874, 934, 881, 885, + 2023, 932, 881, 899, 896, 936, 885, 903, 904, 890, + + 898, 907, 889, 904, 911, 953, 954, 2023, 907, 956, + 957, 908, 918, 920, 904, 906, 906, 913, 922, 916, + 911, 918, 970, 917, 916, 933, 974, 924, 928, 926, + 924, 979, 980, 930, 982, 978, 936, 2023, 941, 934, + 925, 944, 938, 933, 943, 940, 945, 941, 953, 2023, + 937, 939, 2023, 2023, 939, 999, 938, 958, 959, 1004, + 1005, 958, 943, 964, 946, 951, 958, 991, 982, 1014, + 971, 958, 960, 977, 972, 976, 1021, 969, 973, 2023, + 970, 2023, 984, 982, 985, 969, 970, 1030, 983, 988, + 975, 986, 979, 985, 981, 999, 1000, 1002, 2023, 2023, + + 1000, 2023, 1002, 2023, 987, 988, 1007, 997, 1049, 1006, + 1003, 1047, 1011, 1006, 1011, 1008, 2023, 1006, 998, 1059, + 2023, 1060, 1007, 1014, 1058, 2023, 2023, 1016, 2023, 1007, + 1007, 1010, 1024, 1029, 1012, 1023, 1072, 1029, 1030, 1031, + 1071, 1027, 1078, 1031, 1080, 2023, 1027, 1082, 1083, 2023, + 2023, 1023, 1085, 1044, 1028, 1040, 1030, 1060, 1091, 2023, + 1048, 1093, 1040, 1055, 1091, 1043, 2023, 1039, 1055, 1043, + 1061, 1049, 1049, 1104, 1061, 2023, 1063, 1062, 1064, 1057, + 1066, 1067, 1064, 1054, 1057, 1057, 1116, 1063, 1119, 1120, + 1063, 1122, 2023, 1080, 1059, 1074, 1067, 1082, 1085, 1085, + + 1131, 1084, 2023, 2023, 1081, 1091, 1076, 1093, 1079, 1140, + 1141, 1085, 1095, 1144, 1101, 2023, 1093, 1093, 1095, 1097, + 1150, 1093, 2023, 1094, 2023, 1096, 2023, 2023, 1110, 2023, + 1104, 1156, 1105, 1158, 1138, 2023, 1155, 2023, 1103, 1111, + 1105, 1102, 1105, 1108, 1108, 1104, 1110, 1170, 1118, 2023, + 1114, 1173, 1126, 1117, 1132, 1132, 1135, 1135, 1132, 1176, + 1139, 2023, 1131, 2023, 2023, 1141, 2023, 1181, 1143, 1144, + 1141, 1185, 1147, 1187, 1149, 2023, 1137, 1137, 1143, 1142, + 1154, 1154, 2023, 2023, 1195, 1142, 2023, 1159, 1144, 1144, + 1146, 1152, 2023, 1207, 1149, 1159, 1210, 1171, 2023, 1168, + + 2023, 1187, 1155, 1215, 1216, 1173, 1178, 1160, 1220, 1221, + 1222, 1175, 2023, 1165, 1225, 2023, 1163, 1222, 1185, 1181, + 1225, 1173, 1178, 1176, 1235, 1191, 1237, 1187, 1239, 1201, + 1190, 1184, 1185, 1194, 1187, 1203, 1248, 1190, 1207, 1192, + 1207, 1191, 1249, 1250, 1251, 1198, 1253, 1216, 2023, 1216, + 1203, 2023, 1214, 1263, 1233, 1217, 2023, 2023, 1208, 1219, + 1268, 2023, 2023, 2023, 1215, 1213, 2023, 1271, 1217, 1268, + 1211, 1216, 1277, 1225, 1235, 1236, 2023, 1281, 1234, 2023, + 1235, 2023, 1226, 1241, 1229, 1239, 1240, 1241, 1247, 2023, + 1286, 1254, 1247, 1248, 1257, 1239, 1245, 1247, 1301, 1260, + + 1259, 1251, 1305, 1254, 2023, 1307, 1256, 1309, 1251, 2023, + 1258, 1258, 2023, 1262, 1257, 1256, 1316, 1269, 2023, 1313, + 1264, 1261, 2023, 1275, 1277, 1279, 1324, 1277, 1274, 1282, + 1276, 1329, 1270, 1272, 1280, 1270, 1286, 1287, 1281, 1297, + 2023, 1287, 1339, 1298, 2023, 1336, 2023, 1298, 2023, 1338, + 1339, 1294, 1302, 1293, 1300, 2023, 1297, 1302, 1300, 1352, + 1353, 1310, 1297, 2023, 1312, 1313, 1314, 1315, 2023, 1305, + 1317, 1318, 1363, 1305, 1313, 1307, 1315, 1328, 2023, 1305, + 1328, 1313, 1313, 1318, 1374, 1322, 1334, 1325, 1334, 1336, + 1340, 2023, 2023, 1322, 1382, 1325, 1384, 1326, 1386, 1344, + + 1388, 1389, 2023, 1385, 1347, 1344, 1349, 1336, 1395, 1332, + 1397, 1350, 1355, 2023, 1400, 1357, 1358, 1403, 1360, 1363, + 1358, 2023, 1407, 2023, 1360, 2023, 1369, 2023, 2023, 1351, + 1411, 1358, 1413, 1356, 2023, 1373, 2023, 1364, 1360, 2023, + 1360, 1362, 2023, 1367, 1377, 1370, 2023, 1371, 1365, 1377, + 2023, 1373, 2023, 1383, 1377, 1385, 1382, 1373, 1427, 1374, + 1382, 1391, 1392, 1393, 1386, 1381, 1382, 1397, 1442, 1389, + 1396, 1383, 1398, 1403, 1448, 1449, 1450, 1407, 1452, 1453, + 1396, 2023, 1412, 1403, 1417, 1413, 1406, 2023, 2023, 2023, + 1460, 2023, 2023, 1461, 1462, 1417, 1416, 1417, 1407, 2023, + + 2023, 2023, 1467, 1409, 1425, 1470, 2023, 1466, 1415, 2023, + 1414, 1416, 1427, 1476, 1425, 2023, 1434, 1479, 2023, 2023, + 1485, 1490, 1495, 1500, 1505, 1510, 1515, 1518, 1492, 1497, + 1499, 1512 } ; -static const flex_int16_t yy_def[1627] = +static const flex_int16_t yy_def[1633] = { 0, - 1615, 1615, 1616, 1616, 1615, 1615, 1615, 1615, 1615, 1615, - 1614, 1614, 1614, 1614, 1614, 1617, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1618, - 1614, 1614, 1614, 1619, 15, 1614, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, + 1621, 1621, 1622, 1622, 1621, 1621, 1621, 1621, 1621, 1621, + 1620, 1620, 1620, 1620, 1620, 1623, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1624, + 1620, 1620, 1620, 1625, 15, 1620, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1626, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1617, 1614, - 1614, 1614, 1614, 1614, 1614, 1621, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1618, 1614, 1619, + 45, 45, 45, 45, 45, 45, 45, 45, 1623, 1620, + 1620, 1620, 1620, 1620, 1620, 1627, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1624, 1620, 1625, - 1614, 1614, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1622, 45, 1620, 45, 45, + 1620, 1620, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1628, 45, 1626, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1621, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1623, 45, 45, 45, 1614, 45, 45, 1614, 45, 45, + 45, 1627, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1629, 45, 45, 45, 1620, 45, 45, 1620, 45, 45, - 45, 45, 45, 45, 45, 1622, 1614, 1620, 45, 45, + 45, 45, 45, 45, 45, 1628, 1620, 1626, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 1614, 1614, + 45, 45, 45, 45, 45, 45, 45, 45, 1620, 1620, - 1614, 1614, 1614, 1614, 1624, 45, 45, 45, 45, 45, - 1614, 45, 45, 1614, 45, 1614, 45, 1620, 1614, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 1620, 1620, 1620, 1620, 1620, 1630, 45, 45, 45, 45, + 45, 1620, 45, 45, 1620, 45, 1620, 45, 1626, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1614, 1614, 1614, 1625, 45, 45, - 45, 45, 45, 45, 1614, 45, 45, 1614, 45, 1620, - 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, - 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, - 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1620, 1620, 1620, 1631, + 45, 45, 45, 45, 45, 45, 1620, 45, 45, 1620, + 45, 1626, 45, 45, 45, 45, 1620, 45, 45, 45, + 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1620, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1614, 1614, 1614, 45, 1614, 45, 45, - 1614, 1626, 45, 45, 1614, 1614, 45, 1614, 45, 1614, - 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1620, 1620, 1620, 45, + 1620, 45, 45, 1620, 1632, 45, 45, 1620, 1620, 45, + 1620, 45, 1620, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, - 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 1614, 45, 45, 1614, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 1620, 45, 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, - 45, 45, 45, 45, 1614, 1614, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, + 45, 45, 45, 45, 45, 45, 45, 45, 1620, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, - 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1614, 45, 45, 45, 45, 45, 1614, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, + 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1614, 1614, 45, 45, - 45, 45, 45, 45, 1614, 1614, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1620, 1620, 45, 45, 45, 45, 45, 45, 1620, + 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1620, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, - - 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, + 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, + 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1614, 1614, 45, - 45, 45, 1614, 45, 45, 45, 1614, 45, 45, 45, + 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, + 45, 45, 45, 1620, 1620, 45, 45, 45, 1620, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1614, 45, 45, 1614, 1614, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, + 45, 45, 1620, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, + 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1620, 1620, + + 45, 1620, 45, 1620, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, + 1620, 45, 45, 45, 45, 1620, 1620, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1614, 45, 1614, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 1620, + 1620, 45, 45, 45, 45, 45, 45, 45, 45, 1620, + 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1614, 1614, 45, 1614, 45, 1614, 45, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1620, 1620, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, + 45, 45, 1620, 45, 1620, 45, 1620, 1620, 45, 1620, + 45, 45, 45, 45, 45, 1620, 45, 1620, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1614, 45, 45, 45, 1614, 45, 45, 45, 45, 1614, - 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, - 45, 45, 45, 1614, 1614, 45, 45, 45, 45, 45, - 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, - 1614, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 1620, 45, 1620, 1620, 45, 1620, 45, 45, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, + 45, 45, 1620, 1620, 45, 45, 1620, 45, 45, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 1620, 45, + + 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1620, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1614, 1614, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, - 45, 45, 45, 45, 45, 45, 1614, 45, 1614, 45, - 1614, 1614, 45, 1614, 45, 45, 45, 45, 45, 1614, - 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1614, 45, 1614, 1614, 45, - 1614, 45, 45, 45, 45, 45, 45, 45, 45, 1614, - 45, 45, 45, 45, 45, 45, 1614, 1614, 45, 45, - 1614, 45, 45, 45, 45, 45, 1614, 45, 45, 45, - 45, 45, 1614, 45, 1614, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 1614, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1620, 45, + 45, 1620, 45, 45, 45, 45, 1620, 1620, 45, 45, + 45, 1620, 1620, 1620, 45, 45, 1620, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1620, 45, 45, 1620, + 45, 1620, 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 1620, 45, 45, 45, 45, 1620, + 45, 45, 1620, 45, 45, 45, 45, 45, 1620, 45, + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1614, 45, 45, 1614, 45, 45, 45, 45, - 1614, 1614, 45, 45, 45, 1614, 1614, 1614, 45, 45, - 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1614, 45, 45, 1614, 45, 1614, 45, 45, 45, 45, - 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, - - 45, 45, 45, 1614, 45, 45, 1614, 45, 45, 45, - 45, 45, 1614, 45, 45, 45, 1614, 45, 45, 45, + 1620, 45, 45, 45, 1620, 45, 1620, 45, 1620, 45, + 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, + 45, 45, 45, 1620, 45, 45, 45, 45, 1620, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1614, 45, 45, 45, 1614, 45, - 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 1614, - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, - 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1614, 1614, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, - 45, 45, 45, 45, 45, 1614, 45, 1614, 45, 1614, - 45, 1614, 1614, 45, 45, 45, 45, 45, 1614, 45, - 1614, 45, 45, 1614, 45, 45, 1614, 45, 45, 45, - 1614, 45, 45, 45, 1614, 45, 1614, 45, 45, 45, + 45, 1620, 1620, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, + 45, 1620, 45, 1620, 45, 1620, 45, 1620, 1620, 45, + 45, 45, 45, 45, 1620, 45, 1620, 45, 45, 1620, + 45, 45, 1620, 45, 45, 45, 1620, 45, 45, 45, + 1620, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, - 45, 1614, 1614, 1614, 45, 1614, 1614, 45, 45, 45, - 45, 45, 45, 1614, 1614, 1614, 45, 45, 45, 45, + 45, 1620, 45, 45, 45, 45, 45, 1620, 1620, 1620, + 45, 1620, 1620, 45, 45, 45, 45, 45, 45, 1620, - 1614, 45, 45, 1614, 45, 45, 45, 45, 45, 1614, - 45, 45, 1614, 0, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614 + 1620, 1620, 45, 45, 45, 45, 1620, 45, 45, 1620, + 45, 45, 45, 45, 45, 1620, 45, 45, 1620, 0, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620 } ; -static const flex_int16_t yy_nxt[2091] = +static const flex_int16_t yy_nxt[2097] = { 0, - 1614, 13, 14, 13, 1614, 15, 16, 1614, 17, 18, + 1620, 13, 14, 13, 1620, 15, 16, 1620, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 85, 719, 37, 14, 37, 86, 25, 26, 38, 101, - 1614, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 85, 723, 37, 14, 37, 86, 25, 26, 38, 101, + 1620, 27, 37, 14, 37, 42, 28, 42, 38, 91, 92, 29, 197, 30, 13, 14, 13, 90, 91, 25, 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, - 720, 13, 14, 13, 33, 40, 102, 91, 92, 197, + 724, 13, 14, 13, 33, 40, 102, 91, 92, 197, 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 90, 39, 103, 25, 26, 13, 14, 13, 27, 39, 42, 107, 42, 28, 42, 108, 42, 41, 29, 111, 30, 114, 115, 93, 136, - 41, 25, 31, 103, 137, 440, 88, 138, 88, 107, + 41, 25, 31, 103, 137, 442, 88, 138, 88, 107, 32, 89, 89, 89, 89, 89, 33, 111, 108, 114, - 830, 115, 441, 34, 35, 44, 44, 44, 45, 45, + 831, 115, 443, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 48, 49, 50, 51, 45, 52, 53, 54, 45, 45, 45, @@ -1323,119 +1325,119 @@ static const flex_int16_t yy_nxt[2091] = 82, 83, 83, 83, 83, 83, 134, 82, 110, 131, 112, 121, 119, 135, 82, 107, 82, 165, 120, 132, 113, 166, 122, 82, 126, 123, 133, 124, 127, 125, - 82, 128, 129, 112, 205, 231, 390, 82, 45, 391, + 82, 128, 129, 112, 205, 231, 392, 82, 45, 393, 45, 45, 45, 45, 130, 45, 45, 45, 113, 117, - 139, 232, 45, 45, 831, 45, 45, 205, 101, 183, + 139, 232, 45, 45, 832, 45, 45, 205, 101, 183, 140, 45, 141, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 111, 183, 45, 143, 144, 184, - 45, 145, 147, 448, 45, 102, 148, 146, 185, 449, + 45, 145, 147, 450, 45, 102, 148, 146, 185, 451, 149, 185, 45, 151, 154, 152, 45, 153, 45, 118, 198, 192, 155, 114, 156, 184, 150, 201, 159, 157, - 158, 160, 161, 167, 173, 174, 185, 168, 374, 188, + 158, 160, 161, 167, 173, 174, 185, 168, 375, 188, 169, 202, 162, 203, 112, 163, 114, 170, 171, 192, - 214, 199, 485, 172, 113, 201, 179, 229, 486, 215, + 214, 199, 487, 172, 113, 201, 179, 229, 488, 215, 216, 180, 84, 84, 84, 84, 84, 175, 202, 176, - 230, 203, 204, 177, 832, 82, 89, 89, 89, 89, - 89, 80, 113, 81, 81, 81, 81, 81, 375, 178, + 230, 203, 204, 177, 833, 82, 89, 89, 89, 89, + 89, 80, 113, 81, 81, 81, 81, 81, 376, 178, 89, 89, 89, 89, 89, 88, 82, 88, 82, 204, 89, 89, 89, 89, 89, 80, 183, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 100, 184, 82, 82, 196, 192, 240, 100, 82, 220, 221, 249, 201, - 300, 235, 186, 226, 236, 227, 222, 202, 237, 209, - 262, 263, 266, 82, 187, 267, 268, 196, 82, 250, - 210, 282, 228, 300, 100, 283, 298, 256, 100, 284, - 299, 314, 100, 833, 291, 298, 408, 241, 299, 309, - - 100, 272, 300, 306, 100, 310, 100, 191, 208, 208, - 208, 208, 208, 834, 298, 835, 299, 208, 208, 208, - 208, 208, 208, 301, 302, 303, 306, 309, 317, 362, - 313, 532, 310, 315, 533, 399, 273, 274, 275, 306, - 208, 208, 208, 208, 208, 208, 419, 276, 400, 277, - 313, 278, 279, 313, 280, 317, 315, 318, 318, 318, - 318, 318, 320, 415, 326, 415, 318, 318, 318, 318, - 318, 318, 327, 370, 424, 419, 419, 328, 329, 427, - 501, 836, 363, 699, 700, 364, 415, 427, 416, 318, - 318, 318, 318, 318, 318, 421, 422, 424, 443, 837, - - 568, 463, 752, 444, 423, 431, 464, 427, 430, 430, - 430, 430, 430, 569, 753, 491, 489, 430, 430, 430, - 430, 430, 430, 478, 479, 480, 490, 505, 513, 481, - 518, 506, 514, 543, 519, 551, 660, 552, 502, 838, - 430, 430, 430, 430, 430, 430, 538, 765, 578, 839, - 632, 539, 543, 579, 465, 633, 661, 764, 840, 466, - 841, 543, 551, 660, 552, 45, 45, 45, 45, 45, - 765, 842, 843, 844, 45, 45, 45, 45, 45, 45, - 553, 656, 728, 845, 661, 764, 662, 729, 770, 771, - 812, 772, 846, 813, 847, 848, 849, 45, 45, 45, - - 45, 45, 45, 850, 851, 852, 855, 856, 857, 859, - 860, 861, 853, 862, 858, 863, 854, 864, 865, 866, - 867, 868, 869, 870, 871, 872, 730, 873, 874, 875, + 301, 235, 186, 226, 236, 227, 222, 202, 237, 209, + 262, 263, 264, 82, 187, 299, 300, 196, 82, 250, + 210, 834, 228, 301, 100, 299, 267, 256, 100, 268, + 269, 283, 100, 301, 292, 284, 311, 241, 300, 285, + + 100, 273, 300, 299, 100, 307, 100, 191, 208, 208, + 208, 208, 208, 302, 703, 704, 304, 208, 208, 208, + 208, 208, 208, 311, 303, 310, 363, 314, 307, 318, + 315, 535, 316, 401, 536, 410, 274, 275, 276, 307, + 208, 208, 208, 208, 208, 208, 402, 277, 504, 278, + 314, 279, 280, 310, 281, 316, 318, 319, 319, 319, + 319, 319, 321, 314, 327, 417, 319, 319, 319, 319, + 319, 319, 328, 417, 421, 423, 424, 329, 330, 364, + 429, 426, 365, 508, 425, 421, 371, 509, 417, 319, + 319, 319, 319, 319, 319, 445, 418, 465, 817, 429, + + 446, 818, 466, 421, 426, 491, 505, 546, 429, 432, + 432, 432, 432, 432, 433, 492, 835, 770, 432, 432, + 432, 432, 432, 432, 480, 481, 482, 493, 516, 521, + 483, 541, 517, 522, 546, 546, 542, 554, 571, 555, + 770, 432, 432, 432, 432, 432, 432, 581, 636, 757, + 467, 572, 582, 637, 665, 468, 664, 769, 660, 836, + 837, 758, 556, 666, 554, 838, 555, 45, 45, 45, + 45, 45, 775, 776, 839, 777, 45, 45, 45, 45, + 45, 45, 665, 664, 733, 769, 840, 841, 842, 734, + 843, 844, 845, 846, 847, 848, 849, 850, 851, 45, + + 45, 45, 45, 45, 45, 852, 853, 854, 855, 857, + 858, 861, 862, 863, 865, 856, 866, 859, 867, 864, + 868, 860, 869, 870, 871, 872, 873, 874, 735, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, - 896, 870, 897, 898, 899, 900, 902, 903, 904, 905, - 901, 906, 907, 908, 909, 910, 911, 912, 913, 914, - 915, 916, 917, 918, 919, 920, 921, 922, 924, 925, - 926, 923, 927, 928, 929, 930, 931, 932, 933, 934, + 896, 897, 898, 899, 900, 901, 902, 903, 876, 904, + 905, 906, 908, 909, 910, 911, 907, 912, 913, 914, + 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, + 925, 926, 927, 928, 930, 931, 932, 929, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, - 945, 946, 947, 948, 949, 950, 951, 952, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 953, - 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, + 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, + 955, 956, 957, 958, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 969, 970, 959, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 969, 992, 993, - 968, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, - 1005, 1006, 1007, 1008, 1003, 1009, 1010, 1011, 1012, 1013, - 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, - 1024, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1025, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 996, 997, 975, 998, 999, 974, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 1008, 1011, 1012, 1013, 1014, + 1009, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1032, 1033, 1034, + 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1031, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1004, 1061, 1062, - 1064, 1063, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, + 1064, 1065, 1066, 1010, 1067, 1068, 1070, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1062, 1063, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1098, 1100, 1101, 1102, - 1097, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1068, 1069, 1096, 1097, 1098, 1099, 1100, + 1101, 1102, 1104, 1106, 1107, 1108, 1103, 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, 1137, 1138, 1139, 1140, 1141, - 1099, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1142, 1143, 1144, 1145, 1146, 1147, 1105, 1148, 1149, 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, 1152, 1175, 1176, 1177, 1178, 1179, - 1153, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1158, 1181, 1182, 1183, 1184, 1185, 1159, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, - 1209, 1210, 1211, 1212, 1213, 1214, 1216, 1217, 1218, 1219, - 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, - 1230, 1231, 1232, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, + 1219, 1220, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, + 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1229, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1266, 1267, 1268, 1215, 1269, - 1270, 1271, 1265, 1272, 1273, 1274, 1233, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1235, 1264, 1265, 1266, 1267, 1268, 1269, + 1270, 1272, 1273, 1274, 1221, 1275, 1276, 1277, 1271, 1278, + 1279, 1280, 1239, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1318, 1296, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, + 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1302, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, - 1367, 1368, 1369, 1370, 1371, 1373, 1374, 1375, 1376, 1349, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, + 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, + 1377, 1379, 1380, 1381, 1382, 1355, 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, 1409, 1410, 1411, 1412, 1408, 1413, 1414, 1415, 1416, - 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, - 1427, 1400, 1372, 1428, 1429, 1430, 1431, 1432, 1433, 1434, + 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1415, 1416, 1417, + 1418, 1414, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, + 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1406, 1378, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, @@ -1455,94 +1457,96 @@ static const flex_int16_t yy_nxt[2091] = 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, - 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 12, - 12, 12, 12, 12, 36, 36, 36, 36, 36, 79, - 305, 79, 79, 79, 98, 418, 98, 542, 98, 100, - - 100, 100, 100, 100, 116, 116, 116, 116, 116, 182, - 100, 182, 182, 182, 206, 206, 206, 829, 828, 827, - 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, - 816, 815, 814, 811, 810, 809, 808, 807, 806, 805, - 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, - 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, - 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, - 774, 773, 769, 768, 767, 766, 763, 762, 761, 760, - 759, 758, 757, 756, 755, 754, 751, 750, 749, 748, - 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, - - 737, 736, 735, 734, 733, 732, 731, 727, 726, 725, - 724, 723, 722, 721, 718, 717, 716, 715, 714, 713, - 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, - 702, 701, 698, 697, 696, 695, 694, 693, 692, 691, - 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, - 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, - 670, 669, 668, 667, 666, 665, 664, 663, 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, 631, 630, 629, 628, 627, 626, - - 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, - 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, - 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, - 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, - 585, 584, 583, 582, 581, 580, 577, 576, 575, 574, - 573, 572, 571, 570, 567, 566, 565, 564, 563, 562, - 561, 560, 559, 558, 557, 556, 555, 554, 550, 549, - 548, 547, 546, 545, 544, 541, 540, 537, 536, 535, - 534, 531, 530, 529, 528, 527, 526, 525, 524, 523, - 522, 521, 520, 517, 516, 515, 512, 511, 510, 509, - - 508, 507, 504, 503, 500, 499, 498, 497, 496, 495, - 494, 493, 492, 488, 487, 484, 483, 482, 477, 476, - 475, 474, 473, 472, 471, 470, 469, 468, 467, 462, - 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, - 451, 450, 447, 446, 445, 442, 439, 438, 437, 436, - 435, 434, 433, 432, 429, 428, 426, 425, 420, 417, - 414, 413, 412, 411, 410, 409, 407, 406, 405, 404, - 403, 402, 401, 398, 397, 396, 395, 394, 393, 392, - 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, - 379, 378, 377, 376, 373, 372, 371, 369, 368, 367, - - 366, 365, 361, 360, 359, 358, 357, 356, 355, 354, - 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, - 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, - 333, 332, 331, 330, 325, 324, 323, 322, 321, 319, - 207, 316, 314, 312, 311, 308, 307, 304, 297, 296, - 295, 294, 293, 292, 290, 289, 288, 287, 286, 285, - 281, 271, 270, 269, 265, 264, 261, 260, 259, 258, - 257, 255, 254, 253, 252, 251, 248, 247, 246, 245, - 244, 243, 242, 239, 238, 234, 233, 225, 224, 223, - 219, 218, 217, 213, 212, 211, 207, 200, 195, 194, - - 193, 190, 189, 181, 164, 142, 106, 105, 104, 43, - 99, 97, 96, 87, 43, 1614, 11, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614 + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, + 1615, 1616, 1617, 1618, 1619, 12, 12, 12, 12, 12, + 36, 36, 36, 36, 36, 79, 306, 79, 79, 79, + + 98, 420, 98, 545, 98, 100, 100, 100, 100, 100, + 116, 116, 116, 116, 116, 182, 100, 182, 182, 182, + 206, 206, 206, 830, 829, 828, 827, 826, 825, 824, + 823, 822, 821, 820, 819, 816, 815, 814, 813, 812, + 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, + 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, + 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, + 781, 780, 779, 778, 774, 773, 772, 771, 768, 767, + 766, 765, 764, 763, 762, 761, 760, 759, 756, 755, + 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, + + 744, 743, 742, 741, 740, 739, 738, 737, 736, 732, + 731, 730, 729, 728, 727, 726, 725, 722, 721, 720, + 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, + 709, 708, 707, 706, 705, 702, 701, 700, 699, 698, + 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, + 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, + 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, + 667, 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, 635, 634, 633, + + 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, + 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, + 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, + 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, + 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, + 580, 579, 578, 577, 576, 575, 574, 573, 570, 569, + 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, + 558, 557, 553, 552, 551, 550, 549, 548, 547, 544, + 543, 540, 539, 538, 537, 534, 533, 532, 531, 530, + 529, 528, 527, 526, 525, 524, 523, 520, 519, 518, + + 515, 514, 513, 512, 511, 510, 507, 506, 503, 502, + 501, 500, 499, 498, 497, 496, 495, 494, 490, 489, + 486, 485, 484, 479, 478, 477, 476, 475, 474, 473, + 472, 471, 470, 469, 464, 463, 462, 461, 460, 459, + 458, 457, 456, 455, 454, 453, 452, 449, 448, 447, + 444, 441, 440, 439, 438, 437, 436, 435, 434, 431, + 430, 428, 427, 422, 419, 416, 415, 414, 413, 412, + 411, 409, 408, 407, 406, 405, 404, 403, 400, 399, + 398, 397, 396, 395, 394, 391, 390, 389, 388, 387, + 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, + + 374, 373, 372, 370, 369, 368, 367, 366, 362, 361, + 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, + 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, + 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, + 326, 325, 324, 323, 322, 320, 207, 317, 315, 313, + 312, 309, 308, 305, 298, 297, 296, 295, 294, 293, + 291, 290, 289, 288, 287, 286, 282, 272, 271, 270, + 266, 265, 261, 260, 259, 258, 257, 255, 254, 253, + 252, 251, 248, 247, 246, 245, 244, 243, 242, 239, + 238, 234, 233, 225, 224, 223, 219, 218, 217, 213, + + 212, 211, 207, 200, 195, 194, 193, 190, 189, 181, + 164, 142, 106, 105, 104, 43, 99, 97, 96, 87, + 43, 1620, 11, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620 + } ; -static const flex_int16_t yy_chk[2091] = +static const flex_int16_t yy_chk[2097] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 614, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 617, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 108, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 614, 8, 8, 8, 1, 8, 44, 27, 28, 108, + 617, 8, 8, 8, 1, 8, 44, 27, 28, 108, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 47, 2, 2, 10, 10, 10, 2, 6, 37, 51, 37, 2, 42, 52, 42, 9, 2, 54, 2, 56, 57, 31, 65, - 10, 2, 2, 47, 65, 329, 25, 65, 25, 51, + 10, 2, 2, 47, 65, 330, 25, 65, 25, 51, 2, 25, 25, 25, 25, 25, 2, 54, 52, 56, - 726, 57, 329, 2, 2, 15, 15, 15, 15, 15, + 726, 57, 330, 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, @@ -1556,206 +1560,208 @@ static const flex_int16_t yy_chk[2091] = 19, 22, 22, 22, 22, 22, 64, 20, 53, 62, 55, 60, 59, 64, 22, 63, 17, 74, 59, 62, 55, 74, 60, 19, 61, 60, 63, 60, 61, 60, - 20, 61, 61, 55, 115, 133, 275, 22, 45, 275, + 20, 61, 61, 55, 115, 133, 276, 22, 45, 276, 45, 45, 45, 45, 61, 45, 45, 45, 55, 58, 66, 133, 45, 45, 727, 45, 58, 115, 100, 90, 66, 45, 66, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 70, 90, 58, 68, 68, 91, - 58, 68, 69, 336, 58, 100, 69, 68, 92, 336, + 58, 68, 69, 337, 58, 100, 69, 68, 92, 337, 69, 95, 58, 70, 71, 70, 58, 70, 58, 58, 109, 103, 71, 77, 71, 91, 69, 111, 72, 71, 71, 72, 72, 75, 76, 76, 92, 75, 260, 95, 75, 112, 72, 113, 76, 72, 77, 75, 75, 103, - 123, 109, 366, 75, 76, 111, 77, 132, 366, 123, + 123, 109, 367, 75, 76, 111, 77, 132, 367, 123, 123, 77, 80, 80, 80, 80, 80, 76, 112, 76, - 132, 113, 114, 76, 729, 80, 88, 88, 88, 88, + 132, 113, 114, 76, 728, 80, 88, 88, 88, 88, 88, 81, 76, 81, 81, 81, 81, 81, 260, 76, 89, 89, 89, 89, 89, 82, 81, 82, 80, 114, 82, 82, 82, 82, 82, 83, 93, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 102, 94, 81, 83, 107, 119, 139, 102, 84, 127, 127, 147, 153, 185, 136, 93, 131, 136, 131, 127, 175, 136, 119, - 159, 159, 162, 83, 94, 162, 162, 107, 84, 147, - 119, 168, 131, 185, 102, 168, 183, 153, 102, 168, - 184, 291, 102, 730, 175, 186, 291, 139, 187, 196, - - 102, 166, 188, 192, 102, 197, 102, 102, 118, 118, - 118, 118, 118, 731, 183, 732, 184, 118, 118, 118, - 118, 118, 118, 186, 187, 188, 192, 196, 205, 250, - 201, 408, 197, 203, 408, 283, 166, 166, 166, 210, - 118, 118, 118, 118, 118, 118, 306, 166, 283, 166, - 256, 166, 166, 201, 166, 205, 203, 208, 208, 208, - 208, 208, 210, 298, 216, 301, 208, 208, 208, 208, - 208, 208, 216, 256, 309, 306, 320, 216, 216, 313, - 381, 733, 250, 593, 593, 250, 298, 370, 301, 208, - 208, 208, 208, 208, 208, 308, 308, 309, 332, 734, - - 448, 350, 647, 332, 308, 320, 350, 313, 318, 318, - 318, 318, 318, 448, 647, 370, 369, 318, 318, 318, - 318, 318, 318, 362, 362, 362, 369, 384, 391, 362, - 395, 384, 391, 419, 395, 429, 551, 429, 381, 735, - 318, 318, 318, 318, 318, 318, 413, 661, 458, 736, - 515, 413, 431, 458, 350, 515, 552, 660, 737, 350, - 738, 419, 429, 551, 429, 430, 430, 430, 430, 430, - 661, 739, 740, 741, 430, 430, 430, 430, 430, 430, - 431, 553, 623, 742, 552, 660, 553, 623, 666, 666, - 707, 666, 743, 707, 744, 745, 746, 430, 430, 430, - - 430, 430, 430, 746, 747, 748, 749, 750, 751, 753, - 754, 755, 748, 756, 751, 757, 748, 758, 759, 760, - 761, 762, 764, 765, 766, 767, 623, 768, 770, 771, - 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, - 782, 783, 784, 785, 786, 787, 788, 789, 790, 792, - 793, 765, 794, 795, 796, 797, 798, 799, 800, 801, - 797, 802, 803, 804, 805, 806, 809, 810, 811, 812, - 813, 814, 817, 818, 819, 820, 821, 822, 823, 824, - 825, 822, 826, 827, 828, 830, 831, 832, 833, 834, - 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 159, 159, 159, 83, 94, 183, 184, 107, 84, 147, + 119, 729, 131, 185, 102, 186, 162, 153, 102, 162, + 162, 168, 102, 188, 175, 168, 197, 139, 187, 168, + + 102, 166, 184, 183, 102, 192, 102, 102, 118, 118, + 118, 118, 118, 186, 596, 596, 188, 118, 118, 118, + 118, 118, 118, 197, 187, 196, 250, 201, 192, 205, + 292, 410, 203, 284, 410, 292, 166, 166, 166, 210, + 118, 118, 118, 118, 118, 118, 284, 166, 383, 166, + 201, 166, 166, 196, 166, 203, 205, 208, 208, 208, + 208, 208, 210, 256, 216, 299, 208, 208, 208, 208, + 208, 208, 216, 302, 307, 309, 309, 216, 216, 250, + 314, 310, 250, 386, 309, 321, 256, 386, 299, 208, + 208, 208, 208, 208, 208, 333, 302, 351, 711, 371, + + 333, 711, 351, 307, 310, 370, 383, 421, 314, 319, + 319, 319, 319, 319, 321, 370, 730, 665, 319, 319, + 319, 319, 319, 319, 363, 363, 363, 371, 393, 397, + 363, 415, 393, 397, 433, 421, 415, 431, 450, 431, + 665, 319, 319, 319, 319, 319, 319, 460, 518, 651, + 351, 450, 460, 518, 555, 351, 554, 664, 556, 731, + 732, 651, 433, 556, 431, 734, 431, 432, 432, 432, + 432, 432, 670, 670, 735, 670, 432, 432, 432, 432, + 432, 432, 555, 554, 627, 664, 736, 737, 738, 627, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 432, + + 432, 432, 432, 432, 432, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 758, 751, 759, 753, 760, 756, + 761, 753, 762, 763, 764, 765, 766, 767, 627, 769, + 770, 771, 772, 773, 775, 776, 777, 778, 779, 780, + 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, + 791, 792, 793, 794, 795, 797, 798, 799, 770, 800, + 801, 802, 803, 804, 805, 806, 802, 807, 808, 809, + 810, 811, 814, 815, 816, 817, 818, 819, 822, 823, + 824, 825, 826, 827, 828, 829, 830, 827, 831, 832, + 834, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 860, 861, 862, 863, 864, 852, - 865, 866, 867, 869, 870, 871, 872, 873, 874, 875, + 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, + 866, 867, 868, 869, 870, 858, 871, 872, 873, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 887, 888, 890, 891, 892, 893, 870, 894, 895, - 869, 896, 897, 898, 899, 901, 902, 903, 904, 905, - 906, 908, 909, 910, 905, 911, 912, 913, 914, 915, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 930, 931, 932, 934, 935, 936, 938, 939, - 940, 926, 941, 942, 943, 944, 945, 946, 947, 948, - - 949, 950, 951, 952, 953, 954, 955, 957, 958, 959, - 960, 961, 962, 963, 964, 965, 966, 905, 967, 968, - 970, 969, 971, 972, 973, 974, 975, 976, 977, 978, - 979, 980, 981, 982, 983, 984, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 968, 969, 997, - 998, 999, 1000, 1001, 1003, 1004, 1005, 1006, 1007, 1008, - 1004, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + 886, 887, 888, 889, 890, 891, 892, 893, 894, 896, + 897, 898, 899, 876, 900, 901, 875, 902, 903, 904, + 905, 907, 908, 909, 910, 911, 912, 914, 915, 916, + 911, 917, 918, 919, 920, 921, 922, 923, 924, 925, + 926, 927, 928, 929, 930, 931, 932, 933, 936, 937, + 938, 940, 941, 942, 944, 945, 946, 932, 947, 948, + + 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, + 970, 971, 972, 911, 973, 974, 976, 975, 977, 978, + 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 992, 993, 994, 995, 996, 997, 998, 999, + 1000, 1001, 1002, 974, 975, 1003, 1004, 1005, 1006, 1007, + 1009, 1010, 1011, 1012, 1013, 1014, 1010, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, - 1028, 1029, 1030, 1031, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1045, 1046, 1049, 1050, 1051, + 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, - 1005, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1049, 1051, 1052, 1055, 1056, 1057, 1011, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1075, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 1086, 1062, 1087, 1088, 1089, 1090, 1091, - 1063, 1092, 1095, 1097, 1099, 1100, 1101, 1102, 1103, 1104, - 1105, 1106, 1107, 1108, 1109, 1110, 1112, 1113, 1114, 1116, - 1117, 1118, 1119, 1122, 1124, 1125, 1126, 1127, 1128, 1129, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1081, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1068, 1093, 1094, 1095, 1096, 1097, 1069, 1098, 1101, 1103, + 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, + 1115, 1116, 1118, 1119, 1120, 1122, 1123, 1124, 1125, 1128, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, - 1141, 1142, 1143, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1162, 1163, 1164, - - 1165, 1166, 1167, 1168, 1169, 1171, 1172, 1173, 1174, 1175, - 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1152, 1183, 1184, - 1185, 1186, 1188, 1189, 1190, 1191, 1192, 1193, 1135, 1194, - 1195, 1196, 1190, 1199, 1200, 1201, 1156, 1202, 1203, 1204, - 1205, 1206, 1207, 1208, 1209, 1211, 1212, 1213, 1214, 1215, - 1216, 1218, 1220, 1223, 1225, 1226, 1227, 1228, 1229, 1231, - 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, - 1243, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, - 1254, 1229, 1255, 1257, 1260, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1271, 1272, 1273, 1274, 1275, 1276, 1279, - - 1280, 1282, 1283, 1284, 1285, 1286, 1288, 1289, 1290, 1291, - 1292, 1294, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, - 1304, 1305, 1306, 1308, 1309, 1311, 1312, 1313, 1314, 1315, - 1316, 1317, 1318, 1318, 1319, 1320, 1321, 1322, 1323, 1296, - 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1344, - 1345, 1347, 1348, 1349, 1350, 1353, 1354, 1355, 1359, 1360, - 1362, 1363, 1364, 1365, 1366, 1362, 1367, 1368, 1369, 1370, - 1372, 1373, 1375, 1377, 1378, 1379, 1380, 1381, 1382, 1383, - 1385, 1349, 1319, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - - 1393, 1394, 1395, 1396, 1397, 1398, 1400, 1401, 1402, 1403, - 1405, 1406, 1408, 1409, 1410, 1411, 1412, 1414, 1415, 1416, - 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, - 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1436, 1437, 1438, - 1440, 1442, 1444, 1445, 1446, 1447, 1448, 1449, 1451, 1452, - 1453, 1454, 1455, 1456, 1457, 1459, 1460, 1461, 1462, 1464, - 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1474, 1475, - 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, - 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1498, - 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509, - - 1510, 1511, 1512, 1513, 1514, 1515, 1517, 1519, 1521, 1524, - 1525, 1526, 1527, 1528, 1530, 1532, 1533, 1535, 1536, 1538, - 1539, 1540, 1542, 1543, 1544, 1546, 1548, 1549, 1550, 1551, - 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, + 1140, 1141, 1142, 1143, 1144, 1145, 1147, 1148, 1149, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1161, 1162, 1163, + + 1164, 1165, 1166, 1168, 1169, 1170, 1171, 1172, 1173, 1174, + 1175, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, + 1186, 1187, 1188, 1158, 1189, 1190, 1191, 1192, 1194, 1195, + 1196, 1197, 1198, 1199, 1141, 1200, 1201, 1202, 1196, 1205, + 1206, 1207, 1162, 1208, 1209, 1210, 1211, 1212, 1213, 1214, + 1215, 1217, 1218, 1219, 1220, 1221, 1222, 1224, 1226, 1229, + 1231, 1232, 1233, 1234, 1235, 1237, 1239, 1240, 1241, 1242, + 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1251, 1252, 1253, + 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1235, 1261, 1263, + 1266, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, + + 1278, 1279, 1280, 1281, 1282, 1285, 1286, 1288, 1289, 1290, + 1291, 1292, 1294, 1295, 1296, 1297, 1298, 1300, 1302, 1303, + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1314, + 1315, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1324, + 1325, 1326, 1327, 1328, 1329, 1302, 1330, 1331, 1332, 1333, + 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, + 1344, 1345, 1346, 1347, 1348, 1350, 1351, 1353, 1354, 1355, + 1356, 1359, 1360, 1361, 1365, 1366, 1368, 1369, 1370, 1371, + 1372, 1368, 1373, 1374, 1375, 1376, 1378, 1379, 1381, 1383, + 1384, 1385, 1386, 1387, 1388, 1389, 1391, 1355, 1325, 1392, + + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 1404, 1406, 1407, 1408, 1409, 1411, 1412, 1414, 1415, + 1416, 1417, 1418, 1420, 1421, 1422, 1424, 1425, 1426, 1427, + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, + 1438, 1439, 1440, 1442, 1443, 1444, 1446, 1448, 1450, 1451, + 1452, 1453, 1454, 1455, 1457, 1458, 1459, 1460, 1461, 1462, + 1463, 1465, 1466, 1467, 1468, 1470, 1471, 1472, 1473, 1474, + 1475, 1476, 1477, 1478, 1480, 1481, 1482, 1483, 1484, 1485, + 1486, 1487, 1488, 1489, 1490, 1491, 1494, 1495, 1496, 1497, + 1498, 1499, 1500, 1501, 1502, 1504, 1505, 1506, 1507, 1508, + + 1509, 1510, 1511, 1512, 1513, 1515, 1516, 1517, 1518, 1519, + 1520, 1521, 1523, 1525, 1527, 1530, 1531, 1532, 1533, 1534, + 1536, 1538, 1539, 1541, 1542, 1544, 1545, 1546, 1548, 1549, + 1550, 1552, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, - 1572, 1573, 1574, 1575, 1577, 1578, 1579, 1580, 1581, 1585, - 1588, 1589, 1590, 1591, 1592, 1593, 1597, 1598, 1599, 1600, - 1602, 1603, 1605, 1606, 1607, 1608, 1609, 1611, 1612, 1615, - 1615, 1615, 1615, 1615, 1616, 1616, 1616, 1616, 1616, 1617, - 1623, 1617, 1617, 1617, 1618, 1624, 1618, 1625, 1618, 1619, - - 1619, 1619, 1619, 1619, 1620, 1620, 1620, 1620, 1620, 1621, - 1626, 1621, 1621, 1621, 1622, 1622, 1622, 725, 724, 723, - 722, 721, 720, 718, 717, 716, 715, 714, 713, 712, - 711, 709, 708, 706, 705, 704, 703, 702, 701, 700, - 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, - 689, 687, 686, 685, 684, 683, 682, 681, 680, 679, - 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, - 668, 667, 665, 664, 663, 662, 659, 658, 657, 654, - 653, 652, 651, 650, 649, 648, 645, 644, 643, 642, - 641, 640, 639, 638, 637, 636, 635, 634, 633, 631, - - 630, 629, 628, 627, 626, 625, 624, 622, 621, 619, - 618, 617, 616, 615, 613, 612, 611, 609, 608, 606, - 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, - 595, 594, 592, 591, 590, 589, 588, 586, 585, 584, - 583, 582, 581, 580, 579, 577, 576, 575, 574, 573, - 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, - 562, 561, 560, 559, 558, 557, 556, 555, 549, 547, - 544, 543, 541, 540, 539, 537, 533, 532, 531, 530, - 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, - 519, 518, 517, 516, 514, 513, 512, 511, 510, 509, - - 508, 507, 506, 505, 504, 502, 500, 499, 498, 497, - 496, 495, 494, 493, 492, 491, 490, 489, 487, 486, - 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, - 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, - 465, 464, 462, 461, 460, 459, 457, 456, 455, 454, - 453, 452, 450, 449, 447, 446, 445, 444, 442, 441, - 440, 439, 438, 437, 436, 434, 433, 432, 427, 426, - 424, 423, 422, 421, 420, 417, 414, 412, 411, 410, - 409, 407, 406, 405, 404, 403, 402, 401, 400, 399, - 398, 397, 396, 394, 393, 392, 390, 389, 388, 387, - - 386, 385, 383, 382, 380, 379, 378, 377, 376, 375, - 374, 373, 372, 368, 367, 365, 364, 363, 361, 360, - 359, 358, 357, 356, 355, 354, 353, 352, 351, 349, - 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, - 338, 337, 335, 334, 333, 331, 328, 327, 326, 325, - 324, 323, 322, 321, 317, 315, 312, 310, 307, 304, - 297, 296, 295, 294, 293, 292, 290, 289, 288, 287, - 286, 285, 284, 282, 281, 280, 279, 278, 277, 276, - 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, - 264, 263, 262, 261, 259, 258, 257, 255, 254, 253, - - 252, 251, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 239, 238, 237, 236, 235, 234, 233, 232, 231, - 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, - 220, 219, 218, 217, 215, 214, 213, 212, 211, 209, - 206, 204, 202, 200, 199, 194, 193, 189, 181, 180, - 179, 178, 177, 176, 174, 173, 172, 171, 170, 169, - 167, 165, 164, 163, 161, 160, 158, 157, 156, 155, - 154, 152, 151, 150, 149, 148, 146, 145, 144, 143, - 142, 141, 140, 138, 137, 135, 134, 130, 129, 128, - 126, 125, 124, 122, 121, 120, 116, 110, 106, 105, - - 104, 98, 97, 78, 73, 67, 50, 49, 48, 43, - 41, 39, 38, 24, 14, 11, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, - 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614 + 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, + 1583, 1584, 1585, 1586, 1587, 1591, 1594, 1595, 1596, 1597, + 1598, 1599, 1603, 1604, 1605, 1606, 1608, 1609, 1611, 1612, + 1613, 1614, 1615, 1617, 1618, 1621, 1621, 1621, 1621, 1621, + 1622, 1622, 1622, 1622, 1622, 1623, 1629, 1623, 1623, 1623, + + 1624, 1630, 1624, 1631, 1624, 1625, 1625, 1625, 1625, 1625, + 1626, 1626, 1626, 1626, 1626, 1627, 1632, 1627, 1627, 1627, + 1628, 1628, 1628, 725, 724, 722, 721, 720, 719, 718, + 717, 716, 715, 713, 712, 710, 709, 708, 707, 706, + 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, + 695, 694, 693, 691, 690, 689, 688, 687, 686, 685, + 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, + 674, 673, 672, 671, 669, 668, 667, 666, 663, 662, + 661, 658, 657, 656, 655, 654, 653, 652, 649, 648, + 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, + + 637, 635, 634, 633, 632, 631, 630, 629, 628, 626, + 625, 623, 622, 621, 620, 619, 618, 616, 615, 614, + 612, 611, 609, 608, 607, 606, 605, 604, 603, 602, + 601, 600, 599, 598, 597, 595, 594, 593, 592, 591, + 589, 588, 587, 586, 585, 584, 583, 582, 580, 579, + 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, + 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, + 558, 552, 550, 547, 546, 544, 543, 542, 540, 536, + 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, + 525, 524, 523, 522, 521, 520, 519, 517, 516, 515, + + 514, 513, 512, 511, 510, 509, 508, 507, 505, 503, + 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, + 492, 491, 489, 488, 487, 486, 485, 484, 483, 482, + 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 468, 467, 466, 464, 463, 462, 461, + 459, 458, 457, 456, 455, 454, 452, 451, 449, 448, + 447, 446, 444, 443, 442, 441, 440, 439, 438, 436, + 435, 434, 429, 428, 426, 425, 424, 423, 422, 419, + 416, 414, 413, 412, 411, 409, 408, 407, 406, 405, + 404, 403, 402, 401, 400, 399, 398, 396, 395, 394, + + 392, 391, 390, 389, 388, 387, 385, 384, 382, 381, + 380, 379, 378, 377, 376, 375, 374, 373, 369, 368, + 366, 365, 364, 362, 361, 360, 359, 358, 357, 356, + 355, 354, 353, 352, 350, 349, 348, 347, 346, 345, + 344, 343, 342, 341, 340, 339, 338, 336, 335, 334, + 332, 329, 328, 327, 326, 325, 324, 323, 322, 318, + 316, 313, 311, 308, 305, 298, 297, 296, 295, 294, + 293, 291, 290, 289, 288, 287, 286, 285, 283, 282, + 281, 280, 279, 278, 277, 275, 274, 273, 272, 271, + 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, + + 259, 258, 257, 255, 254, 253, 252, 251, 249, 248, + 247, 246, 245, 244, 243, 242, 241, 239, 238, 237, + 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, + 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, + 215, 214, 213, 212, 211, 209, 206, 204, 202, 200, + 199, 194, 193, 189, 181, 180, 179, 178, 177, 176, + 174, 173, 172, 171, 170, 169, 167, 165, 164, 163, + 161, 160, 158, 157, 156, 155, 154, 152, 151, 150, + 149, 148, 146, 145, 144, 143, 142, 141, 140, 138, + 137, 135, 134, 130, 129, 128, 126, 125, 124, 122, + + 121, 120, 116, 110, 106, 105, 104, 98, 97, 78, + 73, 67, 50, 49, 48, 43, 41, 39, 38, 24, + 14, 11, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620 + } ; static yy_state_type yy_last_accepting_state; @@ -1764,7 +1770,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[190] = +static const flex_int16_t yy_rule_linenum[191] = { 0, 149, 151, 153, 158, 159, 164, 165, 166, 178, 181, 186, 193, 202, 211, 220, 229, 238, 247, 256, 265, @@ -1779,13 +1785,13 @@ static const flex_int16_t yy_rule_linenum[190] = 1099, 1109, 1118, 1128, 1139, 1148, 1157, 1166, 1175, 1184, 1194, 1203, 1212, 1221, 1232, 1243, 1254, 1263, 1273, 1282, - 1291, 1300, 1309, 1319, 1328, 1337, 1347, 1359, 1372, 1381, - 1390, 1400, 1410, 1419, 1430, 1440, 1449, 1459, 1469, 1478, - 1487, 1496, 1505, 1515, 1524, 1534, 1543, 1552, 1561, 1570, - 1579, 1588, 1597, 1606, 1615, 1624, 1633, 1642, 1651, 1660, - 1669, 1678, 1687, 1696, 1705, 1714, 1723, 1732, 1741, 1750, - 1759, 1769, 1868, 1873, 1878, 1883, 1884, 1885, 1886, 1887, - 1888, 1890, 1908, 1921, 1926, 1930, 1932, 1934, 1936 + 1291, 1300, 1309, 1318, 1327, 1336, 1345, 1355, 1367, 1380, + 1389, 1398, 1408, 1418, 1427, 1438, 1448, 1457, 1467, 1477, + 1486, 1495, 1504, 1513, 1523, 1532, 1542, 1551, 1560, 1569, + 1578, 1587, 1596, 1605, 1614, 1623, 1632, 1641, 1650, 1659, + 1668, 1677, 1686, 1695, 1704, 1713, 1722, 1731, 1740, 1749, + 1758, 1767, 1777, 1876, 1881, 1886, 1891, 1892, 1893, 1894, + 1895, 1896, 1898, 1916, 1929, 1934, 1938, 1940, 1942, 1944 } ; /* The intent behind this definition is that it'll catch @@ -1838,7 +1844,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 1841 "dhcp6_lexer.cc" +#line 1848 "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 @@ -1864,8 +1870,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 1867 "dhcp6_lexer.cc" -#line 1868 "dhcp6_lexer.cc" +#line 1874 "dhcp6_lexer.cc" +#line 1875 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2197,7 +2203,7 @@ YY_DECL } -#line 2200 "dhcp6_lexer.cc" +#line 2207 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2226,13 +2232,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 >= 1615 ) + if ( yy_current_state >= 1621 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1614 ); + while ( yy_current_state != 1620 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2251,13 +2257,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 < 190 ) + else if ( yy_act < 191 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 190 ) + else if ( yy_act == 191 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 191 ) + else if ( yy_act == 192 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3824,7 +3830,19 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP -#line 1319 "dhcp6_lexer.ll" +#line 1318 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: + return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_); + } +} + YY_BREAK +case 125: +YY_RULE_SETUP +#line 1327 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3834,9 +3852,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1328 "dhcp6_lexer.ll" +#line 1336 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3846,9 +3864,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1337 "dhcp6_lexer.ll" +#line 1345 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3859,9 +3877,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1347 "dhcp6_lexer.ll" +#line 1355 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3874,9 +3892,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1359 "dhcp6_lexer.ll" +#line 1367 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3890,9 +3908,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1372 "dhcp6_lexer.ll" +#line 1380 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3902,9 +3920,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1381 "dhcp6_lexer.ll" +#line 1389 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3914,9 +3932,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1390 "dhcp6_lexer.ll" +#line 1398 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3927,9 +3945,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1400 "dhcp6_lexer.ll" +#line 1408 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3940,9 +3958,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1410 "dhcp6_lexer.ll" +#line 1418 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3952,9 +3970,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1419 "dhcp6_lexer.ll" +#line 1427 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -3966,9 +3984,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1430 "dhcp6_lexer.ll" +#line 1438 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3979,9 +3997,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1440 "dhcp6_lexer.ll" +#line 1448 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3991,9 +4009,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1449 "dhcp6_lexer.ll" +#line 1457 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4004,9 +4022,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1459 "dhcp6_lexer.ll" +#line 1467 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4017,9 +4035,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1469 "dhcp6_lexer.ll" +#line 1477 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4029,9 +4047,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1478 "dhcp6_lexer.ll" +#line 1486 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4041,9 +4059,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1487 "dhcp6_lexer.ll" +#line 1495 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4053,9 +4071,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1496 "dhcp6_lexer.ll" +#line 1504 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4065,9 +4083,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1505 "dhcp6_lexer.ll" +#line 1513 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4078,9 +4096,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1515 "dhcp6_lexer.ll" +#line 1523 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4090,9 +4108,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1524 "dhcp6_lexer.ll" +#line 1532 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4102,9 +4120,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1534 "dhcp6_lexer.ll" +#line 1542 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4114,9 +4132,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1543 "dhcp6_lexer.ll" +#line 1551 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4126,9 +4144,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1552 "dhcp6_lexer.ll" +#line 1560 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4138,9 +4156,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1561 "dhcp6_lexer.ll" +#line 1569 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4150,9 +4168,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1570 "dhcp6_lexer.ll" +#line 1578 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4162,9 +4180,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1579 "dhcp6_lexer.ll" +#line 1587 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4174,9 +4192,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1588 "dhcp6_lexer.ll" +#line 1596 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4186,9 +4204,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1597 "dhcp6_lexer.ll" +#line 1605 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4198,9 +4216,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1606 "dhcp6_lexer.ll" +#line 1614 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4210,9 +4228,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1615 "dhcp6_lexer.ll" +#line 1623 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4222,9 +4240,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1624 "dhcp6_lexer.ll" +#line 1632 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4234,9 +4252,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1633 "dhcp6_lexer.ll" +#line 1641 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4246,9 +4264,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1642 "dhcp6_lexer.ll" +#line 1650 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4258,9 +4276,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1651 "dhcp6_lexer.ll" +#line 1659 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4270,9 +4288,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1660 "dhcp6_lexer.ll" +#line 1668 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4282,9 +4300,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1669 "dhcp6_lexer.ll" +#line 1677 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4294,9 +4312,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1678 "dhcp6_lexer.ll" +#line 1686 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4306,9 +4324,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1687 "dhcp6_lexer.ll" +#line 1695 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4318,9 +4336,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1696 "dhcp6_lexer.ll" +#line 1704 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4330,9 +4348,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1705 "dhcp6_lexer.ll" +#line 1713 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4342,9 +4360,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1714 "dhcp6_lexer.ll" +#line 1722 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4354,9 +4372,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1723 "dhcp6_lexer.ll" +#line 1731 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4366,9 +4384,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1732 "dhcp6_lexer.ll" +#line 1740 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4378,9 +4396,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1741 "dhcp6_lexer.ll" +#line 1749 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4390,9 +4408,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1750 "dhcp6_lexer.ll" +#line 1758 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4402,9 +4420,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1759 "dhcp6_lexer.ll" +#line 1767 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4414,9 +4432,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1769 "dhcp6_lexer.ll" +#line 1777 "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. @@ -4516,65 +4534,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 173: -/* rule 173 can match eol */ +case 174: +/* rule 174 can match eol */ YY_RULE_SETUP -#line 1868 "dhcp6_lexer.ll" +#line 1876 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 174: -/* rule 174 can match eol */ +case 175: +/* rule 175 can match eol */ YY_RULE_SETUP -#line 1873 "dhcp6_lexer.ll" +#line 1881 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1878 "dhcp6_lexer.ll" +#line 1886 "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 176: +case 177: YY_RULE_SETUP -#line 1883 "dhcp6_lexer.ll" +#line 1891 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1884 "dhcp6_lexer.ll" +#line 1892 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1885 "dhcp6_lexer.ll" +#line 1893 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1886 "dhcp6_lexer.ll" +#line 1894 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1887 "dhcp6_lexer.ll" +#line 1895 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1888 "dhcp6_lexer.ll" +#line 1896 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1890 "dhcp6_lexer.ll" +#line 1898 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4593,9 +4611,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1908 "dhcp6_lexer.ll" +#line 1916 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4609,43 +4627,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1921 "dhcp6_lexer.ll" +#line 1929 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1926 "dhcp6_lexer.ll" +#line 1934 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1930 "dhcp6_lexer.ll" +#line 1938 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1932 "dhcp6_lexer.ll" +#line 1940 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1934 "dhcp6_lexer.ll" +#line 1942 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1936 "dhcp6_lexer.ll" +#line 1944 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1938 "dhcp6_lexer.ll" +#line 1946 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -4669,12 +4687,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1961 "dhcp6_lexer.ll" +#line 1969 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 4677 "dhcp6_lexer.cc" +#line 4696 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -4993,7 +5011,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 >= 1615 ) + if ( yy_current_state >= 1621 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5026,11 +5044,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 >= 1615 ) + if ( yy_current_state >= 1621 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1614); + yy_is_jam = (yy_current_state == 1620); return yy_is_jam ? 0 : yy_current_state; } @@ -5779,7 +5797,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 1961 "dhcp6_lexer.ll" +#line 1969 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 28cf46bdcc..e4f95b018f 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -1314,6 +1314,14 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } +\"pattern\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: + return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_); + } +} \"debuglevel\" { switch(driver.ctx_) { diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 3cb9d24354..a2cdd439fa 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.4.1. +// A Bison parser, made by GNU Bison 3.2.1. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 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 @@ -43,11 +43,11 @@ // Unqualified %code blocks. -#line 34 "dhcp6_parser.yy" +#line 34 "dhcp6_parser.yy" // lalr1.cc:438 #include -#line 51 "dhcp6_parser.cc" +#line 51 "dhcp6_parser.cc" // lalr1.cc:438 #ifndef YY_ @@ -88,7 +88,7 @@ { \ (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ } \ - while (false) + while (/*CONSTCOND*/ false) # endif @@ -140,10 +140,9 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:513 namespace isc { namespace dhcp { -#line 146 "dhcp6_parser.cc" - +#line 146 "dhcp6_parser.cc" // lalr1.cc:513 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -155,7 +154,7 @@ namespace isc { namespace dhcp { { if (*yystr == '"') { - std::string yyr; + std::string yyr = ""; char const *yyp = yystr; for (;;) @@ -168,10 +167,7 @@ namespace isc { namespace dhcp { case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - else - goto append; - - append: + // Fall through. default: yyr += *yyp; break; @@ -199,8 +195,6 @@ namespace isc { namespace dhcp { Dhcp6Parser::~Dhcp6Parser () {} - Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} /*---------------. | Symbol types. | @@ -209,16 +203,16 @@ namespace isc { namespace dhcp { // by_state. - Dhcp6Parser::by_state::by_state () YY_NOEXCEPT + Dhcp6Parser::by_state::by_state () : state (empty_state) {} - Dhcp6Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT - : state (that.state) + Dhcp6Parser::by_state::by_state (const by_state& other) + : state (other.state) {} void - Dhcp6Parser::by_state::clear () YY_NOEXCEPT + Dhcp6Parser::by_state::clear () { state = empty_state; } @@ -230,12 +224,12 @@ namespace isc { namespace dhcp { that.clear (); } - Dhcp6Parser::by_state::by_state (state_type s) YY_NOEXCEPT + Dhcp6Parser::by_state::by_state (state_type s) : state (s) {} Dhcp6Parser::symbol_number_type - Dhcp6Parser::by_state::type_get () const YY_NOEXCEPT + Dhcp6Parser::by_state::type_get () const { if (state == empty_state) return empty_symbol; @@ -251,29 +245,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 184: // "boolean" + case 185: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 183: // "floating point" + case 184: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 182: // "integer" + case 183: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 181: // "constant string" + case 182: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -281,7 +275,7 @@ namespace isc { namespace dhcp { break; } -#if 201103L <= YY_CPLUSPLUS +#if defined __cplusplus && 201103L <= __cplusplus // that is emptied. that.state = empty_state; #endif @@ -292,29 +286,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 184: // "boolean" + case 185: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 183: // "floating point" + case 184: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 182: // "integer" + case 183: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 181: // "constant string" + case 182: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -326,36 +320,36 @@ namespace isc { namespace dhcp { that.type = empty_symbol; } -#if YY_CPLUSPLUS < 201103L +#if !defined __cplusplus || __cplusplus < 201103L Dhcp6Parser::stack_symbol_type& Dhcp6Parser::stack_symbol_type::operator= (stack_symbol_type& that) { state = that.state; switch (that.type_get ()) { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value value.move< ElementPtr > (that.value); break; - case 184: // "boolean" + case 185: // "boolean" value.move< bool > (that.value); break; - case 183: // "floating point" + case 184: // "floating point" value.move< double > (that.value); break; - case 182: // "integer" + case 183: // "integer" value.move< int64_t > (that.value); break; - case 181: // "constant string" + case 182: // "constant string" value.move< std::string > (that.value); break; @@ -387,83 +381,93 @@ namespace isc { namespace dhcp { std::ostream& yyoutput = yyo; YYUSE (yyoutput); symbol_number_type yytype = yysym.type_get (); -#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408 // Avoid a (spurious) G++ 4.8 warning about "array subscript is // below array bounds". if (yysym.empty ()) std::abort (); -#endif yyo << (yytype < yyntokens_ ? "token" : "nterm") << ' ' << yytname_[yytype] << " (" << yysym.location << ": "; switch (yytype) { - case 181: // "constant string" -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < std::string > (); } -#line 405 "dhcp6_parser.cc" + case 182: // "constant string" + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< std::string > (); } +#line 398 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 182: // "integer" -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < int64_t > (); } -#line 411 "dhcp6_parser.cc" + case 183: // "integer" + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< int64_t > (); } +#line 405 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 183: // "floating point" -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < double > (); } -#line 417 "dhcp6_parser.cc" + case 184: // "floating point" + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< double > (); } +#line 412 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 184: // "boolean" -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < bool > (); } -#line 423 "dhcp6_parser.cc" + case 185: // "boolean" + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< bool > (); } +#line 419 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 202: // value -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 429 "dhcp6_parser.cc" + case 203: // value + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 426 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 206: // map_value -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 435 "dhcp6_parser.cc" + case 207: // map_value + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 433 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 267: // db_type -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 441 "dhcp6_parser.cc" + case 268: // db_type + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 440 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 360: // hr_mode -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 447 "dhcp6_parser.cc" + case 361: // hr_mode + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 447 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 496: // duid_type -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 453 "dhcp6_parser.cc" + case 497: // duid_type + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 454 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 531: // ncr_protocol_value -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 459 "dhcp6_parser.cc" + case 532: // ncr_protocol_value + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 461 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 538: // replace_client_name_value -#line 260 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 465 "dhcp6_parser.cc" + case 539: // replace_client_name_value + +#line 261 "dhcp6_parser.yy" // lalr1.cc:672 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 468 "dhcp6_parser.cc" // lalr1.cc:672 break; + default: break; } @@ -482,7 +486,7 @@ namespace isc { namespace dhcp { void Dhcp6Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) { -#if 201103L <= YY_CPLUSPLUS +#if defined __cplusplus && 201103L <= __cplusplus yypush_ (m, stack_symbol_type (s, std::move (sym))); #else stack_symbol_type ss (s, sym); @@ -586,22 +590,17 @@ namespace isc { namespace dhcp { yystack_.clear (); yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); - /*-----------------------------------------------. - | yynewstate -- push a new symbol on the stack. | - `-----------------------------------------------*/ + // A new symbol was pushed on the stack. yynewstate: YYCDEBUG << "Entering state " << yystack_[0].state << '\n'; // 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]; @@ -622,7 +621,6 @@ namespace isc { namespace dhcp { #if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); goto yyerrlab1; } @@ -654,7 +652,6 @@ namespace isc { namespace dhcp { yypush_ ("Shifting", yyn, YY_MOVE (yyla)); goto yynewstate; - /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ @@ -664,9 +661,8 @@ namespace isc { namespace dhcp { goto yyerrlab; goto yyreduce; - /*-----------------------------. - | yyreduce -- do a reduction. | + | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: yylen = yyr2_[yyn]; @@ -678,29 +674,29 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value yylhs.value.emplace< ElementPtr > (); break; - case 184: // "boolean" + case 185: // "boolean" yylhs.value.emplace< bool > (); break; - case 183: // "floating point" + case 184: // "floating point" yylhs.value.emplace< double > (); break; - case 182: // "integer" + case 183: // "integer" yylhs.value.emplace< int64_t > (); break; - case 181: // "constant string" + case 182: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -711,8 +707,8 @@ namespace isc { namespace dhcp { // Default location. { - stack_type::slice range (yystack_, yylen); - YYLLOC_DEFAULT (yylhs.location, range, yylen); + slice slice (yystack_, yylen); + YYLLOC_DEFAULT (yylhs.location, slice, yylen); yyerror_range[1].location = yylhs.location; } @@ -725,286 +721,286 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 269 "dhcp6_parser.yy" +#line 270 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 731 "dhcp6_parser.cc" +#line 727 "dhcp6_parser.cc" // lalr1.cc:907 break; case 4: -#line 270 "dhcp6_parser.yy" +#line 271 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.CONFIG; } -#line 737 "dhcp6_parser.cc" +#line 733 "dhcp6_parser.cc" // lalr1.cc:907 break; case 6: -#line 271 "dhcp6_parser.yy" +#line 272 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCP6; } -#line 743 "dhcp6_parser.cc" +#line 739 "dhcp6_parser.cc" // lalr1.cc:907 break; case 8: -#line 272 "dhcp6_parser.yy" +#line 273 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 749 "dhcp6_parser.cc" +#line 745 "dhcp6_parser.cc" // lalr1.cc:907 break; case 10: -#line 273 "dhcp6_parser.yy" +#line 274 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.SUBNET6; } -#line 755 "dhcp6_parser.cc" +#line 751 "dhcp6_parser.cc" // lalr1.cc:907 break; case 12: -#line 274 "dhcp6_parser.yy" +#line 275 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.POOLS; } -#line 761 "dhcp6_parser.cc" +#line 757 "dhcp6_parser.cc" // lalr1.cc:907 break; case 14: -#line 275 "dhcp6_parser.yy" +#line 276 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.PD_POOLS; } -#line 767 "dhcp6_parser.cc" +#line 763 "dhcp6_parser.cc" // lalr1.cc:907 break; case 16: -#line 276 "dhcp6_parser.yy" +#line 277 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.RESERVATIONS; } -#line 773 "dhcp6_parser.cc" +#line 769 "dhcp6_parser.cc" // lalr1.cc:907 break; case 18: -#line 277 "dhcp6_parser.yy" +#line 278 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCP6; } -#line 779 "dhcp6_parser.cc" +#line 775 "dhcp6_parser.cc" // lalr1.cc:907 break; case 20: -#line 278 "dhcp6_parser.yy" +#line 279 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.OPTION_DEF; } -#line 785 "dhcp6_parser.cc" +#line 781 "dhcp6_parser.cc" // lalr1.cc:907 break; case 22: -#line 279 "dhcp6_parser.yy" +#line 280 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.OPTION_DATA; } -#line 791 "dhcp6_parser.cc" +#line 787 "dhcp6_parser.cc" // lalr1.cc:907 break; case 24: -#line 280 "dhcp6_parser.yy" +#line 281 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 797 "dhcp6_parser.cc" +#line 793 "dhcp6_parser.cc" // lalr1.cc:907 break; case 26: -#line 281 "dhcp6_parser.yy" +#line 282 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 803 "dhcp6_parser.cc" +#line 799 "dhcp6_parser.cc" // lalr1.cc:907 break; case 28: -#line 282 "dhcp6_parser.yy" +#line 283 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.LOGGING; } -#line 809 "dhcp6_parser.cc" +#line 805 "dhcp6_parser.cc" // lalr1.cc:907 break; case 30: -#line 283 "dhcp6_parser.yy" +#line 284 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 815 "dhcp6_parser.cc" +#line 811 "dhcp6_parser.cc" // lalr1.cc:907 break; case 32: -#line 291 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 821 "dhcp6_parser.cc" +#line 292 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } +#line 817 "dhcp6_parser.cc" // lalr1.cc:907 break; case 33: -#line 292 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 827 "dhcp6_parser.cc" +#line 293 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } +#line 823 "dhcp6_parser.cc" // lalr1.cc:907 break; case 34: -#line 293 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 833 "dhcp6_parser.cc" +#line 294 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 829 "dhcp6_parser.cc" // lalr1.cc:907 break; case 35: -#line 294 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 839 "dhcp6_parser.cc" +#line 295 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } +#line 835 "dhcp6_parser.cc" // lalr1.cc:907 break; case 36: -#line 295 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 845 "dhcp6_parser.cc" +#line 296 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 841 "dhcp6_parser.cc" // lalr1.cc:907 break; case 37: -#line 296 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 851 "dhcp6_parser.cc" +#line 297 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 847 "dhcp6_parser.cc" // lalr1.cc:907 break; case 38: -#line 297 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 857 "dhcp6_parser.cc" +#line 298 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 853 "dhcp6_parser.cc" // lalr1.cc:907 break; case 39: -#line 300 "dhcp6_parser.yy" +#line 301 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 866 "dhcp6_parser.cc" +#line 862 "dhcp6_parser.cc" // lalr1.cc:907 break; case 40: -#line 305 "dhcp6_parser.yy" +#line 306 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 877 "dhcp6_parser.cc" +#line 873 "dhcp6_parser.cc" // lalr1.cc:907 break; case 41: -#line 310 "dhcp6_parser.yy" +#line 311 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 887 "dhcp6_parser.cc" +#line 883 "dhcp6_parser.cc" // lalr1.cc:907 break; case 42: -#line 316 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 893 "dhcp6_parser.cc" +#line 317 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 889 "dhcp6_parser.cc" // lalr1.cc:907 break; case 45: -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" // lalr1.cc:907 { // map containing a single entry - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 902 "dhcp6_parser.cc" +#line 898 "dhcp6_parser.cc" // lalr1.cc:907 break; case 46: -#line 327 "dhcp6_parser.yy" +#line 328 "dhcp6_parser.yy" // lalr1.cc:907 { // map consisting of a shorter map followed by // comma and string:value - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 912 "dhcp6_parser.cc" +#line 908 "dhcp6_parser.cc" // lalr1.cc:907 break; case 47: -#line 334 "dhcp6_parser.yy" +#line 335 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 921 "dhcp6_parser.cc" +#line 917 "dhcp6_parser.cc" // lalr1.cc:907 break; case 48: -#line 337 "dhcp6_parser.yy" +#line 338 "dhcp6_parser.yy" // lalr1.cc:907 { // list parsing complete. Put any sanity checking here } -#line 929 "dhcp6_parser.cc" +#line 925 "dhcp6_parser.cc" // lalr1.cc:907 break; case 51: -#line 345 "dhcp6_parser.yy" +#line 346 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 938 "dhcp6_parser.cc" +#line 934 "dhcp6_parser.cc" // lalr1.cc:907 break; case 52: -#line 349 "dhcp6_parser.yy" +#line 350 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 947 "dhcp6_parser.cc" +#line 943 "dhcp6_parser.cc" // lalr1.cc:907 break; case 53: -#line 356 "dhcp6_parser.yy" +#line 357 "dhcp6_parser.yy" // lalr1.cc:907 { // List parsing about to start } -#line 955 "dhcp6_parser.cc" +#line 951 "dhcp6_parser.cc" // lalr1.cc:907 break; case 54: -#line 358 "dhcp6_parser.yy" +#line 359 "dhcp6_parser.yy" // lalr1.cc:907 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 964 "dhcp6_parser.cc" +#line 960 "dhcp6_parser.cc" // lalr1.cc:907 break; case 57: -#line 367 "dhcp6_parser.yy" +#line 368 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 973 "dhcp6_parser.cc" +#line 969 "dhcp6_parser.cc" // lalr1.cc:907 break; case 58: -#line 371 "dhcp6_parser.yy" +#line 372 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 982 "dhcp6_parser.cc" +#line 978 "dhcp6_parser.cc" // lalr1.cc:907 break; case 59: -#line 382 "dhcp6_parser.yy" +#line 383 "dhcp6_parser.yy" // lalr1.cc:907 { 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 993 "dhcp6_parser.cc" +#line 989 "dhcp6_parser.cc" // lalr1.cc:907 break; case 60: -#line 392 "dhcp6_parser.yy" +#line 393 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 1004 "dhcp6_parser.cc" +#line 1000 "dhcp6_parser.cc" // lalr1.cc:907 break; case 61: -#line 397 "dhcp6_parser.yy" +#line 398 "dhcp6_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1013,11 +1009,11 @@ namespace isc { namespace dhcp { // Dhcp6 is required ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1017 "dhcp6_parser.cc" +#line 1013 "dhcp6_parser.cc" // lalr1.cc:907 break; case 70: -#line 420 "dhcp6_parser.yy" +#line 421 "dhcp6_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -1026,956 +1022,956 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 1030 "dhcp6_parser.cc" +#line 1026 "dhcp6_parser.cc" // lalr1.cc:907 break; case 71: -#line 427 "dhcp6_parser.yy" +#line 428 "dhcp6_parser.yy" // lalr1.cc:907 { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1040 "dhcp6_parser.cc" +#line 1036 "dhcp6_parser.cc" // lalr1.cc:907 break; case 72: -#line 435 "dhcp6_parser.yy" +#line 436 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1050 "dhcp6_parser.cc" +#line 1046 "dhcp6_parser.cc" // lalr1.cc:907 break; case 73: -#line 439 "dhcp6_parser.yy" +#line 440 "dhcp6_parser.yy" // lalr1.cc:907 { // No global parameter is required // parsing completed } -#line 1059 "dhcp6_parser.cc" +#line 1055 "dhcp6_parser.cc" // lalr1.cc:907 break; case 119: -#line 495 "dhcp6_parser.yy" +#line 496 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1067 "dhcp6_parser.cc" +#line 1063 "dhcp6_parser.cc" // lalr1.cc:907 break; case 120: -#line 497 "dhcp6_parser.yy" +#line 498 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 1077 "dhcp6_parser.cc" +#line 1073 "dhcp6_parser.cc" // lalr1.cc:907 break; case 121: -#line 503 "dhcp6_parser.yy" +#line 504 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1086 "dhcp6_parser.cc" +#line 1082 "dhcp6_parser.cc" // lalr1.cc:907 break; case 122: -#line 508 "dhcp6_parser.yy" +#line 509 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1095 "dhcp6_parser.cc" +#line 1091 "dhcp6_parser.cc" // lalr1.cc:907 break; case 123: -#line 513 "dhcp6_parser.yy" +#line 514 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1104 "dhcp6_parser.cc" +#line 1100 "dhcp6_parser.cc" // lalr1.cc:907 break; case 124: -#line 518 "dhcp6_parser.yy" +#line 519 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1113 "dhcp6_parser.cc" +#line 1109 "dhcp6_parser.cc" // lalr1.cc:907 break; case 125: -#line 523 "dhcp6_parser.yy" +#line 524 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1122 "dhcp6_parser.cc" +#line 1118 "dhcp6_parser.cc" // lalr1.cc:907 break; case 126: -#line 528 "dhcp6_parser.yy" +#line 529 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1131 "dhcp6_parser.cc" +#line 1127 "dhcp6_parser.cc" // lalr1.cc:907 break; case 127: -#line 533 "dhcp6_parser.yy" +#line 534 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1140 "dhcp6_parser.cc" +#line 1136 "dhcp6_parser.cc" // lalr1.cc:907 break; case 128: -#line 538 "dhcp6_parser.yy" +#line 539 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1149 "dhcp6_parser.cc" +#line 1145 "dhcp6_parser.cc" // lalr1.cc:907 break; case 129: -#line 543 "dhcp6_parser.yy" +#line 544 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1158 "dhcp6_parser.cc" +#line 1154 "dhcp6_parser.cc" // lalr1.cc:907 break; case 130: -#line 548 "dhcp6_parser.yy" +#line 549 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1167 "dhcp6_parser.cc" +#line 1163 "dhcp6_parser.cc" // lalr1.cc:907 break; case 131: -#line 553 "dhcp6_parser.yy" +#line 554 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1176 "dhcp6_parser.cc" +#line 1172 "dhcp6_parser.cc" // lalr1.cc:907 break; case 132: -#line 558 "dhcp6_parser.yy" +#line 559 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1185 "dhcp6_parser.cc" +#line 1181 "dhcp6_parser.cc" // lalr1.cc:907 break; case 133: -#line 563 "dhcp6_parser.yy" +#line 564 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1193 "dhcp6_parser.cc" +#line 1189 "dhcp6_parser.cc" // lalr1.cc:907 break; case 134: -#line 565 "dhcp6_parser.yy" +#line 566 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 1203 "dhcp6_parser.cc" +#line 1199 "dhcp6_parser.cc" // lalr1.cc:907 break; case 135: -#line 571 "dhcp6_parser.yy" +#line 572 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1214 "dhcp6_parser.cc" +#line 1210 "dhcp6_parser.cc" // lalr1.cc:907 break; case 136: -#line 576 "dhcp6_parser.yy" +#line 577 "dhcp6_parser.yy" // lalr1.cc:907 { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1224 "dhcp6_parser.cc" +#line 1220 "dhcp6_parser.cc" // lalr1.cc:907 break; case 137: -#line 582 "dhcp6_parser.yy" +#line 583 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1234 "dhcp6_parser.cc" +#line 1230 "dhcp6_parser.cc" // lalr1.cc:907 break; case 138: -#line 586 "dhcp6_parser.yy" +#line 587 "dhcp6_parser.yy" // lalr1.cc:907 { // No interfaces config param is required // parsing completed } -#line 1243 "dhcp6_parser.cc" +#line 1239 "dhcp6_parser.cc" // lalr1.cc:907 break; case 146: -#line 602 "dhcp6_parser.yy" +#line 603 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1254 "dhcp6_parser.cc" +#line 1250 "dhcp6_parser.cc" // lalr1.cc:907 break; case 147: -#line 607 "dhcp6_parser.yy" +#line 608 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1263 "dhcp6_parser.cc" +#line 1259 "dhcp6_parser.cc" // lalr1.cc:907 break; case 148: -#line 612 "dhcp6_parser.yy" +#line 613 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1272 "dhcp6_parser.cc" +#line 1268 "dhcp6_parser.cc" // lalr1.cc:907 break; case 149: -#line 618 "dhcp6_parser.yy" +#line 619 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1283 "dhcp6_parser.cc" +#line 1279 "dhcp6_parser.cc" // lalr1.cc:907 break; case 150: -#line 623 "dhcp6_parser.yy" +#line 624 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 1294 "dhcp6_parser.cc" +#line 1290 "dhcp6_parser.cc" // lalr1.cc:907 break; case 151: -#line 630 "dhcp6_parser.yy" +#line 631 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1305 "dhcp6_parser.cc" +#line 1301 "dhcp6_parser.cc" // lalr1.cc:907 break; case 152: -#line 635 "dhcp6_parser.yy" +#line 636 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 1316 "dhcp6_parser.cc" +#line 1312 "dhcp6_parser.cc" // lalr1.cc:907 break; case 153: -#line 642 "dhcp6_parser.yy" +#line 643 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1327 "dhcp6_parser.cc" +#line 1323 "dhcp6_parser.cc" // lalr1.cc:907 break; case 154: -#line 647 "dhcp6_parser.yy" +#line 648 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1336 "dhcp6_parser.cc" +#line 1332 "dhcp6_parser.cc" // lalr1.cc:907 break; case 159: -#line 660 "dhcp6_parser.yy" +#line 661 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1346 "dhcp6_parser.cc" +#line 1342 "dhcp6_parser.cc" // lalr1.cc:907 break; case 160: -#line 664 "dhcp6_parser.yy" +#line 665 "dhcp6_parser.yy" // lalr1.cc:907 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1356 "dhcp6_parser.cc" +#line 1352 "dhcp6_parser.cc" // lalr1.cc:907 break; case 183: -#line 696 "dhcp6_parser.yy" +#line 697 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.DATABASE_TYPE); } -#line 1364 "dhcp6_parser.cc" +#line 1360 "dhcp6_parser.cc" // lalr1.cc:907 break; case 184: -#line 698 "dhcp6_parser.yy" +#line 699 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1373 "dhcp6_parser.cc" +#line 1369 "dhcp6_parser.cc" // lalr1.cc:907 break; case 185: -#line 703 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1379 "dhcp6_parser.cc" +#line 704 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1375 "dhcp6_parser.cc" // lalr1.cc:907 break; case 186: -#line 704 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1385 "dhcp6_parser.cc" +#line 705 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1381 "dhcp6_parser.cc" // lalr1.cc:907 break; case 187: -#line 705 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1391 "dhcp6_parser.cc" +#line 706 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1387 "dhcp6_parser.cc" // lalr1.cc:907 break; case 188: -#line 706 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1397 "dhcp6_parser.cc" +#line 707 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1393 "dhcp6_parser.cc" // lalr1.cc:907 break; case 189: -#line 709 "dhcp6_parser.yy" +#line 710 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1405 "dhcp6_parser.cc" +#line 1401 "dhcp6_parser.cc" // lalr1.cc:907 break; case 190: -#line 711 "dhcp6_parser.yy" +#line 712 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1415 "dhcp6_parser.cc" +#line 1411 "dhcp6_parser.cc" // lalr1.cc:907 break; case 191: -#line 717 "dhcp6_parser.yy" +#line 718 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1423 "dhcp6_parser.cc" +#line 1419 "dhcp6_parser.cc" // lalr1.cc:907 break; case 192: -#line 719 "dhcp6_parser.yy" +#line 720 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1433 "dhcp6_parser.cc" +#line 1429 "dhcp6_parser.cc" // lalr1.cc:907 break; case 193: -#line 725 "dhcp6_parser.yy" +#line 726 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1441 "dhcp6_parser.cc" +#line 1437 "dhcp6_parser.cc" // lalr1.cc:907 break; case 194: -#line 727 "dhcp6_parser.yy" +#line 728 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1451 "dhcp6_parser.cc" +#line 1447 "dhcp6_parser.cc" // lalr1.cc:907 break; case 195: -#line 733 "dhcp6_parser.yy" +#line 734 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1460 "dhcp6_parser.cc" +#line 1456 "dhcp6_parser.cc" // lalr1.cc:907 break; case 196: -#line 738 "dhcp6_parser.yy" +#line 739 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1468 "dhcp6_parser.cc" +#line 1464 "dhcp6_parser.cc" // lalr1.cc:907 break; case 197: -#line 740 "dhcp6_parser.yy" +#line 741 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1478 "dhcp6_parser.cc" +#line 1474 "dhcp6_parser.cc" // lalr1.cc:907 break; case 198: -#line 746 "dhcp6_parser.yy" +#line 747 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1487 "dhcp6_parser.cc" +#line 1483 "dhcp6_parser.cc" // lalr1.cc:907 break; case 199: -#line 751 "dhcp6_parser.yy" +#line 752 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1496 "dhcp6_parser.cc" +#line 1492 "dhcp6_parser.cc" // lalr1.cc:907 break; case 200: -#line 756 "dhcp6_parser.yy" +#line 757 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1505 "dhcp6_parser.cc" +#line 1501 "dhcp6_parser.cc" // lalr1.cc:907 break; case 201: -#line 761 "dhcp6_parser.yy" +#line 762 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1514 "dhcp6_parser.cc" +#line 1510 "dhcp6_parser.cc" // lalr1.cc:907 break; case 202: -#line 766 "dhcp6_parser.yy" +#line 767 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1523 "dhcp6_parser.cc" +#line 1519 "dhcp6_parser.cc" // lalr1.cc:907 break; case 203: -#line 771 "dhcp6_parser.yy" +#line 772 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1532 "dhcp6_parser.cc" +#line 1528 "dhcp6_parser.cc" // lalr1.cc:907 break; case 204: -#line 776 "dhcp6_parser.yy" +#line 777 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1541 "dhcp6_parser.cc" +#line 1537 "dhcp6_parser.cc" // lalr1.cc:907 break; case 205: -#line 781 "dhcp6_parser.yy" +#line 782 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1550 "dhcp6_parser.cc" +#line 1546 "dhcp6_parser.cc" // lalr1.cc:907 break; case 206: -#line 786 "dhcp6_parser.yy" +#line 787 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1558 "dhcp6_parser.cc" +#line 1554 "dhcp6_parser.cc" // lalr1.cc:907 break; case 207: -#line 788 "dhcp6_parser.yy" +#line 789 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 1568 "dhcp6_parser.cc" +#line 1564 "dhcp6_parser.cc" // lalr1.cc:907 break; case 208: -#line 794 "dhcp6_parser.yy" +#line 795 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1577 "dhcp6_parser.cc" +#line 1573 "dhcp6_parser.cc" // lalr1.cc:907 break; case 209: -#line 799 "dhcp6_parser.yy" +#line 800 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1585 "dhcp6_parser.cc" +#line 1581 "dhcp6_parser.cc" // lalr1.cc:907 break; case 210: -#line 801 "dhcp6_parser.yy" +#line 802 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1595 "dhcp6_parser.cc" +#line 1591 "dhcp6_parser.cc" // lalr1.cc:907 break; case 211: -#line 807 "dhcp6_parser.yy" +#line 808 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1603 "dhcp6_parser.cc" +#line 1599 "dhcp6_parser.cc" // lalr1.cc:907 break; case 212: -#line 809 "dhcp6_parser.yy" +#line 810 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1613 "dhcp6_parser.cc" +#line 1609 "dhcp6_parser.cc" // lalr1.cc:907 break; case 213: -#line 815 "dhcp6_parser.yy" +#line 816 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1621 "dhcp6_parser.cc" +#line 1617 "dhcp6_parser.cc" // lalr1.cc:907 break; case 214: -#line 817 "dhcp6_parser.yy" +#line 818 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 1631 "dhcp6_parser.cc" +#line 1627 "dhcp6_parser.cc" // lalr1.cc:907 break; case 215: -#line 823 "dhcp6_parser.yy" +#line 824 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1642 "dhcp6_parser.cc" +#line 1638 "dhcp6_parser.cc" // lalr1.cc:907 break; case 216: -#line 828 "dhcp6_parser.yy" +#line 829 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1651 "dhcp6_parser.cc" +#line 1647 "dhcp6_parser.cc" // lalr1.cc:907 break; case 220: -#line 838 "dhcp6_parser.yy" +#line 839 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1659 "dhcp6_parser.cc" +#line 1655 "dhcp6_parser.cc" // lalr1.cc:907 break; case 221: -#line 840 "dhcp6_parser.yy" +#line 841 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1679 "dhcp6_parser.cc" +#line 1675 "dhcp6_parser.cc" // lalr1.cc:907 break; case 222: -#line 856 "dhcp6_parser.yy" +#line 857 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1690 "dhcp6_parser.cc" +#line 1686 "dhcp6_parser.cc" // lalr1.cc:907 break; case 223: -#line 861 "dhcp6_parser.yy" +#line 862 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1699 "dhcp6_parser.cc" +#line 1695 "dhcp6_parser.cc" // lalr1.cc:907 break; case 228: -#line 874 "dhcp6_parser.yy" +#line 875 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1708 "dhcp6_parser.cc" +#line 1704 "dhcp6_parser.cc" // lalr1.cc:907 break; case 229: -#line 879 "dhcp6_parser.yy" +#line 880 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1717 "dhcp6_parser.cc" +#line 1713 "dhcp6_parser.cc" // lalr1.cc:907 break; case 230: -#line 884 "dhcp6_parser.yy" +#line 885 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1728 "dhcp6_parser.cc" +#line 1724 "dhcp6_parser.cc" // lalr1.cc:907 break; case 231: -#line 889 "dhcp6_parser.yy" +#line 890 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1737 "dhcp6_parser.cc" +#line 1733 "dhcp6_parser.cc" // lalr1.cc:907 break; case 237: -#line 903 "dhcp6_parser.yy" +#line 904 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1746 "dhcp6_parser.cc" +#line 1742 "dhcp6_parser.cc" // lalr1.cc:907 break; case 238: -#line 908 "dhcp6_parser.yy" +#line 909 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 1755 "dhcp6_parser.cc" +#line 1751 "dhcp6_parser.cc" // lalr1.cc:907 break; case 239: -#line 915 "dhcp6_parser.yy" +#line 916 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1766 "dhcp6_parser.cc" +#line 1762 "dhcp6_parser.cc" // lalr1.cc:907 break; case 240: -#line 920 "dhcp6_parser.yy" +#line 921 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1775 "dhcp6_parser.cc" +#line 1771 "dhcp6_parser.cc" // lalr1.cc:907 break; case 241: -#line 925 "dhcp6_parser.yy" +#line 926 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1786 "dhcp6_parser.cc" +#line 1782 "dhcp6_parser.cc" // lalr1.cc:907 break; case 242: -#line 930 "dhcp6_parser.yy" +#line 931 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1795 "dhcp6_parser.cc" +#line 1791 "dhcp6_parser.cc" // lalr1.cc:907 break; case 247: -#line 943 "dhcp6_parser.yy" +#line 944 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1805 "dhcp6_parser.cc" +#line 1801 "dhcp6_parser.cc" // lalr1.cc:907 break; case 248: -#line 947 "dhcp6_parser.yy" +#line 948 "dhcp6_parser.yy" // lalr1.cc:907 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1815 "dhcp6_parser.cc" +#line 1811 "dhcp6_parser.cc" // lalr1.cc:907 break; case 249: -#line 953 "dhcp6_parser.yy" +#line 954 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1825 "dhcp6_parser.cc" +#line 1821 "dhcp6_parser.cc" // lalr1.cc:907 break; case 250: -#line 957 "dhcp6_parser.yy" +#line 958 "dhcp6_parser.yy" // lalr1.cc:907 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1835 "dhcp6_parser.cc" +#line 1831 "dhcp6_parser.cc" // lalr1.cc:907 break; case 256: -#line 972 "dhcp6_parser.yy" +#line 973 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1843 "dhcp6_parser.cc" +#line 1839 "dhcp6_parser.cc" // lalr1.cc:907 break; case 257: -#line 974 "dhcp6_parser.yy" +#line 975 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1853 "dhcp6_parser.cc" +#line 1849 "dhcp6_parser.cc" // lalr1.cc:907 break; case 258: -#line 980 "dhcp6_parser.yy" +#line 981 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1861 "dhcp6_parser.cc" +#line 1857 "dhcp6_parser.cc" // lalr1.cc:907 break; case 259: -#line 982 "dhcp6_parser.yy" +#line 983 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1870 "dhcp6_parser.cc" +#line 1866 "dhcp6_parser.cc" // lalr1.cc:907 break; case 260: -#line 988 "dhcp6_parser.yy" +#line 989 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1881 "dhcp6_parser.cc" +#line 1877 "dhcp6_parser.cc" // lalr1.cc:907 break; case 261: -#line 993 "dhcp6_parser.yy" +#line 994 "dhcp6_parser.yy" // lalr1.cc:907 { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1891 "dhcp6_parser.cc" +#line 1887 "dhcp6_parser.cc" // lalr1.cc:907 break; case 270: -#line 1011 "dhcp6_parser.yy" +#line 1012 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1900 "dhcp6_parser.cc" +#line 1896 "dhcp6_parser.cc" // lalr1.cc:907 break; case 271: -#line 1016 "dhcp6_parser.yy" +#line 1017 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1909 "dhcp6_parser.cc" +#line 1905 "dhcp6_parser.cc" // lalr1.cc:907 break; case 272: -#line 1021 "dhcp6_parser.yy" +#line 1022 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1918 "dhcp6_parser.cc" +#line 1914 "dhcp6_parser.cc" // lalr1.cc:907 break; case 273: -#line 1026 "dhcp6_parser.yy" +#line 1027 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1927 "dhcp6_parser.cc" +#line 1923 "dhcp6_parser.cc" // lalr1.cc:907 break; case 274: -#line 1031 "dhcp6_parser.yy" +#line 1032 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1936 "dhcp6_parser.cc" +#line 1932 "dhcp6_parser.cc" // lalr1.cc:907 break; case 275: -#line 1036 "dhcp6_parser.yy" +#line 1037 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 1945 "dhcp6_parser.cc" +#line 1941 "dhcp6_parser.cc" // lalr1.cc:907 break; case 276: -#line 1044 "dhcp6_parser.yy" +#line 1045 "dhcp6_parser.yy" // lalr1.cc:907 { 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 1956 "dhcp6_parser.cc" +#line 1952 "dhcp6_parser.cc" // lalr1.cc:907 break; case 277: -#line 1049 "dhcp6_parser.yy" +#line 1050 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1965 "dhcp6_parser.cc" +#line 1961 "dhcp6_parser.cc" // lalr1.cc:907 break; case 282: -#line 1069 "dhcp6_parser.yy" +#line 1070 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1975 "dhcp6_parser.cc" +#line 1971 "dhcp6_parser.cc" // lalr1.cc:907 break; case 283: -#line 1073 "dhcp6_parser.yy" +#line 1074 "dhcp6_parser.yy" // lalr1.cc:907 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1997,267 +1993,267 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2001 "dhcp6_parser.cc" +#line 1997 "dhcp6_parser.cc" // lalr1.cc:907 break; case 284: -#line 1095 "dhcp6_parser.yy" +#line 1096 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2011 "dhcp6_parser.cc" +#line 2007 "dhcp6_parser.cc" // lalr1.cc:907 break; case 285: -#line 1099 "dhcp6_parser.yy" +#line 1100 "dhcp6_parser.yy" // lalr1.cc:907 { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2021 "dhcp6_parser.cc" +#line 2017 "dhcp6_parser.cc" // lalr1.cc:907 break; case 315: -#line 1140 "dhcp6_parser.yy" +#line 1141 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2029 "dhcp6_parser.cc" +#line 2025 "dhcp6_parser.cc" // lalr1.cc:907 break; case 316: -#line 1142 "dhcp6_parser.yy" +#line 1143 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2039 "dhcp6_parser.cc" +#line 2035 "dhcp6_parser.cc" // lalr1.cc:907 break; case 317: -#line 1148 "dhcp6_parser.yy" +#line 1149 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2047 "dhcp6_parser.cc" +#line 2043 "dhcp6_parser.cc" // lalr1.cc:907 break; case 318: -#line 1150 "dhcp6_parser.yy" +#line 1151 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2057 "dhcp6_parser.cc" +#line 2053 "dhcp6_parser.cc" // lalr1.cc:907 break; case 319: -#line 1156 "dhcp6_parser.yy" +#line 1157 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2065 "dhcp6_parser.cc" +#line 2061 "dhcp6_parser.cc" // lalr1.cc:907 break; case 320: -#line 1158 "dhcp6_parser.yy" +#line 1159 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2075 "dhcp6_parser.cc" +#line 2071 "dhcp6_parser.cc" // lalr1.cc:907 break; case 321: -#line 1164 "dhcp6_parser.yy" +#line 1165 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2083 "dhcp6_parser.cc" +#line 2079 "dhcp6_parser.cc" // lalr1.cc:907 break; case 322: -#line 1166 "dhcp6_parser.yy" +#line 1167 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2093 "dhcp6_parser.cc" +#line 2089 "dhcp6_parser.cc" // lalr1.cc:907 break; case 323: -#line 1172 "dhcp6_parser.yy" +#line 1173 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2104 "dhcp6_parser.cc" +#line 2100 "dhcp6_parser.cc" // lalr1.cc:907 break; case 324: -#line 1177 "dhcp6_parser.yy" +#line 1178 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2113 "dhcp6_parser.cc" +#line 2109 "dhcp6_parser.cc" // lalr1.cc:907 break; case 325: -#line 1182 "dhcp6_parser.yy" +#line 1183 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.RESERVATION_MODE); } -#line 2121 "dhcp6_parser.cc" +#line 2117 "dhcp6_parser.cc" // lalr1.cc:907 break; case 326: -#line 1184 "dhcp6_parser.yy" +#line 1185 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2130 "dhcp6_parser.cc" +#line 2126 "dhcp6_parser.cc" // lalr1.cc:907 break; case 327: -#line 1189 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2136 "dhcp6_parser.cc" +#line 1190 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } +#line 2132 "dhcp6_parser.cc" // lalr1.cc:907 break; case 328: -#line 1190 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2142 "dhcp6_parser.cc" +#line 1191 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } +#line 2138 "dhcp6_parser.cc" // lalr1.cc:907 break; case 329: -#line 1191 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2148 "dhcp6_parser.cc" +#line 1192 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } +#line 2144 "dhcp6_parser.cc" // lalr1.cc:907 break; case 330: -#line 1192 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2154 "dhcp6_parser.cc" +#line 1193 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } +#line 2150 "dhcp6_parser.cc" // lalr1.cc:907 break; case 331: -#line 1195 "dhcp6_parser.yy" +#line 1196 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2163 "dhcp6_parser.cc" +#line 2159 "dhcp6_parser.cc" // lalr1.cc:907 break; case 332: -#line 1200 "dhcp6_parser.yy" +#line 1201 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2172 "dhcp6_parser.cc" +#line 2168 "dhcp6_parser.cc" // lalr1.cc:907 break; case 333: -#line 1208 "dhcp6_parser.yy" +#line 1209 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2183 "dhcp6_parser.cc" +#line 2179 "dhcp6_parser.cc" // lalr1.cc:907 break; case 334: -#line 1213 "dhcp6_parser.yy" +#line 1214 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2192 "dhcp6_parser.cc" +#line 2188 "dhcp6_parser.cc" // lalr1.cc:907 break; case 339: -#line 1228 "dhcp6_parser.yy" +#line 1229 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2202 "dhcp6_parser.cc" +#line 2198 "dhcp6_parser.cc" // lalr1.cc:907 break; case 340: -#line 1232 "dhcp6_parser.yy" +#line 1233 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 2210 "dhcp6_parser.cc" +#line 2206 "dhcp6_parser.cc" // lalr1.cc:907 break; case 367: -#line 1270 "dhcp6_parser.yy" +#line 1271 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2221 "dhcp6_parser.cc" +#line 2217 "dhcp6_parser.cc" // lalr1.cc:907 break; case 368: -#line 1275 "dhcp6_parser.yy" +#line 1276 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2230 "dhcp6_parser.cc" +#line 2226 "dhcp6_parser.cc" // lalr1.cc:907 break; case 369: -#line 1283 "dhcp6_parser.yy" +#line 1284 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2239 "dhcp6_parser.cc" +#line 2235 "dhcp6_parser.cc" // lalr1.cc:907 break; case 370: -#line 1286 "dhcp6_parser.yy" +#line 1287 "dhcp6_parser.yy" // lalr1.cc:907 { // parsing completed } -#line 2247 "dhcp6_parser.cc" +#line 2243 "dhcp6_parser.cc" // lalr1.cc:907 break; case 375: -#line 1302 "dhcp6_parser.yy" +#line 1303 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2257 "dhcp6_parser.cc" +#line 2253 "dhcp6_parser.cc" // lalr1.cc:907 break; case 376: -#line 1306 "dhcp6_parser.yy" +#line 1307 "dhcp6_parser.yy" // lalr1.cc:907 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2265,21 +2261,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2269 "dhcp6_parser.cc" +#line 2265 "dhcp6_parser.cc" // lalr1.cc:907 break; case 377: -#line 1317 "dhcp6_parser.yy" +#line 1318 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2279 "dhcp6_parser.cc" +#line 2275 "dhcp6_parser.cc" // lalr1.cc:907 break; case 378: -#line 1321 "dhcp6_parser.yy" +#line 1322 "dhcp6_parser.yy" // lalr1.cc:907 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2287,283 +2283,283 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2291 "dhcp6_parser.cc" +#line 2287 "dhcp6_parser.cc" // lalr1.cc:907 break; case 394: -#line 1353 "dhcp6_parser.yy" +#line 1354 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2300 "dhcp6_parser.cc" +#line 2296 "dhcp6_parser.cc" // lalr1.cc:907 break; case 396: -#line 1360 "dhcp6_parser.yy" +#line 1361 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2308 "dhcp6_parser.cc" +#line 2304 "dhcp6_parser.cc" // lalr1.cc:907 break; case 397: -#line 1362 "dhcp6_parser.yy" +#line 1363 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2318 "dhcp6_parser.cc" +#line 2314 "dhcp6_parser.cc" // lalr1.cc:907 break; case 398: -#line 1368 "dhcp6_parser.yy" +#line 1369 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2326 "dhcp6_parser.cc" +#line 2322 "dhcp6_parser.cc" // lalr1.cc:907 break; case 399: -#line 1370 "dhcp6_parser.yy" +#line 1371 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2336 "dhcp6_parser.cc" +#line 2332 "dhcp6_parser.cc" // lalr1.cc:907 break; case 400: -#line 1376 "dhcp6_parser.yy" +#line 1377 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2344 "dhcp6_parser.cc" +#line 2340 "dhcp6_parser.cc" // lalr1.cc:907 break; case 401: -#line 1378 "dhcp6_parser.yy" +#line 1379 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2354 "dhcp6_parser.cc" +#line 2350 "dhcp6_parser.cc" // lalr1.cc:907 break; case 403: -#line 1386 "dhcp6_parser.yy" +#line 1387 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2362 "dhcp6_parser.cc" +#line 2358 "dhcp6_parser.cc" // lalr1.cc:907 break; case 404: -#line 1388 "dhcp6_parser.yy" +#line 1389 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2372 "dhcp6_parser.cc" +#line 2368 "dhcp6_parser.cc" // lalr1.cc:907 break; case 405: -#line 1394 "dhcp6_parser.yy" +#line 1395 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2381 "dhcp6_parser.cc" +#line 2377 "dhcp6_parser.cc" // lalr1.cc:907 break; case 406: -#line 1403 "dhcp6_parser.yy" +#line 1404 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2392 "dhcp6_parser.cc" +#line 2388 "dhcp6_parser.cc" // lalr1.cc:907 break; case 407: -#line 1408 "dhcp6_parser.yy" +#line 1409 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2401 "dhcp6_parser.cc" +#line 2397 "dhcp6_parser.cc" // lalr1.cc:907 break; case 412: -#line 1427 "dhcp6_parser.yy" +#line 1428 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2411 "dhcp6_parser.cc" +#line 2407 "dhcp6_parser.cc" // lalr1.cc:907 break; case 413: -#line 1431 "dhcp6_parser.yy" +#line 1432 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2420 "dhcp6_parser.cc" +#line 2416 "dhcp6_parser.cc" // lalr1.cc:907 break; case 414: -#line 1439 "dhcp6_parser.yy" +#line 1440 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2430 "dhcp6_parser.cc" +#line 2426 "dhcp6_parser.cc" // lalr1.cc:907 break; case 415: -#line 1443 "dhcp6_parser.yy" +#line 1444 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: the code or name parameters are required. // parsing completed } -#line 2439 "dhcp6_parser.cc" +#line 2435 "dhcp6_parser.cc" // lalr1.cc:907 break; case 430: -#line 1476 "dhcp6_parser.yy" +#line 1477 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2447 "dhcp6_parser.cc" +#line 2443 "dhcp6_parser.cc" // lalr1.cc:907 break; case 431: -#line 1478 "dhcp6_parser.yy" +#line 1479 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2457 "dhcp6_parser.cc" +#line 2453 "dhcp6_parser.cc" // lalr1.cc:907 break; case 434: -#line 1488 "dhcp6_parser.yy" +#line 1489 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2466 "dhcp6_parser.cc" +#line 2462 "dhcp6_parser.cc" // lalr1.cc:907 break; case 435: -#line 1493 "dhcp6_parser.yy" +#line 1494 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2475 "dhcp6_parser.cc" +#line 2471 "dhcp6_parser.cc" // lalr1.cc:907 break; case 436: -#line 1501 "dhcp6_parser.yy" +#line 1502 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2486 "dhcp6_parser.cc" +#line 2482 "dhcp6_parser.cc" // lalr1.cc:907 break; case 437: -#line 1506 "dhcp6_parser.yy" +#line 1507 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2495 "dhcp6_parser.cc" +#line 2491 "dhcp6_parser.cc" // lalr1.cc:907 break; case 442: -#line 1521 "dhcp6_parser.yy" +#line 1522 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2505 "dhcp6_parser.cc" +#line 2501 "dhcp6_parser.cc" // lalr1.cc:907 break; case 443: -#line 1525 "dhcp6_parser.yy" +#line 1526 "dhcp6_parser.yy" // lalr1.cc:907 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2515 "dhcp6_parser.cc" +#line 2511 "dhcp6_parser.cc" // lalr1.cc:907 break; case 444: -#line 1531 "dhcp6_parser.yy" +#line 1532 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2525 "dhcp6_parser.cc" +#line 2521 "dhcp6_parser.cc" // lalr1.cc:907 break; case 445: -#line 1535 "dhcp6_parser.yy" +#line 1536 "dhcp6_parser.yy" // lalr1.cc:907 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 2534 "dhcp6_parser.cc" +#line 2530 "dhcp6_parser.cc" // lalr1.cc:907 break; case 455: -#line 1553 "dhcp6_parser.yy" +#line 1554 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2542 "dhcp6_parser.cc" +#line 2538 "dhcp6_parser.cc" // lalr1.cc:907 break; case 456: -#line 1555 "dhcp6_parser.yy" +#line 1556 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2552 "dhcp6_parser.cc" +#line 2548 "dhcp6_parser.cc" // lalr1.cc:907 break; case 457: -#line 1561 "dhcp6_parser.yy" +#line 1562 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2560 "dhcp6_parser.cc" +#line 2556 "dhcp6_parser.cc" // lalr1.cc:907 break; case 458: -#line 1563 "dhcp6_parser.yy" +#line 1564 "dhcp6_parser.yy" // lalr1.cc:907 { 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 @@ -2583,23 +2579,23 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2587 "dhcp6_parser.cc" +#line 2583 "dhcp6_parser.cc" // lalr1.cc:907 break; case 459: -#line 1586 "dhcp6_parser.yy" +#line 1587 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2595 "dhcp6_parser.cc" +#line 2591 "dhcp6_parser.cc" // lalr1.cc:907 break; case 460: -#line 1588 "dhcp6_parser.yy" +#line 1589 "dhcp6_parser.yy" // lalr1.cc:907 { 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 @@ -2620,41 +2616,41 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2624 "dhcp6_parser.cc" +#line 2620 "dhcp6_parser.cc" // lalr1.cc:907 break; case 461: -#line 1616 "dhcp6_parser.yy" +#line 1617 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2635 "dhcp6_parser.cc" +#line 2631 "dhcp6_parser.cc" // lalr1.cc:907 break; case 462: -#line 1621 "dhcp6_parser.yy" +#line 1622 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2644 "dhcp6_parser.cc" +#line 2640 "dhcp6_parser.cc" // lalr1.cc:907 break; case 467: -#line 1636 "dhcp6_parser.yy" +#line 1637 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2654 "dhcp6_parser.cc" +#line 2650 "dhcp6_parser.cc" // lalr1.cc:907 break; case 468: -#line 1640 "dhcp6_parser.yy" +#line 1641 "dhcp6_parser.yy" // lalr1.cc:907 { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2662,21 +2658,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2666 "dhcp6_parser.cc" +#line 2662 "dhcp6_parser.cc" // lalr1.cc:907 break; case 469: -#line 1648 "dhcp6_parser.yy" +#line 1649 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2676 "dhcp6_parser.cc" +#line 2672 "dhcp6_parser.cc" // lalr1.cc:907 break; case 470: -#line 1652 "dhcp6_parser.yy" +#line 1653 "dhcp6_parser.yy" // lalr1.cc:907 { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2684,546 +2680,546 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2688 "dhcp6_parser.cc" +#line 2684 "dhcp6_parser.cc" // lalr1.cc:907 break; case 484: -#line 1677 "dhcp6_parser.yy" +#line 1678 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2696 "dhcp6_parser.cc" +#line 2692 "dhcp6_parser.cc" // lalr1.cc:907 break; case 485: -#line 1679 "dhcp6_parser.yy" +#line 1680 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 2706 "dhcp6_parser.cc" +#line 2702 "dhcp6_parser.cc" // lalr1.cc:907 break; case 486: -#line 1685 "dhcp6_parser.yy" +#line 1686 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2715 "dhcp6_parser.cc" +#line 2711 "dhcp6_parser.cc" // lalr1.cc:907 break; case 487: -#line 1690 "dhcp6_parser.yy" +#line 1691 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2723 "dhcp6_parser.cc" +#line 2719 "dhcp6_parser.cc" // lalr1.cc:907 break; case 488: -#line 1692 "dhcp6_parser.yy" +#line 1693 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2733 "dhcp6_parser.cc" +#line 2729 "dhcp6_parser.cc" // lalr1.cc:907 break; case 489: -#line 1698 "dhcp6_parser.yy" +#line 1699 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2742 "dhcp6_parser.cc" +#line 2738 "dhcp6_parser.cc" // lalr1.cc:907 break; case 490: -#line 1703 "dhcp6_parser.yy" +#line 1704 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 2751 "dhcp6_parser.cc" +#line 2747 "dhcp6_parser.cc" // lalr1.cc:907 break; case 491: -#line 1711 "dhcp6_parser.yy" +#line 1712 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2762 "dhcp6_parser.cc" +#line 2758 "dhcp6_parser.cc" // lalr1.cc:907 break; case 492: -#line 1716 "dhcp6_parser.yy" +#line 1717 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2771 "dhcp6_parser.cc" +#line 2767 "dhcp6_parser.cc" // lalr1.cc:907 break; case 497: -#line 1729 "dhcp6_parser.yy" +#line 1730 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2781 "dhcp6_parser.cc" +#line 2777 "dhcp6_parser.cc" // lalr1.cc:907 break; case 498: -#line 1733 "dhcp6_parser.yy" +#line 1734 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2790 "dhcp6_parser.cc" +#line 2786 "dhcp6_parser.cc" // lalr1.cc:907 break; case 499: -#line 1738 "dhcp6_parser.yy" +#line 1739 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2800 "dhcp6_parser.cc" +#line 2796 "dhcp6_parser.cc" // lalr1.cc:907 break; case 500: -#line 1742 "dhcp6_parser.yy" +#line 1743 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: an identifier parameter is required. // parsing completed } -#line 2809 "dhcp6_parser.cc" +#line 2805 "dhcp6_parser.cc" // lalr1.cc:907 break; case 516: -#line 1769 "dhcp6_parser.yy" +#line 1770 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2820 "dhcp6_parser.cc" +#line 2816 "dhcp6_parser.cc" // lalr1.cc:907 break; case 517: -#line 1774 "dhcp6_parser.yy" +#line 1775 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2829 "dhcp6_parser.cc" +#line 2825 "dhcp6_parser.cc" // lalr1.cc:907 break; case 518: -#line 1779 "dhcp6_parser.yy" +#line 1780 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2840 "dhcp6_parser.cc" +#line 2836 "dhcp6_parser.cc" // lalr1.cc:907 break; case 519: -#line 1784 "dhcp6_parser.yy" +#line 1785 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2849 "dhcp6_parser.cc" +#line 2845 "dhcp6_parser.cc" // lalr1.cc:907 break; case 520: -#line 1789 "dhcp6_parser.yy" +#line 1790 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2857 "dhcp6_parser.cc" +#line 2853 "dhcp6_parser.cc" // lalr1.cc:907 break; case 521: -#line 1791 "dhcp6_parser.yy" +#line 1792 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2867 "dhcp6_parser.cc" +#line 2863 "dhcp6_parser.cc" // lalr1.cc:907 break; case 522: -#line 1797 "dhcp6_parser.yy" +#line 1798 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2875 "dhcp6_parser.cc" +#line 2871 "dhcp6_parser.cc" // lalr1.cc:907 break; case 523: -#line 1799 "dhcp6_parser.yy" +#line 1800 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2885 "dhcp6_parser.cc" +#line 2881 "dhcp6_parser.cc" // lalr1.cc:907 break; case 524: -#line 1805 "dhcp6_parser.yy" +#line 1806 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2893 "dhcp6_parser.cc" +#line 2889 "dhcp6_parser.cc" // lalr1.cc:907 break; case 525: -#line 1807 "dhcp6_parser.yy" +#line 1808 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2903 "dhcp6_parser.cc" +#line 2899 "dhcp6_parser.cc" // lalr1.cc:907 break; case 526: -#line 1813 "dhcp6_parser.yy" +#line 1814 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2911 "dhcp6_parser.cc" +#line 2907 "dhcp6_parser.cc" // lalr1.cc:907 break; case 527: -#line 1815 "dhcp6_parser.yy" +#line 1816 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2921 "dhcp6_parser.cc" +#line 2917 "dhcp6_parser.cc" // lalr1.cc:907 break; case 528: -#line 1821 "dhcp6_parser.yy" +#line 1822 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2932 "dhcp6_parser.cc" +#line 2928 "dhcp6_parser.cc" // lalr1.cc:907 break; case 529: -#line 1826 "dhcp6_parser.yy" +#line 1827 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2941 "dhcp6_parser.cc" +#line 2937 "dhcp6_parser.cc" // lalr1.cc:907 break; case 530: -#line 1834 "dhcp6_parser.yy" +#line 1835 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2952 "dhcp6_parser.cc" +#line 2948 "dhcp6_parser.cc" // lalr1.cc:907 break; case 531: -#line 1839 "dhcp6_parser.yy" +#line 1840 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2961 "dhcp6_parser.cc" +#line 2957 "dhcp6_parser.cc" // lalr1.cc:907 break; case 534: -#line 1848 "dhcp6_parser.yy" +#line 1849 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2969 "dhcp6_parser.cc" +#line 2965 "dhcp6_parser.cc" // lalr1.cc:907 break; case 535: -#line 1850 "dhcp6_parser.yy" +#line 1851 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 2979 "dhcp6_parser.cc" +#line 2975 "dhcp6_parser.cc" // lalr1.cc:907 break; case 536: -#line 1859 "dhcp6_parser.yy" +#line 1860 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2990 "dhcp6_parser.cc" +#line 2986 "dhcp6_parser.cc" // lalr1.cc:907 break; case 537: -#line 1864 "dhcp6_parser.yy" +#line 1865 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2999 "dhcp6_parser.cc" +#line 2995 "dhcp6_parser.cc" // lalr1.cc:907 break; case 540: -#line 1873 "dhcp6_parser.yy" +#line 1874 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3009 "dhcp6_parser.cc" +#line 3005 "dhcp6_parser.cc" // lalr1.cc:907 break; case 541: -#line 1877 "dhcp6_parser.yy" +#line 1878 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3019 "dhcp6_parser.cc" +#line 3015 "dhcp6_parser.cc" // lalr1.cc:907 break; case 554: -#line 1902 "dhcp6_parser.yy" +#line 1903 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3027 "dhcp6_parser.cc" +#line 3023 "dhcp6_parser.cc" // lalr1.cc:907 break; case 555: -#line 1904 "dhcp6_parser.yy" +#line 1905 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3037 "dhcp6_parser.cc" +#line 3033 "dhcp6_parser.cc" // lalr1.cc:907 break; case 556: -#line 1910 "dhcp6_parser.yy" +#line 1911 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3046 "dhcp6_parser.cc" +#line 3042 "dhcp6_parser.cc" // lalr1.cc:907 break; case 557: -#line 1918 "dhcp6_parser.yy" +#line 1919 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3057 "dhcp6_parser.cc" +#line 3053 "dhcp6_parser.cc" // lalr1.cc:907 break; case 558: -#line 1923 "dhcp6_parser.yy" +#line 1924 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3068 "dhcp6_parser.cc" +#line 3064 "dhcp6_parser.cc" // lalr1.cc:907 break; case 570: -#line 1945 "dhcp6_parser.yy" +#line 1946 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.DUID_TYPE); } -#line 3076 "dhcp6_parser.cc" +#line 3072 "dhcp6_parser.cc" // lalr1.cc:907 break; case 571: -#line 1947 "dhcp6_parser.yy" +#line 1948 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3085 "dhcp6_parser.cc" +#line 3081 "dhcp6_parser.cc" // lalr1.cc:907 break; case 572: -#line 1952 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3091 "dhcp6_parser.cc" +#line 1953 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } +#line 3087 "dhcp6_parser.cc" // lalr1.cc:907 break; case 573: -#line 1953 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3097 "dhcp6_parser.cc" +#line 1954 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } +#line 3093 "dhcp6_parser.cc" // lalr1.cc:907 break; case 574: -#line 1954 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3103 "dhcp6_parser.cc" +#line 1955 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } +#line 3099 "dhcp6_parser.cc" // lalr1.cc:907 break; case 575: -#line 1957 "dhcp6_parser.yy" +#line 1958 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3112 "dhcp6_parser.cc" +#line 3108 "dhcp6_parser.cc" // lalr1.cc:907 break; case 576: -#line 1962 "dhcp6_parser.yy" +#line 1963 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3120 "dhcp6_parser.cc" +#line 3116 "dhcp6_parser.cc" // lalr1.cc:907 break; case 577: -#line 1964 "dhcp6_parser.yy" +#line 1965 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3130 "dhcp6_parser.cc" +#line 3126 "dhcp6_parser.cc" // lalr1.cc:907 break; case 578: -#line 1970 "dhcp6_parser.yy" +#line 1971 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3139 "dhcp6_parser.cc" +#line 3135 "dhcp6_parser.cc" // lalr1.cc:907 break; case 579: -#line 1975 "dhcp6_parser.yy" +#line 1976 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3148 "dhcp6_parser.cc" +#line 3144 "dhcp6_parser.cc" // lalr1.cc:907 break; case 580: -#line 1982 "dhcp6_parser.yy" +#line 1983 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3157 "dhcp6_parser.cc" +#line 3153 "dhcp6_parser.cc" // lalr1.cc:907 break; case 581: -#line 1989 "dhcp6_parser.yy" +#line 1990 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3168 "dhcp6_parser.cc" +#line 3164 "dhcp6_parser.cc" // lalr1.cc:907 break; case 582: -#line 1994 "dhcp6_parser.yy" +#line 1995 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3177 "dhcp6_parser.cc" +#line 3173 "dhcp6_parser.cc" // lalr1.cc:907 break; case 590: -#line 2010 "dhcp6_parser.yy" +#line 2011 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3185 "dhcp6_parser.cc" +#line 3181 "dhcp6_parser.cc" // lalr1.cc:907 break; case 591: -#line 2012 "dhcp6_parser.yy" +#line 2013 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3195 "dhcp6_parser.cc" +#line 3191 "dhcp6_parser.cc" // lalr1.cc:907 break; case 592: -#line 2018 "dhcp6_parser.yy" +#line 2019 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3203 "dhcp6_parser.cc" +#line 3199 "dhcp6_parser.cc" // lalr1.cc:907 break; case 593: -#line 2020 "dhcp6_parser.yy" +#line 2021 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3213 "dhcp6_parser.cc" +#line 3209 "dhcp6_parser.cc" // lalr1.cc:907 break; case 594: -#line 2028 "dhcp6_parser.yy" +#line 2029 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3221 "dhcp6_parser.cc" +#line 3217 "dhcp6_parser.cc" // lalr1.cc:907 break; case 595: -#line 2030 "dhcp6_parser.yy" +#line 2031 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr qc = yystack_[0].value.as < ElementPtr > (); + ElementPtr qc = yystack_[0].value.as< ElementPtr > (); ctx.stack_.back()->set("dhcp-queue-control", qc); // Doing this manually, because dhcp-queue-control @@ -3257,627 +3253,644 @@ namespace isc { namespace dhcp { ctx.leave(); } -#line 3261 "dhcp6_parser.cc" +#line 3257 "dhcp6_parser.cc" // lalr1.cc:907 break; case 596: -#line 2068 "dhcp6_parser.yy" +#line 2069 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3272 "dhcp6_parser.cc" +#line 3268 "dhcp6_parser.cc" // lalr1.cc:907 break; case 597: -#line 2073 "dhcp6_parser.yy" +#line 2074 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3283 "dhcp6_parser.cc" +#line 3279 "dhcp6_parser.cc" // lalr1.cc:907 break; case 598: -#line 2080 "dhcp6_parser.yy" +#line 2081 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3293 "dhcp6_parser.cc" +#line 3289 "dhcp6_parser.cc" // lalr1.cc:907 break; case 599: -#line 2084 "dhcp6_parser.yy" +#line 2085 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3303 "dhcp6_parser.cc" +#line 3299 "dhcp6_parser.cc" // lalr1.cc:907 break; case 620: -#line 2114 "dhcp6_parser.yy" +#line 2115 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3312 "dhcp6_parser.cc" +#line 3308 "dhcp6_parser.cc" // lalr1.cc:907 break; case 621: -#line 2119 "dhcp6_parser.yy" +#line 2120 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3320 "dhcp6_parser.cc" +#line 3316 "dhcp6_parser.cc" // lalr1.cc:907 break; case 622: -#line 2121 "dhcp6_parser.yy" +#line 2122 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3330 "dhcp6_parser.cc" +#line 3326 "dhcp6_parser.cc" // lalr1.cc:907 break; case 623: -#line 2127 "dhcp6_parser.yy" +#line 2128 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3338 "dhcp6_parser.cc" +#line 3334 "dhcp6_parser.cc" // lalr1.cc:907 break; case 624: -#line 2129 "dhcp6_parser.yy" +#line 2130 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3348 "dhcp6_parser.cc" +#line 3344 "dhcp6_parser.cc" // lalr1.cc:907 break; case 625: -#line 2135 "dhcp6_parser.yy" +#line 2136 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3357 "dhcp6_parser.cc" +#line 3353 "dhcp6_parser.cc" // lalr1.cc:907 break; case 626: -#line 2140 "dhcp6_parser.yy" +#line 2141 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3365 "dhcp6_parser.cc" +#line 3361 "dhcp6_parser.cc" // lalr1.cc:907 break; case 627: -#line 2142 "dhcp6_parser.yy" +#line 2143 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3375 "dhcp6_parser.cc" +#line 3371 "dhcp6_parser.cc" // lalr1.cc:907 break; case 628: -#line 2148 "dhcp6_parser.yy" +#line 2149 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3384 "dhcp6_parser.cc" +#line 3380 "dhcp6_parser.cc" // lalr1.cc:907 break; case 629: -#line 2153 "dhcp6_parser.yy" +#line 2154 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3393 "dhcp6_parser.cc" +#line 3389 "dhcp6_parser.cc" // lalr1.cc:907 break; case 630: -#line 2158 "dhcp6_parser.yy" +#line 2159 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3401 "dhcp6_parser.cc" +#line 3397 "dhcp6_parser.cc" // lalr1.cc:907 break; case 631: -#line 2160 "dhcp6_parser.yy" +#line 2161 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3410 "dhcp6_parser.cc" +#line 3406 "dhcp6_parser.cc" // lalr1.cc:907 break; case 632: -#line 2166 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3416 "dhcp6_parser.cc" +#line 2167 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } +#line 3412 "dhcp6_parser.cc" // lalr1.cc:907 break; case 633: -#line 2167 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3422 "dhcp6_parser.cc" +#line 2168 "dhcp6_parser.yy" // lalr1.cc:907 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } +#line 3418 "dhcp6_parser.cc" // lalr1.cc:907 break; case 634: -#line 2170 "dhcp6_parser.yy" +#line 2171 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_FORMAT); } -#line 3430 "dhcp6_parser.cc" +#line 3426 "dhcp6_parser.cc" // lalr1.cc:907 break; case 635: -#line 2172 "dhcp6_parser.yy" +#line 2173 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3440 "dhcp6_parser.cc" +#line 3436 "dhcp6_parser.cc" // lalr1.cc:907 break; case 636: -#line 2178 "dhcp6_parser.yy" +#line 2179 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3449 "dhcp6_parser.cc" +#line 3445 "dhcp6_parser.cc" // lalr1.cc:907 break; case 637: -#line 2183 "dhcp6_parser.yy" +#line 2184 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3458 "dhcp6_parser.cc" +#line 3454 "dhcp6_parser.cc" // lalr1.cc:907 break; case 638: -#line 2188 "dhcp6_parser.yy" +#line 2189 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3466 "dhcp6_parser.cc" +#line 3462 "dhcp6_parser.cc" // lalr1.cc:907 break; case 639: -#line 2190 "dhcp6_parser.yy" +#line 2191 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3475 "dhcp6_parser.cc" +#line 3471 "dhcp6_parser.cc" // lalr1.cc:907 break; case 640: -#line 2196 "dhcp6_parser.yy" +#line 2197 "dhcp6_parser.yy" // lalr1.cc:907 { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 3483 "dhcp6_parser.cc" +#line 3479 "dhcp6_parser.cc" // lalr1.cc:907 break; case 641: -#line 2199 "dhcp6_parser.yy" +#line 2200 "dhcp6_parser.yy" // lalr1.cc:907 { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 3491 "dhcp6_parser.cc" +#line 3487 "dhcp6_parser.cc" // lalr1.cc:907 break; case 642: -#line 2202 "dhcp6_parser.yy" +#line 2203 "dhcp6_parser.yy" // lalr1.cc:907 { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 3499 "dhcp6_parser.cc" +#line 3495 "dhcp6_parser.cc" // lalr1.cc:907 break; case 643: -#line 2205 "dhcp6_parser.yy" +#line 2206 "dhcp6_parser.yy" // lalr1.cc:907 { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 3507 "dhcp6_parser.cc" +#line 3503 "dhcp6_parser.cc" // lalr1.cc:907 break; case 644: -#line 2208 "dhcp6_parser.yy" +#line 2209 "dhcp6_parser.yy" // lalr1.cc:907 { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 3516 "dhcp6_parser.cc" +#line 3512 "dhcp6_parser.cc" // lalr1.cc:907 break; case 645: -#line 2214 "dhcp6_parser.yy" +#line 2215 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3524 "dhcp6_parser.cc" +#line 3520 "dhcp6_parser.cc" // lalr1.cc:907 break; case 646: -#line 2216 "dhcp6_parser.yy" +#line 2217 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3534 "dhcp6_parser.cc" +#line 3530 "dhcp6_parser.cc" // lalr1.cc:907 break; case 647: -#line 2222 "dhcp6_parser.yy" +#line 2223 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3542 "dhcp6_parser.cc" +#line 3538 "dhcp6_parser.cc" // lalr1.cc:907 break; case 648: -#line 2224 "dhcp6_parser.yy" +#line 2225 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3552 "dhcp6_parser.cc" +#line 3548 "dhcp6_parser.cc" // lalr1.cc:907 break; case 649: -#line 2230 "dhcp6_parser.yy" +#line 2231 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3560 "dhcp6_parser.cc" +#line 3556 "dhcp6_parser.cc" // lalr1.cc:907 break; case 650: -#line 2232 "dhcp6_parser.yy" +#line 2233 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + 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 3570 "dhcp6_parser.cc" +#line 3566 "dhcp6_parser.cc" // lalr1.cc:907 break; case 651: -#line 2240 "dhcp6_parser.yy" +#line 2241 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3578 "dhcp6_parser.cc" +#line 3574 "dhcp6_parser.cc" // lalr1.cc:907 break; case 652: -#line 2242 "dhcp6_parser.yy" +#line 2243 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3587 "dhcp6_parser.cc" +#line 3583 "dhcp6_parser.cc" // lalr1.cc:907 break; case 653: -#line 2247 "dhcp6_parser.yy" +#line 2248 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3595 "dhcp6_parser.cc" +#line 3591 "dhcp6_parser.cc" // lalr1.cc:907 break; case 654: -#line 2249 "dhcp6_parser.yy" +#line 2250 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3604 "dhcp6_parser.cc" +#line 3600 "dhcp6_parser.cc" // lalr1.cc:907 break; case 655: -#line 2254 "dhcp6_parser.yy" +#line 2255 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3612 "dhcp6_parser.cc" +#line 3608 "dhcp6_parser.cc" // lalr1.cc:907 break; case 656: -#line 2256 "dhcp6_parser.yy" +#line 2257 "dhcp6_parser.yy" // lalr1.cc:907 { - ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3621 "dhcp6_parser.cc" +#line 3617 "dhcp6_parser.cc" // lalr1.cc:907 break; case 657: -#line 2263 "dhcp6_parser.yy" +#line 2264 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3632 "dhcp6_parser.cc" +#line 3628 "dhcp6_parser.cc" // lalr1.cc:907 break; case 658: -#line 2268 "dhcp6_parser.yy" +#line 2269 "dhcp6_parser.yy" // lalr1.cc:907 { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3642 "dhcp6_parser.cc" +#line 3638 "dhcp6_parser.cc" // lalr1.cc:907 break; case 659: -#line 2274 "dhcp6_parser.yy" +#line 2275 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3652 "dhcp6_parser.cc" +#line 3648 "dhcp6_parser.cc" // lalr1.cc:907 break; case 660: -#line 2278 "dhcp6_parser.yy" +#line 2279 "dhcp6_parser.yy" // lalr1.cc:907 { // No config_control params are required // parsing completed } -#line 3661 "dhcp6_parser.cc" +#line 3657 "dhcp6_parser.cc" // lalr1.cc:907 break; case 665: -#line 2293 "dhcp6_parser.yy" +#line 2294 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3672 "dhcp6_parser.cc" +#line 3668 "dhcp6_parser.cc" // lalr1.cc:907 break; case 666: -#line 2298 "dhcp6_parser.yy" +#line 2299 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3681 "dhcp6_parser.cc" +#line 3677 "dhcp6_parser.cc" // lalr1.cc:907 break; case 667: -#line 2303 "dhcp6_parser.yy" +#line 2304 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3690 "dhcp6_parser.cc" +#line 3686 "dhcp6_parser.cc" // lalr1.cc:907 break; case 668: -#line 2313 "dhcp6_parser.yy" +#line 2314 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3701 "dhcp6_parser.cc" +#line 3697 "dhcp6_parser.cc" // lalr1.cc:907 break; case 669: -#line 2318 "dhcp6_parser.yy" +#line 2319 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3710 "dhcp6_parser.cc" +#line 3706 "dhcp6_parser.cc" // lalr1.cc:907 break; case 670: -#line 2323 "dhcp6_parser.yy" +#line 2324 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3720 "dhcp6_parser.cc" +#line 3716 "dhcp6_parser.cc" // lalr1.cc:907 break; case 671: -#line 2327 "dhcp6_parser.yy" +#line 2328 "dhcp6_parser.yy" // lalr1.cc:907 { // parsing completed } -#line 3728 "dhcp6_parser.cc" +#line 3724 "dhcp6_parser.cc" // lalr1.cc:907 break; case 675: -#line 2343 "dhcp6_parser.yy" +#line 2344 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3739 "dhcp6_parser.cc" +#line 3735 "dhcp6_parser.cc" // lalr1.cc:907 break; case 676: -#line 2348 "dhcp6_parser.yy" +#line 2349 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3748 "dhcp6_parser.cc" +#line 3744 "dhcp6_parser.cc" // lalr1.cc:907 break; case 679: -#line 2360 "dhcp6_parser.yy" +#line 2361 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3758 "dhcp6_parser.cc" +#line 3754 "dhcp6_parser.cc" // lalr1.cc:907 break; case 680: -#line 2364 "dhcp6_parser.yy" +#line 2365 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 3766 "dhcp6_parser.cc" +#line 3762 "dhcp6_parser.cc" // lalr1.cc:907 break; case 690: -#line 2381 "dhcp6_parser.yy" +#line 2382 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3775 "dhcp6_parser.cc" +#line 3771 "dhcp6_parser.cc" // lalr1.cc:907 break; case 691: -#line 2386 "dhcp6_parser.yy" +#line 2387 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3783 "dhcp6_parser.cc" +#line 3779 "dhcp6_parser.cc" // lalr1.cc:907 break; case 692: -#line 2388 "dhcp6_parser.yy" +#line 2389 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3793 "dhcp6_parser.cc" +#line 3789 "dhcp6_parser.cc" // lalr1.cc:907 break; case 693: -#line 2394 "dhcp6_parser.yy" +#line 2395 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3804 "dhcp6_parser.cc" +#line 3800 "dhcp6_parser.cc" // lalr1.cc:907 break; case 694: -#line 2399 "dhcp6_parser.yy" +#line 2400 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3813 "dhcp6_parser.cc" +#line 3809 "dhcp6_parser.cc" // lalr1.cc:907 break; case 697: -#line 2408 "dhcp6_parser.yy" +#line 2409 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3823 "dhcp6_parser.cc" +#line 3819 "dhcp6_parser.cc" // lalr1.cc:907 break; case 698: -#line 2412 "dhcp6_parser.yy" +#line 2413 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 3831 "dhcp6_parser.cc" +#line 3827 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 705: -#line 2426 "dhcp6_parser.yy" + case 706: +#line 2428 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3839 "dhcp6_parser.cc" +#line 3835 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 706: -#line 2428 "dhcp6_parser.yy" + case 707: +#line 2430 "dhcp6_parser.yy" // lalr1.cc:907 { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 3849 "dhcp6_parser.cc" +#line 3845 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 707: -#line 2434 "dhcp6_parser.yy" + case 708: +#line 2436 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3858 "dhcp6_parser.cc" +#line 3854 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 708: -#line 2439 "dhcp6_parser.yy" + case 709: +#line 2441 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3867 "dhcp6_parser.cc" +#line 3863 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 709: -#line 2444 "dhcp6_parser.yy" + case 710: +#line 2446 "dhcp6_parser.yy" // lalr1.cc:907 { - 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 3876 "dhcp6_parser.cc" +#line 3872 "dhcp6_parser.cc" // lalr1.cc:907 break; + case 711: +#line 2451 "dhcp6_parser.yy" // lalr1.cc:907 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3880 "dhcp6_parser.cc" // lalr1.cc:907 + break; + + case 712: +#line 2453 "dhcp6_parser.yy" // lalr1.cc:907 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("pattern", sev); + ctx.leave(); +} +#line 3890 "dhcp6_parser.cc" // lalr1.cc:907 + break; -#line 3880 "dhcp6_parser.cc" +#line 3894 "dhcp6_parser.cc" // lalr1.cc:907 default: break; } @@ -3885,7 +3898,6 @@ namespace isc { namespace dhcp { #if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); YYERROR; } @@ -3900,7 +3912,6 @@ namespace isc { namespace dhcp { } goto yynewstate; - /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ @@ -3937,18 +3948,18 @@ 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; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); yylen = 0; goto yyerrlab1; - /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ @@ -3989,26 +4000,16 @@ namespace isc { namespace dhcp { } 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); @@ -4154,121 +4155,122 @@ namespace isc { namespace dhcp { const short Dhcp6Parser::yypact_[] = { - 428, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, 46, 70, 63, 65, - 69, 71, 84, 93, 96, 100, 108, 130, 156, 184, - 188, 190, -875, -875, -875, -875, -875, -875, -875, -875, + 480, -875, -875, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, -875, -875, -875, 45, 70, 59, 69, + 78, 131, 133, 135, 144, 146, 173, 184, 197, 206, + 207, 219, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, 70, -95, 29, 78, 41, 263, 80, 277, - 444, 170, 43, 179, -65, 506, 58, 291, -875, 144, - 273, 262, 275, 323, -875, -875, -875, -875, -875, 332, - -875, 91, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, 334, 343, 353, 355, 359, 387, - 391, 393, 394, 398, 399, 401, -875, -875, -875, -875, + -875, -875, 70, -139, 30, 79, 41, 280, 81, 164, + 172, 39, 43, 444, -28, 464, -103, 93, -875, 236, + 224, 239, 242, 255, -875, -875, -875, -875, -875, 274, + -875, 75, -875, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, -875, 299, 301, 308, 317, 318, 339, + 341, 345, 347, 349, 351, 361, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, 403, -875, -875, -875, -875, -875, -875, - -875, 98, -875, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, 362, -875, -875, -875, -875, -875, -875, + -875, 85, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, 405, -875, 136, -875, - -875, -875, -875, -875, -875, -875, -875, -875, -875, 408, - 413, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, 137, -875, -875, -875, + -875, -875, -875, -875, -875, -875, 381, -875, 113, -875, + -875, -875, -875, -875, -875, -875, -875, -875, -875, 383, + 391, -875, -875, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, -875, -875, -875, 138, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, -875, -875, 143, -875, - -875, -875, -875, -875, 415, -875, 418, 420, -875, -875, - -875, -875, -875, -875, 150, -875, -875, -875, -875, -875, + -875, -875, -875, -875, -875, -875, -875, -875, 141, -875, + -875, -875, -875, -875, 401, -875, 405, 415, -875, -875, + -875, -875, -875, -875, 169, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, 320, 364, -875, -875, -875, -875, -875, -875, - -875, -875, 419, -875, -875, 422, -875, -875, -875, 426, - -875, -875, 421, 439, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, -875, 447, 458, -875, - -875, -875, -875, 435, 463, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, -875, 168, -875, -875, - -875, 466, -875, -875, 467, -875, 469, 470, -875, -875, - 471, 472, -875, -875, -875, -875, -875, 182, -875, -875, + -875, -875, 359, 421, -875, -875, -875, -875, -875, -875, + -875, -875, 418, -875, -875, 423, -875, -875, -875, 425, + -875, -875, 422, 438, -875, -875, -875, -875, -875, -875, + -875, -875, -875, -875, -875, -875, -875, 439, 440, -875, + -875, -875, -875, 443, 455, -875, -875, -875, -875, -875, + -875, -875, -875, -875, -875, -875, -875, 185, -875, -875, + -875, 462, -875, -875, 463, -875, 466, 467, -875, -875, + 473, 486, -875, -875, -875, -875, -875, 199, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, 204, -875, -875, -875, 473, 212, - -875, -875, -875, -875, 70, 70, -875, 286, 486, 487, - 489, 492, 493, -875, 29, -875, 494, 495, 496, 497, - 499, 500, 325, 326, 327, 328, 329, 335, 340, 341, - 330, 342, 344, 346, 501, 502, 520, 522, 525, 526, - 528, 529, 531, 532, 533, 535, 536, 537, 539, 546, - 547, 372, 548, 549, 551, 552, 554, 555, 78, -875, - 556, 377, 41, -875, 558, 559, 561, 562, 563, 386, - 385, 566, 567, 568, 263, -875, 569, 80, -875, 573, - 396, 575, 402, 404, 277, -875, 576, 577, 583, 587, - 608, 610, 612, -875, 444, -875, 614, 615, 438, 617, - 618, 619, 440, -875, 43, 622, 443, 445, -875, 179, - 624, 626, 246, -875, 448, 627, 629, 454, 647, 474, - 475, 648, 649, 476, 477, 650, 651, 506, -875, 58, - -875, 658, 481, 291, -875, -875, -875, 661, 659, 660, - 70, 70, 70, -875, 488, 663, 664, 665, 666, 669, + -875, -875, -875, -875, 200, -875, -875, -875, 487, 212, + -875, -875, -875, -875, 70, 70, -875, 311, 492, 493, + 494, 495, 496, -875, 30, -875, 497, 498, 505, 506, + 507, 510, 340, 342, 343, 346, 350, 352, 353, 354, + 337, 348, 355, 360, 513, 520, 523, 524, 526, 534, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 372, 552, 554, 555, 556, 557, 558, 79, -875, + 559, 380, 41, -875, 562, 563, 564, 565, 566, 389, + 386, 569, 573, 574, 280, -875, 575, 81, -875, 576, + 398, 578, 400, 403, 164, -875, 580, 583, 587, 590, + 591, 608, 610, -875, 172, -875, 615, 616, 441, 617, + 618, 619, 442, -875, 43, 621, 445, 446, -875, 444, + 624, 625, 65, -875, 447, 629, 632, 456, 634, 457, + 458, 638, 639, 459, 460, 658, 659, 464, -875, -103, + -875, 661, 483, 93, -875, -875, -875, 663, 662, 664, + 70, 70, 70, -875, 488, 665, 666, 667, 668, 671, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, 498, 670, 671, 672, 673, 504, 301, 676, - 677, 678, 681, 682, 683, 685, 686, 687, 688, -875, - 689, 673, 690, 511, 512, 693, -875, 694, -875, -875, - 695, 696, 521, 523, 524, -875, -875, 694, 527, 699, - -875, 530, -875, 534, -875, 538, -875, -875, -875, 694, - 694, 694, 540, 541, 542, 543, -875, 544, 545, -875, - 550, 553, 557, -875, -875, 560, -875, -875, -875, 564, - 70, -875, -875, 565, 570, -875, 571, -875, -875, 248, - 580, -875, -875, -37, 572, -875, -875, 698, -875, -875, - 70, 78, 58, -875, -875, -875, -875, 291, 41, 260, - 260, 700, -875, 702, 703, 705, -875, -875, -875, -875, - -875, -875, -875, -875, 706, -33, 70, 79, 585, 707, - 709, 710, 157, 122, 97, -875, 506, -875, -875, 711, - -875, -875, 713, 721, -875, -875, -875, -875, -875, -48, + -875, -875, 499, 672, 673, 674, 675, 501, 363, 680, + 681, 682, 683, 684, 685, 687, 688, 689, 690, -875, + 691, 675, 692, 512, 518, 696, -875, 697, -875, -875, + 698, 699, 525, 527, 528, -875, -875, 697, 529, 701, + -875, 530, -875, 531, -875, 532, -875, -875, -875, 697, + 697, 697, 533, 535, 536, 537, -875, 538, 539, -875, + 551, 553, 560, -875, -875, 561, -875, -875, -875, 567, + 70, -875, -875, 568, 570, -875, 571, -875, -875, 36, + 521, -875, -875, 159, 572, -875, -875, 700, -875, -875, + 70, 79, -103, -875, -875, -875, -875, 93, 41, 260, + 260, 709, -875, 715, 716, 717, -875, -875, -875, -875, + -875, -875, -875, -875, 718, -37, 70, -33, 596, 719, + 720, 721, 257, 122, 35, -875, 464, -875, -875, 722, + -875, -875, 723, 724, -875, -875, -875, -875, -875, -61, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, 700, -875, 220, 226, 254, 255, -875, -875, - -875, -875, 725, 726, 728, 729, 731, -875, 732, 733, - -875, -875, -875, 735, 736, 738, -875, 257, -875, -875, + -875, -875, 709, -875, 221, 225, 248, 261, -875, -875, + -875, -875, 676, 702, 728, 730, 732, -875, 733, 734, + -875, -875, -875, 735, 736, 737, -875, 262, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, -875, -875, 272, -875, - 662, 740, -875, -875, 741, 745, -875, -875, 743, 747, - -875, -875, 748, 752, -875, -875, 750, 754, -875, -875, - -875, 37, -875, -875, -875, 753, -875, -875, -875, 82, - -875, -875, -875, -875, 274, -875, -875, -875, 200, -875, - -875, 755, 757, -875, -875, 756, 760, -875, 761, 762, - 763, 764, 765, 766, 276, -875, -875, -875, -875, -875, - -875, -875, -875, -875, 767, 768, 769, -875, -875, -875, - -875, 314, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, 315, -875, -875, -875, 321, -875, 211, - -875, 593, -875, 758, 772, -875, -875, 770, 774, -875, - -875, -875, 771, -875, 775, -875, -875, -875, -875, 776, - 778, 779, 780, 596, 574, 603, 602, 605, 784, 607, - 609, 786, 788, 789, 613, 616, 620, 260, -875, -875, - 260, -875, 700, 263, -875, 702, 43, -875, 703, 179, - -875, 705, 436, -875, 706, -33, -875, -875, 79, -875, - 790, 585, -875, 83, 707, -875, 444, -875, 709, -65, - -875, 710, 621, 623, 625, 628, 630, 631, 157, -875, - 792, 793, 632, 633, 634, 122, -875, 795, 796, 97, - -875, -875, 6, 711, -875, -875, 800, 798, 80, -875, - 713, 277, -875, 721, 804, -875, -875, 425, 636, 637, - 639, -875, -875, -875, -875, -875, 640, -875, -875, 643, - 645, 646, -875, -875, -875, -875, 322, -875, 324, -875, - 794, -875, 801, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, -875, -875, -875, -875, -875, 276, -875, + 738, 742, -875, -875, 740, 744, -875, -875, 745, 752, + -875, -875, 750, 754, -875, -875, 753, 755, -875, -875, + -875, 83, -875, -875, -875, 756, -875, -875, -875, 97, + -875, -875, -875, -875, 310, -875, -875, -875, 186, -875, + -875, 757, 758, -875, -875, 759, 761, -875, 762, 763, + 764, 765, 766, 767, 331, -875, -875, -875, -875, -875, + -875, -875, -875, -875, 768, 769, 770, -875, -875, -875, + -875, 332, -875, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, 333, -875, -875, -875, 334, -875, 254, + -875, 593, -875, 771, 773, -875, -875, 772, 776, -875, + -875, -875, 774, -875, 775, -875, -875, -875, -875, 779, + 780, 781, 782, 577, 595, 604, 603, 606, 786, 609, + 611, 787, 789, 791, 613, 614, 620, 260, -875, -875, + 260, -875, 709, 280, -875, 715, 43, -875, 716, 444, + -875, 717, 436, -875, 718, -37, -875, -875, -33, -875, + 794, 596, -875, 89, 719, -875, 172, -875, 720, -28, + -875, 721, 623, 626, 627, 628, 630, 631, 257, -875, + 795, 796, 633, 635, 637, 122, -875, 797, 798, 35, + -875, -875, 124, 722, -875, -875, 801, 800, 81, -875, + 723, 164, -875, 724, 804, -875, -875, 451, 622, 642, + 644, -875, -875, -875, -875, -875, 645, -875, -875, 647, + 652, 654, -875, -875, -875, -875, 344, -875, 373, -875, + 807, -875, 809, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, 362, -875, -875, -875, -875, -875, - -875, -875, -875, 653, -875, -875, 807, -875, -875, -875, - -875, -875, 821, 833, -875, -875, -875, -875, -875, 829, - -875, 363, -875, -875, -875, -875, -875, -875, -875, -875, - 129, 657, -875, -875, -875, -875, 667, 691, -875, -875, - 837, -875, -875, -875, -875, -875, 370, -875, -875, -875, - -875, -875, -875, 718, 371, -875, 373, -875, 720, -875, + -875, -875, -875, -875, 374, -875, -875, -875, -875, -875, + -875, -875, -875, 655, -875, -875, 808, -875, -875, -875, + -875, -875, 813, 835, -875, -875, -875, -875, -875, 833, + -875, 385, -875, -875, -875, -875, -875, -875, -875, -875, + 40, 669, -875, -875, -875, -875, 670, 677, -875, -875, + 844, -875, -875, -875, -875, -875, 394, -875, -875, -875, + -875, -875, -875, 712, 395, -875, 404, -875, 725, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, 436, -875, -875, 846, 668, - -875, 83, -875, -875, -875, -875, -875, -875, -875, -875, - -875, 847, 701, 850, 6, -875, -875, -875, -875, -875, - -875, 723, -875, -875, 739, -875, 734, -875, -875, 852, - -875, -875, 331, -875, 75, 852, -875, -875, 865, 890, - 898, 374, -875, -875, -875, -875, -875, -875, 903, 730, - 742, 744, 75, -875, 737, -875, -875, -875, -875, -875 + -875, -875, -875, -875, -875, 436, -875, -875, 846, 714, + -875, 89, -875, -875, -875, -875, -875, -875, -875, -875, + -875, 850, 686, 868, 124, -875, -875, -875, -875, -875, + -875, 741, -875, -875, 743, -875, 746, -875, -875, 876, + -875, -875, 388, -875, 154, 876, -875, -875, 897, 898, + 900, -875, 414, -875, -875, -875, -875, -875, -875, -875, + 910, 731, 747, 748, 911, 154, -875, 751, -875, -875, + -875, 760, -875, -875, -875 }; const unsigned short @@ -4386,55 +4388,56 @@ namespace isc { namespace dhcp { 541, 0, 498, 248, 572, 573, 574, 571, 577, 591, 593, 0, 0, 0, 0, 680, 58, 443, 468, 535, 342, 0, 556, 545, 0, 690, 0, 682, 555, 0, - 692, 697, 0, 695, 0, 0, 694, 705, 0, 0, - 0, 0, 699, 701, 702, 703, 704, 696, 0, 0, - 0, 0, 0, 698, 0, 707, 708, 709, 700, 706 + 692, 697, 0, 695, 0, 0, 694, 706, 0, 0, + 0, 711, 0, 699, 701, 702, 703, 704, 705, 696, + 0, 0, 0, 0, 0, 0, 698, 0, 708, 709, + 710, 0, 700, 707, 712 }; const short Dhcp6Parser::yypgoto_[] = { -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, -875, -875, -875, 54, -875, -480, - -875, 366, -875, -875, -875, -875, 267, -875, -389, -875, - -875, -875, -74, -875, -875, -875, 578, -875, -875, -875, - -875, 285, 490, -875, -875, -70, -46, -40, -36, -22, + -875, -875, -875, -875, -875, -875, -875, 54, -875, -502, + -875, 134, -875, -875, -875, -875, 268, -875, -476, -875, + -875, -875, -74, -875, -875, -875, 579, -875, -875, -875, + -875, 287, 489, -875, -875, -70, -46, -40, -36, -22, -17, -14, 3, 7, 10, 15, -875, -875, -875, -875, - -875, -875, -875, 287, 491, -875, -875, -875, -875, -875, - -875, -875, -875, -875, 217, -875, 38, -875, -622, 44, + -875, -875, -875, 288, 490, -875, -875, -875, -875, -875, + -875, -875, -875, -875, 213, -875, 37, -875, -622, 47, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -21, -875, -650, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, 21, -875, -875, -875, -875, -875, 30, -641, - -875, -875, -875, -875, 26, -875, -875, -875, -875, -875, - -875, -875, -875, 17, -875, -875, -875, 20, 449, -875, - -875, -875, -875, -875, -875, -875, 8, -875, -875, -875, - -875, -875, -875, -874, -875, -875, -875, 47, -875, -875, - -875, 51, 503, -875, -875, -869, -875, -867, -875, -11, + -875, -875, 24, -875, -875, -875, -875, -875, 31, -641, + -875, -875, -875, -875, 33, -875, -875, -875, -875, -875, + -875, -875, -875, 17, -875, -875, -875, 20, 452, -875, + -875, -875, -875, -875, -875, -875, 19, -875, -875, -875, + -875, -875, -875, -874, -875, -875, -875, 50, -875, -875, + -875, 55, 500, -875, -875, -869, -875, -867, -875, -11, -875, -5, -875, 18, -875, -875, -875, -866, -875, -875, - -875, -875, 45, -875, -875, -140, 866, -875, -875, -875, - -875, -875, 50, -875, -875, -875, 55, -875, 468, -875, + -875, -875, 46, -875, -875, -136, 870, -875, -875, -875, + -875, -875, 57, -875, -875, -875, 56, -875, 469, -875, -69, -875, -875, -875, -875, -875, -66, -875, -875, -875, - -875, -875, -58, -875, -875, -875, 49, -875, -875, -875, - 56, -875, 464, -875, -875, -875, -875, -875, -875, -875, - -875, -875, -875, -875, 4, -875, -875, -875, 11, 505, + -875, -875, -58, -875, -875, -875, 58, -875, -875, -875, + 61, -875, 468, -875, -875, -875, -875, -875, -875, -875, + -875, -875, -875, -875, 6, -875, -875, -875, 13, 508, -875, -875, -53, -875, -29, -875, -875, -875, -875, -875, - 5, -875, -875, -875, 9, 507, -875, -875, -875, -875, - -875, -875, -875, -62, -875, -875, -875, 48, -875, -875, - -875, 40, -875, 508, 282, -875, -875, -875, -875, -875, + 5, -875, -875, -875, 11, 502, -875, -875, -875, -875, + -875, -875, -875, -62, -875, -875, -875, 49, -875, -875, + -875, 48, -875, 503, 284, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -864, -875, - -875, -875, -875, -875, -875, -875, 53, -875, -875, -875, - -128, -875, -875, -875, -875, -875, -875, -875, 33, -875, + -875, -875, -875, -875, -875, -875, 60, -875, -875, -875, + -123, -875, -875, -875, -875, -875, -875, -875, 34, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - -875, 25, -875, -875, -875, -875, -875, -875, -875, -875, - -875, -875, 299, 462, -875, -875, -875, -875, -875, -875, + -875, 32, -875, -875, -875, -875, -875, -875, -875, -875, + -875, -875, 304, 465, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -73, -875, -51, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, -875, - 333, 460, -875, -875, -875, -875, -875, -875, -875, 345, - 465, -44, -875, -875, 32, -875, -875, -126, -875, -875, - -875, -875, -875, -875, -149, -875, -875, -163, -875, -875, - -875, -875, -875 + 338, 470, -875, -875, -875, -875, -875, -875, -875, 356, + 471, -44, -875, -875, 38, -875, -875, -128, -875, -875, + -875, -875, -875, -875, -147, -875, -875, -166, -875, -875, + -875, -875, -875, -875, -875 }; const short @@ -4479,8 +4482,8 @@ namespace isc { namespace dhcp { 104, 390, 105, 391, 106, 392, 193, 397, 71, 87, 379, 380, 381, 511, 382, 107, 389, 69, 86, 374, 375, 194, 437, 849, 850, 942, 1056, 1057, 1058, 1059, - 1103, 1060, 1101, 1122, 1123, 1124, 1131, 1132, 1133, 1138, - 1134, 1135, 1136 + 1103, 1060, 1101, 1122, 1123, 1124, 1132, 1133, 1134, 1140, + 1135, 1136, 1137, 1138, 1144 }; const unsigned short @@ -4489,102 +4492,102 @@ namespace isc { namespace dhcp { 100, 150, 197, 214, 244, 258, 278, 215, 300, 319, 336, 354, 372, 828, 321, 241, 788, 322, 758, 236, 247, 261, 279, 202, 238, 251, 262, 280, 997, 314, - 332, 216, 355, 998, 373, 999, 1003, 217, 1009, 94, - 905, 218, 376, 906, 334, 335, 32, 203, 239, 252, - 263, 281, 272, 315, 333, 219, 356, 195, 196, 860, - 220, 301, 320, 221, 293, 294, 646, 245, 259, 779, - 44, 40, 46, 246, 260, 33, 48, 34, 50, 35, - 222, 646, 130, 131, 223, 908, 91, 224, 909, 108, - 109, 52, 225, 110, 394, 233, 111, 112, 113, 395, - 54, 438, 294, 56, 295, 296, 439, 58, 297, 298, - 299, 705, 706, 707, 708, 60, 99, 130, 131, 130, - 131, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 62, 129, 442, - 454, 129, 294, 822, 443, 455, 457, 709, 780, 243, - 383, 458, 723, 464, 130, 131, 130, 131, 465, 130, - 131, 132, 1049, 64, 1050, 1051, 133, 134, 135, 136, - 137, 492, 138, 130, 131, 211, 493, 139, 212, 1015, - 1016, 779, 786, 95, 787, 507, 140, 99, 677, 141, - 508, 66, 96, 97, 98, 68, 142, 70, 130, 131, - 683, 684, 685, 914, 143, 144, 915, 509, 145, 146, - 99, 997, 510, 149, 943, 513, 998, 944, 999, 1003, - 514, 1009, 99, 438, 99, 838, 839, 128, 865, 509, - 147, 148, 1127, 149, 866, 1128, 1129, 1130, 294, 316, - 295, 296, 317, 318, 823, 824, 825, 826, 1094, 1095, - 1096, 36, 37, 38, 39, 130, 131, 513, 442, 99, - 887, 99, 867, 868, 99, 888, 385, 788, 976, 808, - 809, 810, 811, 812, 813, 887, 384, 911, 99, 928, - 889, 718, 912, 386, 929, 828, 719, 720, 721, 722, + 332, 216, 355, 998, 373, 999, 1003, 217, 1009, 272, + 94, 218, 376, 91, 646, 32, 860, 203, 239, 252, + 263, 281, 149, 315, 333, 219, 356, 195, 196, 646, + 220, 301, 320, 221, 293, 779, 44, 245, 259, 779, + 786, 40, 787, 246, 260, 33, 46, 34, 394, 35, + 222, 334, 335, 395, 223, 48, 905, 224, 438, 906, + 108, 109, 225, 439, 110, 233, 128, 111, 112, 113, + 908, 677, 294, 909, 295, 296, 377, 378, 297, 298, + 299, 130, 131, 683, 684, 685, 442, 130, 131, 130, + 131, 443, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 50, 129, + 52, 454, 54, 822, 457, 780, 455, 129, 294, 458, + 243, 56, 723, 58, 99, 130, 131, 130, 131, 1094, + 1095, 1096, 132, 838, 839, 130, 131, 133, 134, 135, + 136, 137, 464, 138, 334, 335, 211, 465, 139, 212, + 60, 701, 702, 294, 95, 1015, 1016, 140, 492, 914, + 141, 62, 915, 493, 96, 97, 98, 142, 130, 131, + 130, 131, 507, 509, 64, 143, 144, 508, 510, 145, + 146, 997, 99, 66, 68, 513, 998, 99, 999, 1003, + 514, 1009, 129, 99, 438, 99, 70, 384, 509, 865, + 129, 147, 148, 866, 149, 253, 254, 255, 256, 257, + 130, 131, 383, 385, 823, 824, 825, 826, 130, 131, + 386, 513, 36, 37, 38, 39, 867, 943, 387, 211, + 944, 99, 212, 99, 442, 887, 271, 788, 976, 868, + 888, 99, 272, 273, 274, 275, 276, 277, 393, 887, + 1049, 718, 1050, 1051, 889, 828, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 99, 377, 378, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 935, 939, 294, - 100, 129, 936, 940, 507, 887, 387, 454, 473, 941, - 1081, 204, 1082, 205, 1125, 129, 393, 1126, 402, 130, - 131, 206, 207, 208, 209, 210, 132, 403, 253, 254, - 255, 256, 257, 130, 131, 334, 335, 404, 211, 405, - 99, 212, 139, 406, 150, 1085, 492, 474, 197, 213, - 1086, 1093, 211, 1104, 457, 212, 464, 1142, 1105, 1107, - 214, 1108, 1143, 244, 215, 649, 650, 651, 652, 202, - 258, 407, 241, 701, 702, 408, 236, 409, 410, 247, - 278, 238, 411, 412, 251, 413, 261, 431, 216, 441, - 300, 262, 449, 203, 217, 319, 279, 450, 218, 460, - 321, 280, 462, 322, 463, 239, 478, 475, 252, 483, - 482, 314, 219, 354, 372, 263, 332, 220, 515, 516, - 221, 99, 484, 488, 99, 281, 245, 1069, 1070, 1071, - 1072, 486, 246, 259, 355, 315, 373, 222, 99, 260, - 333, 223, 487, 301, 224, 376, 489, 517, 320, 225, - 494, 497, 233, 499, 500, 503, 504, 512, 356, 114, + 733, 734, 735, 402, 99, 403, 99, 705, 706, 707, + 708, 1127, 404, 911, 1128, 1129, 1130, 1131, 912, 294, + 100, 405, 406, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 928, 935, 939, 507, 129, 929, + 936, 940, 941, 407, 709, 408, 99, 887, 204, 409, + 205, 410, 1081, 411, 99, 412, 130, 131, 206, 207, + 208, 209, 210, 132, 150, 413, 431, 473, 197, 808, + 809, 810, 811, 812, 813, 211, 454, 1085, 212, 139, + 214, 1082, 1086, 244, 215, 441, 213, 449, 492, 202, + 258, 1125, 241, 1093, 1126, 450, 236, 1104, 457, 247, + 278, 238, 1105, 1107, 251, 460, 261, 464, 216, 462, + 300, 262, 1108, 203, 217, 319, 279, 1145, 218, 463, + 321, 280, 1146, 322, 474, 239, 475, 478, 252, 482, + 483, 314, 219, 354, 372, 263, 332, 220, 515, 516, + 221, 484, 99, 486, 487, 281, 245, 649, 650, 651, + 652, 488, 246, 259, 355, 315, 373, 222, 489, 260, + 333, 223, 99, 301, 224, 376, 494, 497, 320, 225, + 499, 500, 233, 1069, 1070, 1071, 1072, 503, 356, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 518, 519, 127, 520, 129, 294, 521, 522, 524, 525, - 526, 527, 129, 528, 529, 542, 543, 530, 531, 532, - 533, 534, 130, 131, 538, 207, 208, 535, 210, 132, - 130, 131, 536, 537, 544, 539, 545, 540, 541, 546, - 547, 211, 548, 549, 212, 550, 551, 552, 271, 553, - 554, 555, 213, 556, 272, 273, 274, 275, 276, 277, - 557, 558, 560, 561, 559, 562, 563, 150, 564, 565, - 567, 568, 570, 571, 197, 572, 573, 574, 575, 576, - 577, 578, 579, 581, 633, 634, 635, 583, 584, 585, - 589, 590, 130, 131, 586, 202, 587, 591, 376, 827, - 840, 592, 354, 372, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 203, - 829, 841, 593, 355, 594, 373, 595, 99, 597, 598, - 599, 600, 601, 602, 603, 99, 605, 606, 609, 607, - 610, 613, 612, 614, 830, 842, 615, 356, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 616, 619, 620, 623, 624, 617, 618, 147, 148, - 621, 622, 627, 628, 697, 630, 631, 632, 891, 636, - 637, 638, 639, 640, 641, 643, 644, 645, 793, 642, - 34, 654, 655, 656, 713, 648, 657, 99, 659, 658, - 660, 661, 667, 668, 662, 663, 664, 666, 669, 670, - 672, 673, 674, 712, 675, 676, 679, 759, 678, 763, - 767, 680, 771, 775, 797, 681, 800, 804, 848, 682, - 852, 686, 687, 688, 689, 690, 691, 704, 856, 873, - 874, 692, 875, 876, 693, 877, 879, 880, 694, 884, - 885, 695, 886, 892, 1119, 696, 698, 894, 895, 897, - 898, 699, 700, 711, 900, 901, 903, 904, 962, 907, - 918, 917, 920, 921, 949, 922, 923, 924, 925, 926, - 927, 932, 933, 934, 945, 950, 952, 953, 961, 955, - 957, 956, 958, 959, 960, 963, 964, 965, 966, 967, - 969, 968, 970, 971, 1013, 972, 1040, 1041, 973, 1046, - 1047, 1063, 1083, 1033, 974, 1034, 1062, 1035, 1068, 1084, - 1036, 1089, 1037, 1038, 1042, 1043, 1044, 1074, 1075, 214, - 1076, 1077, 300, 215, 1078, 319, 1079, 1080, 984, 1090, - 321, 241, 985, 322, 1087, 236, 1091, 1092, 1098, 1017, - 238, 1102, 278, 314, 1006, 336, 332, 216, 1099, 1007, - 1111, 1114, 1112, 217, 1116, 1019, 986, 218, 279, 1121, - 1020, 827, 987, 280, 239, 840, 988, 315, 1052, 1139, - 333, 219, 1100, 1008, 244, 301, 220, 258, 320, 221, - 989, 996, 829, 1115, 1021, 990, 841, 281, 991, 1054, - 247, 1000, 1018, 261, 1140, 251, 222, 1001, 262, 1106, - 223, 1109, 1141, 224, 1118, 992, 830, 1144, 225, 993, - 842, 233, 994, 1055, 1145, 1120, 714, 995, 1149, 252, - 1002, 1053, 263, 785, 1146, 717, 1147, 665, 566, 864, - 977, 975, 1014, 569, 1012, 1011, 1039, 245, 1032, 1031, - 259, 611, 979, 246, 978, 1110, 260, 292, 981, 1010, - 983, 980, 604, 608, 1065, 982, 1029, 580, 1067, 1064, - 1066, 861, 582, 1113, 1048, 847, 1030, 1028, 1045, 625, - 716, 588, 523, 629, 626, 1061, 1137, 715, 1117, 1148, - 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, + 504, 512, 127, 517, 129, 294, 518, 519, 520, 521, + 522, 524, 525, 294, 316, 295, 296, 317, 318, 526, + 527, 528, 130, 131, 529, 207, 208, 542, 210, 132, + 130, 131, 538, 530, 543, 531, 532, 544, 545, 533, + 546, 211, 539, 534, 212, 535, 536, 537, 547, 540, + 130, 131, 213, 541, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 150, 561, 562, + 563, 564, 565, 567, 197, 568, 570, 571, 572, 573, + 574, 576, 575, 577, 633, 634, 635, 578, 579, 581, + 583, 584, 585, 586, 589, 202, 587, 590, 376, 827, + 840, 591, 354, 372, 592, 593, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 203, + 829, 841, 594, 355, 595, 373, 147, 148, 99, 597, + 598, 600, 601, 602, 599, 605, 99, 603, 609, 610, + 606, 607, 612, 613, 830, 842, 614, 356, 616, 615, + 617, 618, 619, 620, 621, 622, 99, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 623, 624, 697, 627, 628, 630, 704, 631, + 636, 632, 637, 638, 639, 640, 641, 643, 644, 645, + 873, 642, 34, 648, 713, 654, 655, 656, 657, 793, + 659, 658, 660, 661, 667, 665, 662, 663, 664, 666, + 668, 669, 670, 672, 673, 712, 874, 674, 679, 675, + 676, 678, 680, 681, 682, 686, 759, 687, 688, 689, + 690, 691, 763, 767, 771, 775, 797, 800, 804, 848, + 852, 856, 875, 692, 876, 693, 877, 879, 880, 884, + 885, 886, 694, 695, 891, 892, 894, 895, 1119, 696, + 698, 897, 699, 700, 711, 898, 900, 901, 904, 903, + 961, 918, 907, 917, 921, 920, 922, 923, 924, 925, + 926, 927, 932, 933, 934, 945, 950, 949, 952, 953, + 962, 956, 955, 957, 958, 959, 960, 963, 964, 965, + 966, 969, 967, 970, 968, 971, 972, 973, 1013, 1040, + 1041, 1046, 1047, 1063, 1074, 974, 1033, 1062, 1068, 1034, + 1035, 1036, 1089, 1037, 1038, 1083, 1042, 1084, 1043, 214, + 1044, 1090, 300, 215, 1075, 319, 1076, 1077, 984, 1078, + 321, 241, 985, 322, 1079, 236, 1080, 1087, 1091, 1017, + 238, 1092, 278, 314, 1006, 336, 332, 216, 1102, 1007, + 1111, 1098, 1099, 217, 1114, 1019, 986, 218, 279, 1100, + 1020, 827, 987, 280, 239, 840, 988, 315, 1052, 1115, + 333, 219, 1116, 1008, 244, 301, 220, 258, 320, 221, + 989, 996, 829, 1121, 1021, 990, 841, 281, 991, 1054, + 247, 1000, 1018, 261, 1106, 251, 222, 1001, 262, 1112, + 223, 1141, 1142, 224, 1143, 992, 830, 1109, 225, 993, + 842, 233, 994, 1055, 1147, 1151, 1148, 995, 714, 252, + 1002, 1053, 263, 1118, 785, 864, 717, 566, 1120, 977, + 1149, 1150, 569, 1153, 975, 1014, 1011, 245, 1032, 1031, + 259, 1012, 1154, 246, 611, 979, 260, 1039, 978, 1110, + 1010, 292, 980, 604, 580, 981, 1065, 608, 1067, 983, + 982, 1064, 1066, 861, 1029, 582, 588, 1030, 1113, 1045, + 847, 1048, 625, 523, 1028, 716, 1117, 596, 1139, 1152, + 626, 1061, 0, 629, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 984, 0, 0, 0, 985, 0, 1017, 0, 0, @@ -4605,102 +4608,102 @@ namespace isc { namespace dhcp { 74, 75, 76, 77, 78, 79, 80, 77, 82, 83, 84, 85, 85, 663, 83, 77, 657, 83, 640, 77, 78, 79, 80, 76, 77, 78, 79, 80, 902, 82, - 83, 77, 85, 902, 85, 902, 902, 77, 902, 10, - 3, 77, 86, 6, 109, 110, 0, 76, 77, 78, - 79, 80, 100, 82, 83, 77, 85, 16, 17, 107, - 77, 82, 83, 77, 21, 59, 546, 78, 79, 102, - 7, 17, 7, 78, 79, 5, 7, 7, 7, 9, - 77, 561, 76, 77, 77, 3, 181, 77, 6, 11, - 12, 7, 77, 15, 3, 77, 18, 19, 20, 8, - 7, 3, 59, 7, 61, 62, 8, 7, 65, 66, - 67, 148, 149, 150, 151, 7, 181, 76, 77, 76, - 77, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 7, 58, 3, - 3, 58, 59, 21, 8, 8, 3, 184, 181, 69, - 6, 8, 30, 3, 76, 77, 76, 77, 8, 76, - 77, 83, 156, 7, 158, 159, 88, 89, 90, 91, - 92, 3, 94, 76, 77, 95, 8, 99, 98, 96, - 97, 102, 103, 154, 105, 3, 108, 181, 577, 111, - 8, 7, 163, 164, 165, 7, 118, 7, 76, 77, - 589, 590, 591, 3, 126, 127, 6, 3, 130, 131, - 181, 1085, 8, 155, 3, 3, 1085, 6, 1085, 1085, - 8, 1085, 181, 3, 181, 128, 129, 57, 8, 3, - 152, 153, 157, 155, 8, 160, 161, 162, 59, 60, - 61, 62, 63, 64, 122, 123, 124, 125, 119, 120, - 121, 181, 182, 183, 184, 76, 77, 3, 3, 181, - 3, 181, 8, 8, 181, 8, 4, 908, 890, 112, - 113, 114, 115, 116, 117, 3, 3, 3, 181, 3, - 8, 21, 8, 8, 8, 935, 26, 27, 28, 29, + 83, 77, 85, 902, 85, 902, 902, 77, 902, 100, + 10, 77, 86, 182, 546, 0, 107, 76, 77, 78, + 79, 80, 155, 82, 83, 77, 85, 16, 17, 561, + 77, 82, 83, 77, 21, 102, 7, 78, 79, 102, + 103, 17, 105, 78, 79, 5, 7, 7, 3, 9, + 77, 109, 110, 8, 77, 7, 3, 77, 3, 6, + 11, 12, 77, 8, 15, 77, 57, 18, 19, 20, + 3, 577, 59, 6, 61, 62, 13, 14, 65, 66, + 67, 76, 77, 589, 590, 591, 3, 76, 77, 76, + 77, 8, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 7, 58, + 7, 3, 7, 21, 3, 182, 8, 58, 59, 8, + 69, 7, 30, 7, 182, 76, 77, 76, 77, 119, + 120, 121, 83, 128, 129, 76, 77, 88, 89, 90, + 91, 92, 3, 94, 109, 110, 95, 8, 99, 98, + 7, 145, 146, 59, 154, 96, 97, 108, 3, 3, + 111, 7, 6, 8, 164, 165, 166, 118, 76, 77, + 76, 77, 3, 3, 7, 126, 127, 8, 8, 130, + 131, 1085, 182, 7, 7, 3, 1085, 182, 1085, 1085, + 8, 1085, 58, 182, 3, 182, 7, 3, 3, 8, + 58, 152, 153, 8, 155, 71, 72, 73, 74, 75, + 76, 77, 6, 4, 122, 123, 124, 125, 76, 77, + 8, 3, 182, 183, 184, 185, 8, 3, 3, 95, + 6, 182, 98, 182, 3, 3, 94, 908, 890, 8, + 8, 182, 100, 101, 102, 103, 104, 105, 4, 3, + 156, 21, 158, 159, 8, 935, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 181, 13, 14, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 3, 3, 59, - 394, 58, 8, 8, 3, 3, 3, 3, 8, 8, - 8, 68, 8, 70, 3, 58, 4, 6, 4, 76, - 77, 78, 79, 80, 81, 82, 83, 4, 71, 72, - 73, 74, 75, 76, 77, 109, 110, 4, 95, 4, - 181, 98, 99, 4, 438, 3, 3, 3, 442, 106, - 8, 8, 95, 3, 3, 98, 3, 3, 8, 8, - 454, 8, 8, 457, 454, 84, 85, 86, 87, 442, - 464, 4, 454, 145, 146, 4, 454, 4, 4, 457, - 474, 454, 4, 4, 457, 4, 464, 4, 454, 4, - 484, 464, 4, 442, 454, 489, 474, 4, 454, 4, - 489, 474, 4, 489, 4, 454, 4, 8, 457, 8, - 4, 484, 454, 507, 507, 464, 489, 454, 384, 385, - 454, 181, 3, 8, 181, 474, 457, 22, 23, 24, - 25, 4, 457, 464, 507, 484, 507, 454, 181, 464, - 489, 454, 4, 484, 454, 509, 3, 181, 489, 454, - 4, 4, 454, 4, 4, 4, 4, 4, 507, 43, + 40, 41, 42, 4, 182, 4, 182, 148, 149, 150, + 151, 157, 4, 3, 160, 161, 162, 163, 8, 59, + 394, 4, 4, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 3, 3, 3, 3, 58, 8, + 8, 8, 8, 4, 185, 4, 182, 3, 68, 4, + 70, 4, 8, 4, 182, 4, 76, 77, 78, 79, + 80, 81, 82, 83, 438, 4, 4, 8, 442, 112, + 113, 114, 115, 116, 117, 95, 3, 3, 98, 99, + 454, 8, 8, 457, 454, 4, 106, 4, 3, 442, + 464, 3, 454, 8, 6, 4, 454, 3, 3, 457, + 474, 454, 8, 8, 457, 4, 464, 3, 454, 4, + 484, 464, 8, 442, 454, 489, 474, 3, 454, 4, + 489, 474, 8, 489, 3, 454, 8, 4, 457, 4, + 8, 484, 454, 507, 507, 464, 489, 454, 384, 385, + 454, 3, 182, 4, 4, 474, 457, 84, 85, 86, + 87, 8, 457, 464, 507, 484, 507, 454, 3, 464, + 489, 454, 182, 484, 454, 509, 4, 4, 489, 454, + 4, 4, 454, 22, 23, 24, 25, 4, 507, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 4, 4, 56, 4, 58, 59, 4, 4, 4, 4, - 4, 4, 58, 4, 4, 4, 4, 182, 182, 182, - 182, 182, 76, 77, 184, 79, 80, 182, 82, 83, - 76, 77, 182, 182, 4, 183, 4, 183, 182, 4, - 4, 95, 4, 4, 98, 4, 4, 4, 94, 4, - 4, 4, 106, 4, 100, 101, 102, 103, 104, 105, - 4, 4, 4, 4, 182, 4, 4, 631, 4, 4, - 4, 184, 4, 4, 638, 4, 4, 4, 182, 184, - 4, 4, 4, 4, 520, 521, 522, 4, 182, 4, - 4, 4, 76, 77, 182, 638, 182, 4, 632, 663, - 664, 4, 666, 666, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 638, - 663, 664, 4, 666, 4, 666, 4, 181, 4, 4, - 182, 4, 4, 4, 184, 181, 4, 184, 4, 184, - 4, 4, 184, 4, 663, 664, 182, 666, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 4, 4, 4, 4, 4, 182, 182, 152, 153, - 184, 184, 4, 182, 610, 4, 7, 7, 6, 181, - 7, 7, 7, 7, 5, 5, 5, 5, 93, 181, - 7, 5, 5, 5, 630, 181, 5, 181, 5, 7, - 5, 5, 181, 181, 7, 7, 7, 7, 5, 5, - 5, 5, 181, 5, 181, 181, 7, 7, 181, 7, - 7, 181, 7, 7, 7, 181, 7, 7, 7, 181, - 7, 181, 181, 181, 181, 181, 181, 147, 7, 4, - 4, 181, 4, 4, 181, 4, 4, 4, 181, 4, - 4, 181, 4, 3, 5, 181, 181, 6, 3, 6, - 3, 181, 181, 181, 6, 3, 6, 3, 184, 6, - 3, 6, 6, 3, 6, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 181, 3, 6, 3, 182, 8, - 4, 6, 4, 4, 4, 182, 184, 182, 4, 182, - 4, 182, 4, 4, 4, 182, 4, 4, 182, 4, - 4, 3, 8, 182, 184, 182, 6, 182, 4, 8, - 182, 4, 182, 182, 182, 182, 182, 181, 181, 893, - 181, 181, 896, 893, 181, 899, 181, 181, 902, 8, - 899, 893, 902, 899, 181, 893, 3, 8, 181, 913, - 893, 4, 916, 896, 902, 919, 899, 893, 181, 902, - 4, 4, 184, 893, 4, 913, 902, 893, 916, 7, - 913, 935, 902, 916, 893, 939, 902, 896, 942, 4, - 899, 893, 181, 902, 948, 896, 893, 951, 899, 893, - 902, 902, 935, 182, 913, 902, 939, 916, 902, 942, - 948, 902, 913, 951, 4, 948, 893, 902, 951, 181, - 893, 181, 4, 893, 181, 902, 935, 4, 893, 902, - 939, 893, 902, 942, 184, 181, 631, 902, 181, 948, - 902, 942, 951, 656, 182, 638, 182, 561, 438, 712, - 892, 887, 911, 442, 908, 905, 928, 948, 921, 919, - 951, 492, 895, 948, 893, 1085, 951, 81, 898, 904, - 901, 896, 484, 489, 950, 899, 916, 454, 953, 948, - 951, 679, 457, 1091, 939, 666, 918, 914, 935, 507, - 637, 464, 394, 513, 509, 943, 1125, 632, 1104, 1142, - -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + 4, 4, 56, 182, 58, 59, 4, 4, 4, 4, + 4, 4, 4, 59, 60, 61, 62, 63, 64, 4, + 4, 4, 76, 77, 4, 79, 80, 4, 82, 83, + 76, 77, 185, 183, 4, 183, 183, 4, 4, 183, + 4, 95, 184, 183, 98, 183, 183, 183, 4, 184, + 76, 77, 106, 183, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 183, 4, 631, 4, 4, + 4, 4, 4, 4, 638, 185, 4, 4, 4, 4, + 4, 185, 183, 4, 520, 521, 522, 4, 4, 4, + 4, 183, 4, 183, 4, 638, 183, 4, 632, 663, + 664, 4, 666, 666, 4, 4, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 638, + 663, 664, 4, 666, 4, 666, 152, 153, 182, 4, + 4, 4, 4, 4, 183, 4, 182, 185, 4, 4, + 185, 185, 185, 4, 663, 664, 4, 666, 4, 183, + 183, 183, 4, 4, 185, 185, 182, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 4, 4, 610, 4, 183, 4, 147, 7, + 182, 7, 7, 7, 7, 7, 5, 5, 5, 5, + 4, 182, 7, 182, 630, 5, 5, 5, 5, 93, + 5, 7, 5, 5, 182, 561, 7, 7, 7, 7, + 182, 5, 5, 5, 5, 5, 4, 182, 7, 182, + 182, 182, 182, 182, 182, 182, 7, 182, 182, 182, + 182, 182, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 4, 182, 4, 182, 4, 4, 4, 4, + 4, 4, 182, 182, 6, 3, 6, 3, 5, 182, + 182, 6, 182, 182, 182, 3, 6, 3, 3, 6, + 183, 3, 6, 6, 3, 6, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 182, 3, 6, 6, 3, + 185, 6, 8, 4, 4, 4, 4, 183, 185, 183, + 4, 4, 183, 4, 183, 4, 183, 183, 4, 4, + 4, 4, 4, 3, 182, 185, 183, 6, 4, 183, + 183, 183, 4, 183, 183, 8, 183, 8, 183, 893, + 183, 8, 896, 893, 182, 899, 182, 182, 902, 182, + 899, 893, 902, 899, 182, 893, 182, 182, 3, 913, + 893, 8, 916, 896, 902, 919, 899, 893, 4, 902, + 4, 182, 182, 893, 4, 913, 902, 893, 916, 182, + 913, 935, 902, 916, 893, 939, 902, 896, 942, 183, + 899, 893, 4, 902, 948, 896, 893, 951, 899, 893, + 902, 902, 935, 7, 913, 902, 939, 916, 902, 942, + 948, 902, 913, 951, 182, 948, 893, 902, 951, 185, + 893, 4, 4, 893, 4, 902, 935, 182, 893, 902, + 939, 893, 902, 942, 4, 4, 185, 902, 631, 948, + 902, 942, 951, 182, 656, 712, 638, 438, 182, 892, + 183, 183, 442, 182, 887, 911, 905, 948, 921, 919, + 951, 908, 182, 948, 492, 895, 951, 928, 893, 1085, + 904, 81, 896, 484, 454, 898, 950, 489, 953, 901, + 899, 948, 951, 679, 916, 457, 464, 918, 1091, 935, + 666, 939, 507, 394, 914, 637, 1104, 474, 1125, 1145, + 509, 943, -1, 513, -1, -1, -1, -1, 632, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1085, -1, -1, -1, 1085, -1, 1091, -1, -1, @@ -4718,197 +4721,199 @@ namespace isc { namespace dhcp { const unsigned short Dhcp6Parser::yystos_[] = { - 0, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 0, 5, 7, 9, 181, 182, 183, 184, - 202, 203, 204, 209, 7, 218, 7, 224, 7, 246, - 7, 344, 7, 421, 7, 437, 7, 454, 7, 373, - 7, 379, 7, 403, 7, 320, 7, 515, 7, 562, - 7, 553, 210, 205, 219, 225, 247, 345, 422, 438, - 455, 374, 380, 404, 321, 516, 563, 554, 202, 211, - 212, 181, 207, 208, 10, 154, 163, 164, 165, 181, - 217, 220, 221, 222, 545, 547, 549, 560, 11, 12, + 0, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 5, 7, 9, 182, 183, 184, 185, + 203, 204, 205, 210, 7, 219, 7, 225, 7, 247, + 7, 345, 7, 422, 7, 438, 7, 455, 7, 374, + 7, 380, 7, 404, 7, 321, 7, 516, 7, 563, + 7, 554, 211, 206, 220, 226, 248, 346, 423, 439, + 456, 375, 381, 405, 322, 517, 564, 555, 203, 212, + 213, 182, 208, 209, 10, 154, 164, 165, 166, 182, + 218, 221, 222, 223, 546, 548, 550, 561, 11, 12, 15, 18, 19, 20, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 76, 77, 83, 88, 89, 90, 91, 92, 94, 99, 108, 111, 118, 126, 127, 130, 131, 152, 153, 155, - 217, 226, 227, 228, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 244, 253, 255, - 257, 294, 300, 306, 312, 314, 328, 338, 358, 363, - 371, 397, 427, 429, 448, 478, 490, 502, 503, 511, - 513, 541, 543, 551, 566, 16, 17, 217, 248, 249, - 250, 252, 427, 429, 68, 70, 78, 79, 80, 81, - 82, 95, 98, 106, 217, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 346, 347, 348, 350, - 352, 354, 356, 358, 361, 362, 397, 415, 427, 429, - 431, 448, 473, 69, 217, 354, 356, 397, 423, 424, - 425, 427, 429, 71, 72, 73, 74, 75, 217, 354, - 356, 397, 427, 429, 439, 440, 441, 443, 444, 446, - 447, 94, 100, 101, 102, 103, 104, 105, 217, 397, - 427, 429, 456, 457, 458, 459, 461, 463, 465, 467, - 469, 471, 371, 21, 59, 61, 62, 65, 66, 67, - 217, 275, 381, 382, 383, 384, 385, 386, 387, 389, - 391, 393, 394, 396, 427, 429, 60, 63, 64, 217, - 275, 385, 391, 405, 406, 407, 408, 409, 411, 412, - 413, 414, 427, 429, 109, 110, 217, 322, 323, 324, - 326, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 217, 427, 429, 517, 518, 519, - 520, 522, 524, 525, 527, 528, 529, 532, 534, 535, - 536, 539, 541, 543, 564, 565, 566, 13, 14, 555, - 556, 557, 559, 6, 3, 4, 8, 3, 223, 561, - 546, 548, 550, 4, 3, 8, 229, 552, 245, 254, - 256, 258, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 243, 339, 372, 398, 428, 430, - 359, 364, 301, 313, 307, 295, 479, 449, 315, 329, - 491, 4, 504, 512, 514, 542, 544, 567, 3, 8, - 251, 4, 3, 8, 416, 432, 349, 351, 353, 4, - 4, 357, 355, 474, 3, 8, 426, 3, 8, 442, - 4, 445, 4, 4, 3, 8, 472, 460, 462, 464, - 466, 468, 470, 8, 3, 8, 388, 276, 4, 392, - 390, 395, 4, 8, 3, 410, 4, 4, 8, 3, - 325, 327, 3, 8, 4, 521, 523, 4, 526, 4, - 4, 530, 533, 4, 4, 537, 540, 3, 8, 3, - 8, 558, 4, 3, 8, 202, 202, 181, 4, 4, - 4, 4, 4, 221, 4, 4, 4, 4, 4, 4, - 182, 182, 182, 182, 182, 182, 182, 182, 184, 183, - 183, 182, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 182, - 4, 4, 4, 4, 4, 4, 227, 4, 184, 249, - 4, 4, 4, 4, 4, 182, 184, 4, 4, 4, - 347, 4, 424, 4, 182, 4, 182, 182, 440, 4, - 4, 4, 4, 4, 4, 4, 458, 4, 4, 182, - 4, 4, 4, 184, 383, 4, 184, 184, 407, 4, - 4, 323, 184, 4, 4, 182, 4, 182, 182, 4, - 4, 184, 184, 4, 4, 518, 565, 4, 182, 556, - 4, 7, 7, 202, 202, 202, 181, 7, 7, 7, - 7, 5, 181, 5, 5, 5, 204, 206, 181, 84, - 85, 86, 87, 360, 5, 5, 5, 5, 7, 5, - 5, 5, 7, 7, 7, 206, 7, 181, 181, 5, - 5, 213, 5, 5, 181, 181, 181, 213, 181, 7, - 181, 181, 181, 213, 213, 213, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 202, 181, 181, - 181, 145, 146, 531, 147, 148, 149, 150, 151, 184, - 538, 181, 5, 202, 226, 564, 555, 248, 21, 26, + 218, 227, 228, 229, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 245, 254, 256, + 258, 295, 301, 307, 313, 315, 329, 339, 359, 364, + 372, 398, 428, 430, 449, 479, 491, 503, 504, 512, + 514, 542, 544, 552, 567, 16, 17, 218, 249, 250, + 251, 253, 428, 430, 68, 70, 78, 79, 80, 81, + 82, 95, 98, 106, 218, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 347, 348, 349, 351, + 353, 355, 357, 359, 362, 363, 398, 416, 428, 430, + 432, 449, 474, 69, 218, 355, 357, 398, 424, 425, + 426, 428, 430, 71, 72, 73, 74, 75, 218, 355, + 357, 398, 428, 430, 440, 441, 442, 444, 445, 447, + 448, 94, 100, 101, 102, 103, 104, 105, 218, 398, + 428, 430, 457, 458, 459, 460, 462, 464, 466, 468, + 470, 472, 372, 21, 59, 61, 62, 65, 66, 67, + 218, 276, 382, 383, 384, 385, 386, 387, 388, 390, + 392, 394, 395, 397, 428, 430, 60, 63, 64, 218, + 276, 386, 392, 406, 407, 408, 409, 410, 412, 413, + 414, 415, 428, 430, 109, 110, 218, 323, 324, 325, + 327, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 218, 428, 430, 518, 519, 520, + 521, 523, 525, 526, 528, 529, 530, 533, 535, 536, + 537, 540, 542, 544, 565, 566, 567, 13, 14, 556, + 557, 558, 560, 6, 3, 4, 8, 3, 224, 562, + 547, 549, 551, 4, 3, 8, 230, 553, 246, 255, + 257, 259, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 244, 340, 373, 399, 429, 431, + 360, 365, 302, 314, 308, 296, 480, 450, 316, 330, + 492, 4, 505, 513, 515, 543, 545, 568, 3, 8, + 252, 4, 3, 8, 417, 433, 350, 352, 354, 4, + 4, 358, 356, 475, 3, 8, 427, 3, 8, 443, + 4, 446, 4, 4, 3, 8, 473, 461, 463, 465, + 467, 469, 471, 8, 3, 8, 389, 277, 4, 393, + 391, 396, 4, 8, 3, 411, 4, 4, 8, 3, + 326, 328, 3, 8, 4, 522, 524, 4, 527, 4, + 4, 531, 534, 4, 4, 538, 541, 3, 8, 3, + 8, 559, 4, 3, 8, 203, 203, 182, 4, 4, + 4, 4, 4, 222, 4, 4, 4, 4, 4, 4, + 183, 183, 183, 183, 183, 183, 183, 183, 185, 184, + 184, 183, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 183, + 4, 4, 4, 4, 4, 4, 228, 4, 185, 250, + 4, 4, 4, 4, 4, 183, 185, 4, 4, 4, + 348, 4, 425, 4, 183, 4, 183, 183, 441, 4, + 4, 4, 4, 4, 4, 4, 459, 4, 4, 183, + 4, 4, 4, 185, 384, 4, 185, 185, 408, 4, + 4, 324, 185, 4, 4, 183, 4, 183, 183, 4, + 4, 185, 185, 4, 4, 519, 566, 4, 183, 557, + 4, 7, 7, 203, 203, 203, 182, 7, 7, 7, + 7, 5, 182, 5, 5, 5, 205, 207, 182, 84, + 85, 86, 87, 361, 5, 5, 5, 5, 7, 5, + 5, 5, 7, 7, 7, 207, 7, 182, 182, 5, + 5, 214, 5, 5, 182, 182, 182, 214, 182, 7, + 182, 182, 182, 214, 214, 214, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 203, 182, 182, + 182, 145, 146, 532, 147, 148, 149, 150, 151, 185, + 539, 182, 5, 203, 227, 565, 556, 249, 21, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 217, 263, 264, 265, - 268, 270, 272, 274, 275, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 287, 288, 290, 292, 263, 7, - 259, 260, 261, 7, 340, 341, 342, 7, 375, 376, - 377, 7, 399, 400, 401, 7, 365, 366, 367, 102, - 181, 302, 303, 304, 305, 211, 103, 105, 304, 308, - 309, 310, 311, 93, 296, 297, 298, 7, 480, 481, - 7, 450, 451, 452, 7, 316, 317, 318, 112, 113, - 114, 115, 116, 117, 330, 331, 332, 333, 334, 335, - 336, 337, 21, 122, 123, 124, 125, 217, 277, 427, - 429, 492, 493, 494, 497, 498, 500, 501, 128, 129, - 217, 427, 429, 505, 506, 507, 509, 517, 7, 568, - 569, 214, 7, 417, 418, 419, 7, 433, 434, 435, - 107, 459, 475, 476, 259, 8, 8, 8, 8, 266, - 269, 271, 273, 4, 4, 4, 4, 4, 286, 4, - 4, 289, 291, 293, 4, 4, 4, 3, 8, 8, - 262, 6, 3, 343, 6, 3, 378, 6, 3, 402, - 6, 3, 368, 6, 3, 3, 6, 6, 3, 6, - 299, 3, 8, 482, 3, 6, 453, 6, 3, 319, + 37, 38, 39, 40, 41, 42, 218, 264, 265, 266, + 269, 271, 273, 275, 276, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 288, 289, 291, 293, 264, 7, + 260, 261, 262, 7, 341, 342, 343, 7, 376, 377, + 378, 7, 400, 401, 402, 7, 366, 367, 368, 102, + 182, 303, 304, 305, 306, 212, 103, 105, 305, 309, + 310, 311, 312, 93, 297, 298, 299, 7, 481, 482, + 7, 451, 452, 453, 7, 317, 318, 319, 112, 113, + 114, 115, 116, 117, 331, 332, 333, 334, 335, 336, + 337, 338, 21, 122, 123, 124, 125, 218, 278, 428, + 430, 493, 494, 495, 498, 499, 501, 502, 128, 129, + 218, 428, 430, 506, 507, 508, 510, 518, 7, 569, + 570, 215, 7, 418, 419, 420, 7, 434, 435, 436, + 107, 460, 476, 477, 260, 8, 8, 8, 8, 267, + 270, 272, 274, 4, 4, 4, 4, 4, 287, 4, + 4, 290, 292, 294, 4, 4, 4, 3, 8, 8, + 263, 6, 3, 344, 6, 3, 379, 6, 3, 403, + 6, 3, 369, 6, 3, 3, 6, 6, 3, 6, + 300, 3, 8, 483, 3, 6, 454, 6, 3, 320, 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, - 495, 499, 4, 4, 4, 3, 8, 508, 510, 3, - 8, 8, 570, 3, 6, 181, 215, 216, 420, 6, - 3, 436, 6, 3, 477, 8, 6, 4, 4, 4, - 4, 182, 184, 182, 184, 182, 4, 182, 182, 4, - 4, 4, 182, 182, 184, 264, 263, 261, 346, 342, - 381, 377, 405, 401, 217, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 275, 338, 350, 352, - 354, 356, 358, 362, 369, 370, 397, 427, 429, 473, - 367, 303, 309, 4, 297, 96, 97, 217, 275, 397, - 427, 429, 483, 484, 485, 486, 487, 489, 481, 456, - 452, 322, 318, 182, 182, 182, 182, 182, 182, 331, - 4, 4, 182, 182, 182, 493, 4, 4, 506, 156, - 158, 159, 217, 275, 427, 429, 571, 572, 573, 574, - 576, 569, 6, 3, 423, 419, 439, 435, 4, 22, - 23, 24, 25, 267, 181, 181, 181, 181, 181, 181, - 181, 8, 8, 8, 8, 3, 8, 181, 488, 4, - 8, 3, 8, 8, 119, 120, 121, 496, 181, 181, - 181, 577, 4, 575, 3, 8, 181, 8, 8, 181, - 370, 4, 184, 485, 4, 182, 4, 572, 181, 5, - 181, 7, 578, 579, 580, 3, 6, 157, 160, 161, - 162, 581, 582, 583, 585, 586, 587, 579, 584, 4, - 4, 4, 3, 8, 4, 184, 182, 182, 582, 181 + 496, 500, 4, 4, 4, 3, 8, 509, 511, 3, + 8, 8, 571, 3, 6, 182, 216, 217, 421, 6, + 3, 437, 6, 3, 478, 8, 6, 4, 4, 4, + 4, 183, 185, 183, 185, 183, 4, 183, 183, 4, + 4, 4, 183, 183, 185, 265, 264, 262, 347, 343, + 382, 378, 406, 402, 218, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 276, 339, 351, 353, + 355, 357, 359, 363, 370, 371, 398, 428, 430, 474, + 368, 304, 310, 4, 298, 96, 97, 218, 276, 398, + 428, 430, 484, 485, 486, 487, 488, 490, 482, 457, + 453, 323, 319, 183, 183, 183, 183, 183, 183, 332, + 4, 4, 183, 183, 183, 494, 4, 4, 507, 156, + 158, 159, 218, 276, 428, 430, 572, 573, 574, 575, + 577, 570, 6, 3, 424, 420, 440, 436, 4, 22, + 23, 24, 25, 268, 182, 182, 182, 182, 182, 182, + 182, 8, 8, 8, 8, 3, 8, 182, 489, 4, + 8, 3, 8, 8, 119, 120, 121, 497, 182, 182, + 182, 578, 4, 576, 3, 8, 182, 8, 8, 182, + 371, 4, 185, 486, 4, 183, 4, 573, 182, 5, + 182, 7, 579, 580, 581, 3, 6, 157, 160, 161, + 162, 163, 582, 583, 584, 586, 587, 588, 589, 580, + 585, 4, 4, 4, 590, 3, 8, 4, 185, 183, + 183, 4, 583, 182, 182 }; const unsigned short Dhcp6Parser::yyr1_[] = { - 0, 185, 187, 186, 188, 186, 189, 186, 190, 186, - 191, 186, 192, 186, 193, 186, 194, 186, 195, 186, - 196, 186, 197, 186, 198, 186, 199, 186, 200, 186, - 201, 186, 202, 202, 202, 202, 202, 202, 202, 203, - 205, 204, 206, 207, 207, 208, 208, 210, 209, 211, - 211, 212, 212, 214, 213, 215, 215, 216, 216, 217, - 219, 218, 220, 220, 221, 221, 221, 221, 221, 221, - 223, 222, 225, 224, 226, 226, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 229, - 228, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 243, 242, 245, 244, 247, 246, 248, - 248, 249, 249, 249, 249, 249, 251, 250, 252, 254, - 253, 256, 255, 258, 257, 259, 259, 260, 260, 262, - 261, 263, 263, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 266, 265, 267, 267, 267, 267, 269, - 268, 271, 270, 273, 272, 274, 276, 275, 277, 278, - 279, 280, 281, 282, 283, 284, 286, 285, 287, 289, - 288, 291, 290, 293, 292, 295, 294, 296, 296, 297, - 299, 298, 301, 300, 302, 302, 303, 303, 304, 305, - 307, 306, 308, 308, 309, 309, 309, 310, 311, 313, - 312, 315, 314, 316, 316, 317, 317, 319, 318, 321, - 320, 322, 322, 322, 323, 323, 325, 324, 327, 326, - 329, 328, 330, 330, 331, 331, 331, 331, 331, 331, - 332, 333, 334, 335, 336, 337, 339, 338, 340, 340, - 341, 341, 343, 342, 345, 344, 346, 346, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 349, 348, 351, 350, 353, - 352, 355, 354, 357, 356, 359, 358, 360, 360, 360, - 360, 361, 362, 364, 363, 365, 365, 366, 366, 368, - 367, 369, 369, 370, 370, 370, 370, 370, 370, 370, - 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - 370, 370, 370, 370, 370, 370, 370, 372, 371, 374, - 373, 375, 375, 376, 376, 378, 377, 380, 379, 381, - 381, 382, 382, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 384, 385, 386, 388, 387, 390, 389, - 392, 391, 393, 395, 394, 396, 398, 397, 399, 399, - 400, 400, 402, 401, 404, 403, 405, 405, 406, 406, - 407, 407, 407, 407, 407, 407, 407, 407, 407, 408, - 410, 409, 411, 412, 413, 414, 416, 415, 417, 417, - 418, 418, 420, 419, 422, 421, 423, 423, 424, 424, - 424, 424, 424, 424, 424, 426, 425, 428, 427, 430, - 429, 432, 431, 433, 433, 434, 434, 436, 435, 438, - 437, 439, 439, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 442, 441, 443, 445, 444, 446, - 447, 449, 448, 450, 450, 451, 451, 453, 452, 455, - 454, 456, 456, 457, 457, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 460, 459, 462, 461, - 464, 463, 466, 465, 468, 467, 470, 469, 472, 471, - 474, 473, 475, 475, 477, 476, 479, 478, 480, 480, - 482, 481, 483, 483, 484, 484, 485, 485, 485, 485, - 485, 485, 485, 486, 488, 487, 489, 491, 490, 492, - 492, 493, 493, 493, 493, 493, 493, 493, 493, 493, - 495, 494, 496, 496, 496, 497, 499, 498, 500, 501, - 502, 504, 503, 505, 505, 506, 506, 506, 506, 506, - 508, 507, 510, 509, 512, 511, 514, 513, 516, 515, - 517, 517, 518, 518, 518, 518, 518, 518, 518, 518, - 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, - 519, 521, 520, 523, 522, 524, 526, 525, 527, 528, - 530, 529, 531, 531, 533, 532, 534, 535, 537, 536, - 538, 538, 538, 538, 538, 540, 539, 542, 541, 544, - 543, 546, 545, 548, 547, 550, 549, 552, 551, 554, - 553, 555, 555, 556, 556, 558, 557, 559, 561, 560, - 563, 562, 564, 564, 565, 567, 566, 568, 568, 570, - 569, 571, 571, 572, 572, 572, 572, 572, 572, 572, - 573, 575, 574, 577, 576, 578, 578, 580, 579, 581, - 581, 582, 582, 582, 582, 584, 583, 585, 586, 587 + 0, 186, 188, 187, 189, 187, 190, 187, 191, 187, + 192, 187, 193, 187, 194, 187, 195, 187, 196, 187, + 197, 187, 198, 187, 199, 187, 200, 187, 201, 187, + 202, 187, 203, 203, 203, 203, 203, 203, 203, 204, + 206, 205, 207, 208, 208, 209, 209, 211, 210, 212, + 212, 213, 213, 215, 214, 216, 216, 217, 217, 218, + 220, 219, 221, 221, 222, 222, 222, 222, 222, 222, + 224, 223, 226, 225, 227, 227, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 230, + 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 244, 243, 246, 245, 248, 247, 249, + 249, 250, 250, 250, 250, 250, 252, 251, 253, 255, + 254, 257, 256, 259, 258, 260, 260, 261, 261, 263, + 262, 264, 264, 265, 265, 265, 265, 265, 265, 265, + 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, + 265, 265, 265, 267, 266, 268, 268, 268, 268, 270, + 269, 272, 271, 274, 273, 275, 277, 276, 278, 279, + 280, 281, 282, 283, 284, 285, 287, 286, 288, 290, + 289, 292, 291, 294, 293, 296, 295, 297, 297, 298, + 300, 299, 302, 301, 303, 303, 304, 304, 305, 306, + 308, 307, 309, 309, 310, 310, 310, 311, 312, 314, + 313, 316, 315, 317, 317, 318, 318, 320, 319, 322, + 321, 323, 323, 323, 324, 324, 326, 325, 328, 327, + 330, 329, 331, 331, 332, 332, 332, 332, 332, 332, + 333, 334, 335, 336, 337, 338, 340, 339, 341, 341, + 342, 342, 344, 343, 346, 345, 347, 347, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 350, 349, 352, 351, 354, + 353, 356, 355, 358, 357, 360, 359, 361, 361, 361, + 361, 362, 363, 365, 364, 366, 366, 367, 367, 369, + 368, 370, 370, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 373, 372, 375, + 374, 376, 376, 377, 377, 379, 378, 381, 380, 382, + 382, 383, 383, 384, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 385, 386, 387, 389, 388, 391, 390, + 393, 392, 394, 396, 395, 397, 399, 398, 400, 400, + 401, 401, 403, 402, 405, 404, 406, 406, 407, 407, + 408, 408, 408, 408, 408, 408, 408, 408, 408, 409, + 411, 410, 412, 413, 414, 415, 417, 416, 418, 418, + 419, 419, 421, 420, 423, 422, 424, 424, 425, 425, + 425, 425, 425, 425, 425, 427, 426, 429, 428, 431, + 430, 433, 432, 434, 434, 435, 435, 437, 436, 439, + 438, 440, 440, 441, 441, 441, 441, 441, 441, 441, + 441, 441, 441, 441, 443, 442, 444, 446, 445, 447, + 448, 450, 449, 451, 451, 452, 452, 454, 453, 456, + 455, 457, 457, 458, 458, 459, 459, 459, 459, 459, + 459, 459, 459, 459, 459, 459, 461, 460, 463, 462, + 465, 464, 467, 466, 469, 468, 471, 470, 473, 472, + 475, 474, 476, 476, 478, 477, 480, 479, 481, 481, + 483, 482, 484, 484, 485, 485, 486, 486, 486, 486, + 486, 486, 486, 487, 489, 488, 490, 492, 491, 493, + 493, 494, 494, 494, 494, 494, 494, 494, 494, 494, + 496, 495, 497, 497, 497, 498, 500, 499, 501, 502, + 503, 505, 504, 506, 506, 507, 507, 507, 507, 507, + 509, 508, 511, 510, 513, 512, 515, 514, 517, 516, + 518, 518, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, + 520, 522, 521, 524, 523, 525, 527, 526, 528, 529, + 531, 530, 532, 532, 534, 533, 535, 536, 538, 537, + 539, 539, 539, 539, 539, 541, 540, 543, 542, 545, + 544, 547, 546, 549, 548, 551, 550, 553, 552, 555, + 554, 556, 556, 557, 557, 559, 558, 560, 562, 561, + 564, 563, 565, 565, 566, 568, 567, 569, 569, 571, + 570, 572, 572, 573, 573, 573, 573, 573, 573, 573, + 574, 576, 575, 578, 577, 579, 579, 581, 580, 582, + 582, 583, 583, 583, 583, 583, 585, 584, 586, 587, + 588, 590, 589 }; const unsigned char @@ -4984,7 +4989,8 @@ namespace isc { namespace dhcp { 0, 4, 1, 3, 1, 0, 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, - 3, 1, 1, 1, 1, 0, 4, 3, 3, 3 + 3, 1, 1, 1, 1, 1, 0, 4, 3, 3, + 3, 0, 4 }; @@ -5041,10 +5047,10 @@ namespace isc { namespace dhcp { "\"when-not-present\"", "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"Logging\"", "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", - "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"Dhcp4\"", "\"DhcpDdns\"", - "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", "SUB_DHCP6", - "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", "SUB_PD_POOL", - "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF", + "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "\"Dhcp4\"", + "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", + "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", + "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF", "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING", "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", @@ -5142,84 +5148,85 @@ namespace isc { namespace dhcp { "logger_param", "debuglevel", "severity", "$@128", "output_options_list", "$@129", "output_options_list_content", "output_entry", "$@130", "output_params_list", "output_params", "output", "$@131", "flush", - "maxsize", "maxver", YY_NULLPTR + "maxsize", "maxver", "pattern", "$@132", YY_NULLPTR }; #if PARSER6_DEBUG const unsigned short Dhcp6Parser::yyrline_[] = { - 0, 269, 269, 269, 270, 270, 271, 271, 272, 272, - 273, 273, 274, 274, 275, 275, 276, 276, 277, 277, - 278, 278, 279, 279, 280, 280, 281, 281, 282, 282, - 283, 283, 291, 292, 293, 294, 295, 296, 297, 300, - 305, 305, 316, 319, 320, 323, 327, 334, 334, 341, - 342, 345, 349, 356, 356, 363, 364, 367, 371, 382, - 392, 392, 407, 408, 412, 413, 414, 415, 416, 417, - 420, 420, 435, 435, 444, 445, 450, 451, 452, 453, - 454, 455, 456, 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, 495, - 495, 503, 508, 513, 518, 523, 528, 533, 538, 543, - 548, 553, 558, 563, 563, 571, 571, 582, 582, 591, - 592, 595, 596, 597, 598, 599, 602, 602, 612, 618, - 618, 630, 630, 642, 642, 652, 653, 656, 657, 660, - 660, 670, 671, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 696, 696, 703, 704, 705, 706, 709, - 709, 717, 717, 725, 725, 733, 738, 738, 746, 751, - 756, 761, 766, 771, 776, 781, 786, 786, 794, 799, - 799, 807, 807, 815, 815, 823, 823, 833, 834, 836, - 838, 838, 856, 856, 866, 867, 870, 871, 874, 879, - 884, 884, 894, 895, 898, 899, 900, 903, 908, 915, - 915, 925, 925, 935, 936, 939, 940, 943, 943, 953, - 953, 963, 964, 965, 968, 969, 972, 972, 980, 980, - 988, 988, 999, 1000, 1003, 1004, 1005, 1006, 1007, 1008, - 1011, 1016, 1021, 1026, 1031, 1036, 1044, 1044, 1057, 1058, - 1061, 1062, 1069, 1069, 1095, 1095, 1106, 1107, 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, 1137, 1140, 1140, 1148, 1148, 1156, - 1156, 1164, 1164, 1172, 1172, 1182, 1182, 1189, 1190, 1191, - 1192, 1195, 1200, 1208, 1208, 1219, 1220, 1224, 1225, 1228, - 1228, 1236, 1237, 1240, 1241, 1242, 1243, 1244, 1245, 1246, - 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, - 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1270, 1270, 1283, - 1283, 1292, 1293, 1296, 1297, 1302, 1302, 1317, 1317, 1331, - 1332, 1335, 1336, 1339, 1340, 1341, 1342, 1343, 1344, 1345, - 1346, 1347, 1348, 1351, 1353, 1358, 1360, 1360, 1368, 1368, - 1376, 1376, 1384, 1386, 1386, 1394, 1403, 1403, 1415, 1416, - 1421, 1422, 1427, 1427, 1439, 1439, 1451, 1452, 1457, 1458, - 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1474, - 1476, 1476, 1484, 1486, 1488, 1493, 1501, 1501, 1513, 1514, - 1517, 1518, 1521, 1521, 1531, 1531, 1540, 1541, 1544, 1545, - 1546, 1547, 1548, 1549, 1550, 1553, 1553, 1561, 1561, 1586, - 1586, 1616, 1616, 1628, 1629, 1632, 1633, 1636, 1636, 1648, - 1648, 1660, 1661, 1664, 1665, 1666, 1667, 1668, 1669, 1670, - 1671, 1672, 1673, 1674, 1677, 1677, 1685, 1690, 1690, 1698, - 1703, 1711, 1711, 1721, 1722, 1725, 1726, 1729, 1729, 1738, - 1738, 1747, 1748, 1751, 1752, 1756, 1757, 1758, 1759, 1760, - 1761, 1762, 1763, 1764, 1765, 1766, 1769, 1769, 1779, 1779, - 1789, 1789, 1797, 1797, 1805, 1805, 1813, 1813, 1821, 1821, - 1834, 1834, 1844, 1845, 1848, 1848, 1859, 1859, 1869, 1870, - 1873, 1873, 1883, 1884, 1887, 1888, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1900, 1902, 1902, 1910, 1918, 1918, 1930, - 1931, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, - 1945, 1945, 1952, 1953, 1954, 1957, 1962, 1962, 1970, 1975, - 1982, 1989, 1989, 1999, 2000, 2003, 2004, 2005, 2006, 2007, - 2010, 2010, 2018, 2018, 2028, 2028, 2068, 2068, 2080, 2080, - 2090, 2091, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, - 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, - 2114, 2119, 2119, 2127, 2127, 2135, 2140, 2140, 2148, 2153, - 2158, 2158, 2166, 2167, 2170, 2170, 2178, 2183, 2188, 2188, - 2196, 2199, 2202, 2205, 2208, 2214, 2214, 2222, 2222, 2230, - 2230, 2240, 2240, 2247, 2247, 2254, 2254, 2263, 2263, 2274, - 2274, 2284, 2285, 2289, 2290, 2293, 2293, 2303, 2313, 2313, - 2323, 2323, 2334, 2335, 2339, 2343, 2343, 2355, 2356, 2360, - 2360, 2368, 2369, 2372, 2373, 2374, 2375, 2376, 2377, 2378, - 2381, 2386, 2386, 2394, 2394, 2404, 2405, 2408, 2408, 2416, - 2417, 2420, 2421, 2422, 2423, 2426, 2426, 2434, 2439, 2444 + 0, 270, 270, 270, 271, 271, 272, 272, 273, 273, + 274, 274, 275, 275, 276, 276, 277, 277, 278, 278, + 279, 279, 280, 280, 281, 281, 282, 282, 283, 283, + 284, 284, 292, 293, 294, 295, 296, 297, 298, 301, + 306, 306, 317, 320, 321, 324, 328, 335, 335, 342, + 343, 346, 350, 357, 357, 364, 365, 368, 372, 383, + 393, 393, 408, 409, 413, 414, 415, 416, 417, 418, + 421, 421, 436, 436, 445, 446, 451, 452, 453, 454, + 455, 456, 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, 496, + 496, 504, 509, 514, 519, 524, 529, 534, 539, 544, + 549, 554, 559, 564, 564, 572, 572, 583, 583, 592, + 593, 596, 597, 598, 599, 600, 603, 603, 613, 619, + 619, 631, 631, 643, 643, 653, 654, 657, 658, 661, + 661, 671, 672, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 697, 697, 704, 705, 706, 707, 710, + 710, 718, 718, 726, 726, 734, 739, 739, 747, 752, + 757, 762, 767, 772, 777, 782, 787, 787, 795, 800, + 800, 808, 808, 816, 816, 824, 824, 834, 835, 837, + 839, 839, 857, 857, 867, 868, 871, 872, 875, 880, + 885, 885, 895, 896, 899, 900, 901, 904, 909, 916, + 916, 926, 926, 936, 937, 940, 941, 944, 944, 954, + 954, 964, 965, 966, 969, 970, 973, 973, 981, 981, + 989, 989, 1000, 1001, 1004, 1005, 1006, 1007, 1008, 1009, + 1012, 1017, 1022, 1027, 1032, 1037, 1045, 1045, 1058, 1059, + 1062, 1063, 1070, 1070, 1096, 1096, 1107, 1108, 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, 1137, 1138, 1141, 1141, 1149, 1149, 1157, + 1157, 1165, 1165, 1173, 1173, 1183, 1183, 1190, 1191, 1192, + 1193, 1196, 1201, 1209, 1209, 1220, 1221, 1225, 1226, 1229, + 1229, 1237, 1238, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1271, 1271, 1284, + 1284, 1293, 1294, 1297, 1298, 1303, 1303, 1318, 1318, 1332, + 1333, 1336, 1337, 1340, 1341, 1342, 1343, 1344, 1345, 1346, + 1347, 1348, 1349, 1352, 1354, 1359, 1361, 1361, 1369, 1369, + 1377, 1377, 1385, 1387, 1387, 1395, 1404, 1404, 1416, 1417, + 1422, 1423, 1428, 1428, 1440, 1440, 1452, 1453, 1458, 1459, + 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1475, + 1477, 1477, 1485, 1487, 1489, 1494, 1502, 1502, 1514, 1515, + 1518, 1519, 1522, 1522, 1532, 1532, 1541, 1542, 1545, 1546, + 1547, 1548, 1549, 1550, 1551, 1554, 1554, 1562, 1562, 1587, + 1587, 1617, 1617, 1629, 1630, 1633, 1634, 1637, 1637, 1649, + 1649, 1661, 1662, 1665, 1666, 1667, 1668, 1669, 1670, 1671, + 1672, 1673, 1674, 1675, 1678, 1678, 1686, 1691, 1691, 1699, + 1704, 1712, 1712, 1722, 1723, 1726, 1727, 1730, 1730, 1739, + 1739, 1748, 1749, 1752, 1753, 1757, 1758, 1759, 1760, 1761, + 1762, 1763, 1764, 1765, 1766, 1767, 1770, 1770, 1780, 1780, + 1790, 1790, 1798, 1798, 1806, 1806, 1814, 1814, 1822, 1822, + 1835, 1835, 1845, 1846, 1849, 1849, 1860, 1860, 1870, 1871, + 1874, 1874, 1884, 1885, 1888, 1889, 1892, 1893, 1894, 1895, + 1896, 1897, 1898, 1901, 1903, 1903, 1911, 1919, 1919, 1931, + 1932, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, + 1946, 1946, 1953, 1954, 1955, 1958, 1963, 1963, 1971, 1976, + 1983, 1990, 1990, 2000, 2001, 2004, 2005, 2006, 2007, 2008, + 2011, 2011, 2019, 2019, 2029, 2029, 2069, 2069, 2081, 2081, + 2091, 2092, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, + 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, + 2115, 2120, 2120, 2128, 2128, 2136, 2141, 2141, 2149, 2154, + 2159, 2159, 2167, 2168, 2171, 2171, 2179, 2184, 2189, 2189, + 2197, 2200, 2203, 2206, 2209, 2215, 2215, 2223, 2223, 2231, + 2231, 2241, 2241, 2248, 2248, 2255, 2255, 2264, 2264, 2275, + 2275, 2285, 2286, 2290, 2291, 2294, 2294, 2304, 2314, 2314, + 2324, 2324, 2335, 2336, 2340, 2344, 2344, 2356, 2357, 2361, + 2361, 2369, 2370, 2373, 2374, 2375, 2376, 2377, 2378, 2379, + 2382, 2387, 2387, 2395, 2395, 2405, 2406, 2409, 2409, 2417, + 2418, 2421, 2422, 2423, 2424, 2425, 2428, 2428, 2436, 2441, + 2446, 2451, 2451 }; // Print the state stack on the debug stream. @@ -5252,11 +5259,10 @@ namespace isc { namespace dhcp { #endif // PARSER6_DEBUG -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:1218 } } // isc::dhcp -#line 5258 "dhcp6_parser.cc" - -#line 2449 "dhcp6_parser.yy" +#line 5265 "dhcp6_parser.cc" // lalr1.cc:1218 +#line 2459 "dhcp6_parser.yy" // lalr1.cc:1219 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 3feac2a89a..ba35ee450d 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.4.1. +// A Bison parser, made by GNU Bison 3.2.1. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 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 @@ -44,7 +44,7 @@ #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED // // "%code requires" blocks. -#line 17 "dhcp6_parser.yy" +#line 17 "dhcp6_parser.yy" // lalr1.cc:404 #include #include @@ -56,7 +56,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 60 "dhcp6_parser.h" +#line 60 "dhcp6_parser.h" // lalr1.cc:404 # include # include // std::abort @@ -65,14 +65,8 @@ using namespace std; # include # include -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - // Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS +#if defined __cplusplus && 201103L <= __cplusplus # define YY_MOVE std::move # define YY_MOVE_OR_COPY move # define YY_MOVE_REF(Type) Type&& @@ -85,22 +79,6 @@ using namespace std; # 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 "location.hh" #include #ifndef YYASSERT @@ -178,80 +156,193 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:404 namespace isc { namespace dhcp { -#line 184 "dhcp6_parser.h" +#line 162 "dhcp6_parser.h" // lalr1.cc:404 + + /// A stack with random access from its top. + template > + class stack + { + public: + // Hide our reversed order. + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; + typedef typename S::size_type size_type; + stack (size_type n = 200) + : seq_ (n) + {} + + /// Random access. + /// + /// Index 0 returns the topmost element. + T& + operator[] (size_type i) + { + return seq_[size () - 1 - i]; + } + /// Random access. + /// + /// Index 0 returns the topmost element. + T& + operator[] (int i) + { + return operator[] (size_type (i)); + } + /// Random access. + /// + /// Index 0 returns the topmost element. + const T& + operator[] (size_type i) const + { + return seq_[size () - 1 - i]; + } - /// A Bison parser. - class Dhcp6Parser + /// Random access. + /// + /// Index 0 returns the topmost element. + const T& + operator[] (int i) const + { + return operator[] (size_type (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); + } + + void + pop (int n = 1) + { + for (; 0 < n; --n) + seq_.pop_back (); + } + + void + clear () + { + seq_.clear (); + } + + size_type + size () const + { + return seq_.size (); + } + + const_iterator + begin () const + { + return seq_.rbegin (); + } + + const_iterator + end () const + { + return seq_.rend (); + } + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Present a slice of the top of a stack. + template > + class slice { public: -#ifndef PARSER6_STYPE - /// A buffer to store and retrieve objects. + slice (const S& stack, int range) + : stack_ (stack) + , range_ (range) + {} + + const T& + operator[] (int i) const + { + return stack_[range_ - i]; + } + + private: + const S& stack_; + int range_; + }; + + + + /// A char[S] buffer to store and retrieve objects. /// /// Sort of a variant, but does not keep track of the nature /// of the stored data, since that knowledge is available - /// via the current parser state. - class semantic_type + /// via the current state. + template + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT + variant () : yybuffer_ () , yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template - semantic_type (YY_RVREF (T) t) + variant (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); new (yyas_ ()) T (YY_MOVE (t)); } /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~variant () { YYASSERT (!yytypeid_); } -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template - T& - emplace (U&&... u) - { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (std::forward (u)...); - } -# else /// Instantiate an empty \a T in here. template T& emplace () { YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (); } +# if defined __cplusplus && 201103L <= __cplusplus + /// Instantiate a \a T in here from \a t. + template + T& + emplace (U&& u) + { + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); + yytypeid_ = & typeid (T); + return *new (yyas_ ()) T (std::forward (u)); + } +# else /// Instantiate a \a T in here from \a t. template T& emplace (const T& t) { YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (t); } @@ -278,75 +369,75 @@ namespace isc { namespace dhcp { /// Accessor to a built \a T. template T& - as () YY_NOEXCEPT + as () { YYASSERT (yytypeid_); YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } /// Const accessor to a built \a T (for %printer). template const T& - as () const YY_NOEXCEPT + as () const { YYASSERT (yytypeid_); YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } - /// Swap the content with \a that, of same type. + /// Swap the content with \a other, of same type. /// /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which /// should not be the variant's responsibility. /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). + /// variant::move (). template void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as (), that.as ()); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as (), other.as ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. + /// Destroys \a other. template void - move (self_type& that) + move (self_type& other) { -# if 201103L <= YY_CPLUSPLUS - emplace (std::move (that.as ())); +# if defined __cplusplus && 201103L <= __cplusplus + emplace (std::move (other.as ())); # else emplace (); - swap (that); + swap (other); # endif - that.destroy (); + other.destroy (); } -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. +# if defined __cplusplus && 201103L <= __cplusplus + /// Move the content of \a other to this. template void - move (self_type&& that) + move (self_type&& other) { - emplace (std::move (that.as ())); - that.destroy (); + emplace (std::move (other.as ())); + other.destroy (); } #endif - /// Copy the content of \a that to this. + /// Copy the content of \a other to this. template void - copy (const self_type& that) + copy (const self_type& other) { - emplace (that.as ()); + emplace (other.as ()); } /// Destroy the stored \a T. @@ -361,12 +452,12 @@ namespace isc { namespace dhcp { private: /// Prohibit blind copies. self_type& operator= (const self_type&); - semantic_type (const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast (yyp); @@ -375,12 +466,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast (yyp); } + union + { + /// Strongest alignment constraints. + long double yyalign_me; + /// A buffer large enough to store any of the semantic values. + char yyraw[S]; + } yybuffer_; + + /// Whether the content is built: if defined, the name of the stored type. + const std::type_info *yytypeid_; + }; + + + /// A Bison parser. + class Dhcp6Parser + { + public: +#ifndef PARSER6_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -404,24 +513,10 @@ namespace isc { namespace dhcp { // "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_; - }; +}; + /// Symbol semantic values. + typedef variant semantic_type; #else typedef PARSER6_STYPE semantic_type; #endif @@ -431,18 +526,7 @@ namespace isc { namespace dhcp { /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - + syntax_error (const location_type& l, const std::string& m); location_type location; }; @@ -612,28 +696,29 @@ namespace isc { namespace dhcp { TOKEN_FLUSH = 415, TOKEN_MAXSIZE = 416, TOKEN_MAXVER = 417, - TOKEN_DHCP4 = 418, - TOKEN_DHCPDDNS = 419, - TOKEN_CONTROL_AGENT = 420, - TOKEN_TOPLEVEL_JSON = 421, - TOKEN_TOPLEVEL_DHCP6 = 422, - TOKEN_SUB_DHCP6 = 423, - TOKEN_SUB_INTERFACES6 = 424, - TOKEN_SUB_SUBNET6 = 425, - TOKEN_SUB_POOL6 = 426, - TOKEN_SUB_PD_POOL = 427, - TOKEN_SUB_RESERVATION = 428, - TOKEN_SUB_OPTION_DEFS = 429, - TOKEN_SUB_OPTION_DEF = 430, - TOKEN_SUB_OPTION_DATA = 431, - TOKEN_SUB_HOOKS_LIBRARY = 432, - TOKEN_SUB_DHCP_DDNS = 433, - TOKEN_SUB_LOGGING = 434, - TOKEN_SUB_CONFIG_CONTROL = 435, - TOKEN_STRING = 436, - TOKEN_INTEGER = 437, - TOKEN_FLOAT = 438, - TOKEN_BOOLEAN = 439 + TOKEN_PATTERN = 418, + TOKEN_DHCP4 = 419, + TOKEN_DHCPDDNS = 420, + TOKEN_CONTROL_AGENT = 421, + TOKEN_TOPLEVEL_JSON = 422, + TOKEN_TOPLEVEL_DHCP6 = 423, + TOKEN_SUB_DHCP6 = 424, + TOKEN_SUB_INTERFACES6 = 425, + TOKEN_SUB_SUBNET6 = 426, + TOKEN_SUB_POOL6 = 427, + TOKEN_SUB_PD_POOL = 428, + TOKEN_SUB_RESERVATION = 429, + TOKEN_SUB_OPTION_DEFS = 430, + TOKEN_SUB_OPTION_DEF = 431, + TOKEN_SUB_OPTION_DATA = 432, + TOKEN_SUB_HOOKS_LIBRARY = 433, + TOKEN_SUB_DHCP_DDNS = 434, + TOKEN_SUB_LOGGING = 435, + TOKEN_SUB_CONFIG_CONTROL = 436, + TOKEN_STRING = 437, + TOKEN_INTEGER = 438, + TOKEN_FLOAT = 439, + TOKEN_BOOLEAN = 440 }; }; @@ -662,154 +747,29 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that); -#endif + basic_symbol (); + + /// Move or copy constructor. + basic_symbol (YY_RVREF (basic_symbol) other); - /// Copy constructor. - basic_symbol (const basic_symbol& that); /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif + basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (ElementPtr) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (bool) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (double) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (int64_t) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l); + /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + ~basic_symbol (); /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. -switch (yytype) - { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value - value.template destroy< ElementPtr > (); - break; - - case 184: // "boolean" - value.template destroy< bool > (); - break; - - case 183: // "floating point" - value.template destroy< double > (); - break; - - case 182: // "integer" - value.template destroy< int64_t > (); - break; - - case 181: // "constant string" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); - } + void clear (); /// Whether empty. - bool empty () const YY_NOEXCEPT; + bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -821,9 +781,9 @@ switch (yytype) location_type location; private: -#if YY_CPLUSPLUS < 201103L +#if !defined __cplusplus || __cplusplus < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); + basic_symbol& operator= (const basic_symbol& other); #endif }; @@ -833,13 +793,8 @@ switch (yytype) /// Default constructor. by_type (); -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_type (by_type&& that); -#endif - /// Copy constructor. - by_type (const by_type& that); + by_type (const by_type& other); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -855,10 +810,10 @@ switch (yytype) /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const; /// The token. - token_type token () const YY_NOEXCEPT; + token_type token () const; /// The symbol type. /// \a empty_symbol when empty. @@ -867,81 +822,7 @@ switch (yytype) }; /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol - { - /// Superclass. - typedef basic_symbol super_type; - - /// Empty symbol. - symbol_type () {} - - /// 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)) - { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, bool v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YYASSERT (tok == token::TOKEN_BOOLEAN); - } -#else - symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (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)) - { - YYASSERT (tok == token::TOKEN_FLOAT); - } -#else - symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (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)) - { - YYASSERT (tok == token::TOKEN_INTEGER); - } -#else - symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (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)) - { - YYASSERT (tok == token::TOKEN_STRING); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (tok == token::TOKEN_STRING); - } -#endif - }; + typedef basic_symbol symbol_type; /// Build a parser object. Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg); @@ -977,3354 +858,2570 @@ switch (yytype) /// Report a syntax error. void error (const syntax_error& err); - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOKEN_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMA (location_type l) - { - return symbol_type (token::TOKEN_COMMA, std::move (l)); - } -#else - static - symbol_type - make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COLON (location_type l) - { - return symbol_type (token::TOKEN_COLON, std::move (l)); - } -#else - static - symbol_type - make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NULL_TYPE (location_type l) - { - return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); - } -#else - static - symbol_type - make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA_DIRECTORY (location_type l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, std::move (l)); - } -#else - static - symbol_type - make_DATA_DIRECTORY (const location_type& l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES_CONFIG (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RE_DETECT (location_type l) - { - return symbol_type (token::TOKEN_RE_DETECT, std::move (l)); - } -#else - static - symbol_type - make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TYPE (location_type l) - { - return symbol_type (token::TOKEN_TYPE, std::move (l)); - } -#else - static - symbol_type - make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MEMFILE (location_type l) - { - return symbol_type (token::TOKEN_MEMFILE, std::move (l)); - } -#else - static - symbol_type - make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MYSQL (location_type l) - { - return symbol_type (token::TOKEN_MYSQL, std::move (l)); - } -#else - static - symbol_type - make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POSTGRESQL (location_type l) - { - return symbol_type (token::TOKEN_POSTGRESQL, std::move (l)); - } -#else - static - symbol_type - make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CQL (location_type l) - { - return symbol_type (token::TOKEN_CQL, std::move (l)); - } -#else - static - symbol_type - make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER (location_type l) - { - return symbol_type (token::TOKEN_USER, std::move (l)); - } -#else - static - symbol_type - make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PASSWORD (location_type l) - { - return symbol_type (token::TOKEN_PASSWORD, std::move (l)); - } -#else - static - symbol_type - make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST (location_type l) - { - return symbol_type (token::TOKEN_HOST, std::move (l)); - } -#else - static - symbol_type - make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PORT (location_type l) - { - return symbol_type (token::TOKEN_PORT, std::move (l)); - } -#else - static - symbol_type - make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PERSIST (location_type l) - { - return symbol_type (token::TOKEN_PERSIST, std::move (l)); - } -#else - static - symbol_type - make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LFC_INTERVAL (location_type l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l)); - } -#else - static - symbol_type - make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_READONLY (location_type l) - { - return symbol_type (token::TOKEN_READONLY, std::move (l)); - } -#else - static - symbol_type - make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONNECT_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECONNECT_TRIES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECONNECT_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_KEYSPACE (location_type l) - { - return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); - } -#else - static - symbol_type - make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERIAL_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_SERIAL_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUEST_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_KEEPALIVE (location_type l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l)); - } -#else - static - symbol_type - make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_NODELAY (location_type l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l)); - } -#else - static - symbol_type - make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RENEW_TIMER (location_type l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l)); - } -#else - static - symbol_type - make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REBIND_TIMER (location_type l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l)); - } -#else - static - symbol_type - make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CALCULATE_TEE_TIMES (location_type l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l)); - } -#else - static - symbol_type - make_CALCULATE_TEE_TIMES (const location_type& l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T1_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T1_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T1_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T1_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T2_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T2_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T2_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T2_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DECLINE_PROBATION_PERIOD (location_type l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l)); - } -#else - static - symbol_type - make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_TAG (location_type l) - { - return symbol_type (token::TOKEN_SERVER_TAG, std::move (l)); - } -#else - static - symbol_type - make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NAME (location_type l) - { - return symbol_type (token::TOKEN_NAME, std::move (l)); - } -#else - static - symbol_type - make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA (location_type l) - { - return symbol_type (token::TOKEN_DATA, std::move (l)); - } -#else - static - symbol_type - make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CODE (location_type l) - { - return symbol_type (token::TOKEN_CODE, std::move (l)); - } -#else - static - symbol_type - make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SPACE (location_type l) - { - return symbol_type (token::TOKEN_SPACE, std::move (l)); - } -#else - static - symbol_type - make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CSV_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS_SEND (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECORD_TYPES (location_type l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l)); - } -#else - static - symbol_type - make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENCAPSULATE (location_type l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l)); - } -#else - static - symbol_type - make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ARRAY (location_type l) - { - return symbol_type (token::TOKEN_ARRAY, std::move (l)); - } -#else - static - symbol_type - make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOLS (location_type l) - { - return symbol_type (token::TOKEN_POOLS, std::move (l)); - } -#else - static - symbol_type - make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOL (location_type l) - { - return symbol_type (token::TOKEN_POOL, std::move (l)); - } -#else - static - symbol_type - make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PD_POOLS (location_type l) - { - return symbol_type (token::TOKEN_PD_POOLS, std::move (l)); - } -#else - static - symbol_type - make_PD_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_PD_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DELEGATED_LEN (location_type l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, std::move (l)); - } -#else - static - symbol_type - make_DELEGATED_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER_CONTEXT (location_type l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); - } -#else - static - symbol_type - make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMENT (location_type l) - { - return symbol_type (token::TOKEN_COMMENT, std::move (l)); - } -#else - static - symbol_type - make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE_ID (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ID (location_type l) - { - return symbol_type (token::TOKEN_ID, std::move (l)); - } -#else - static - symbol_type - make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RAPID_COMMIT (location_type l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, std::move (l)); - } -#else - static - symbol_type - make_RAPID_COMMIT (const location_type& l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATION_MODE (location_type l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l)); - } -#else - static - symbol_type - make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DISABLED (location_type l) - { - return symbol_type (token::TOKEN_DISABLED, std::move (l)); - } -#else - static - symbol_type - make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUT_OF_POOL (location_type l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l)); - } -#else - static - symbol_type - make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GLOBAL (location_type l) - { - return symbol_type (token::TOKEN_GLOBAL, std::move (l)); - } -#else - static - symbol_type - make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALL (location_type l) - { - return symbol_type (token::TOKEN_ALL, std::move (l)); - } -#else - static - symbol_type - make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SHARED_NETWORKS (location_type l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l)); - } -#else - static - symbol_type - make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAC_SOURCES (location_type l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, std::move (l)); - } -#else - static - symbol_type - make_MAC_SOURCES (const location_type& l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (location_type l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l)); - } -#else - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SANITY_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TEST (location_type l) - { - return symbol_type (token::TOKEN_TEST, std::move (l)); - } -#else - static - symbol_type - make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ONLY_IF_REQUIRED (location_type l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l)); - } -#else - static - symbol_type - make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASS (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATIONS (location_type l) - { - return symbol_type (token::TOKEN_RESERVATIONS, std::move (l)); - } -#else - static - symbol_type - make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESSES (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIXES (location_type l) - { - return symbol_type (token::TOKEN_PREFIXES, std::move (l)); - } -#else - static - symbol_type - make_PREFIXES (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIXES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DUID (location_type l) - { - return symbol_type (token::TOKEN_DUID, std::move (l)); - } -#else - static - symbol_type - make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HW_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLEX_ID (location_type l) - { - return symbol_type (token::TOKEN_FLEX_ID, std::move (l)); - } -#else - static - symbol_type - make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY (location_type l) - { - return symbol_type (token::TOKEN_RELAY, std::move (l)); - } -#else - static - symbol_type - make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOOKS_LIBRARIES (location_type l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l)); - } -#else - static - symbol_type - make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARAMETERS (location_type l) - { - return symbol_type (token::TOKEN_PARAMETERS, std::move (l)); - } -#else - static - symbol_type - make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (location_type l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l)); - } -#else - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOLD_RECLAIMED_TIME (location_type l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l)); - } -#else - static - symbol_type - make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_LEASES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_TIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (location_type l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l)); - } -#else - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_ID (location_type l) - { - return symbol_type (token::TOKEN_SERVER_ID, std::move (l)); - } -#else - static - symbol_type - make_SERVER_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LLT (location_type l) - { - return symbol_type (token::TOKEN_LLT, std::move (l)); - } -#else - static - symbol_type - make_LLT (const location_type& l) - { - return symbol_type (token::TOKEN_LLT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EN (location_type l) - { - return symbol_type (token::TOKEN_EN, std::move (l)); - } -#else - static - symbol_type - make_EN (const location_type& l) - { - return symbol_type (token::TOKEN_EN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LL (location_type l) - { - return symbol_type (token::TOKEN_LL, std::move (l)); - } -#else - static - symbol_type - make_LL (const location_type& l) - { - return symbol_type (token::TOKEN_LL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IDENTIFIER (location_type l) - { - return symbol_type (token::TOKEN_IDENTIFIER, std::move (l)); - } -#else - static - symbol_type - make_IDENTIFIER (const location_type& l) - { - return symbol_type (token::TOKEN_IDENTIFIER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HTYPE (location_type l) - { - return symbol_type (token::TOKEN_HTYPE, std::move (l)); - } -#else - static - symbol_type - make_HTYPE (const location_type& l) - { - return symbol_type (token::TOKEN_HTYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TIME (location_type l) - { - return symbol_type (token::TOKEN_TIME, std::move (l)); - } -#else - static - symbol_type - make_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENTERPRISE_ID (location_type l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, std::move (l)); - } -#else - static - symbol_type - make_ENTERPRISE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4O6_PORT (location_type l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l)); - } -#else - static - symbol_type - make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_SOCKET (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_NAME (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_QUEUE_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_IP (location_type l) - { - return symbol_type (token::TOKEN_SERVER_IP, std::move (l)); - } -#else - static - symbol_type - make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SERVER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_IP (location_type l) - { - return symbol_type (token::TOKEN_SENDER_IP, std::move (l)); - } -#else - static - symbol_type - make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SENDER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_PROTOCOL (location_type l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); - } -#else - static - symbol_type - make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UDP (location_type l) - { - return symbol_type (token::TOKEN_UDP, std::move (l)); - } -#else - static - symbol_type - make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP (location_type l) - { - return symbol_type (token::TOKEN_TCP, std::move (l)); - } -#else - static - symbol_type - make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_JSON (location_type l) - { - return symbol_type (token::TOKEN_JSON, std::move (l)); - } -#else - static - symbol_type - make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEVER (location_type l) - { - return symbol_type (token::TOKEN_NEVER, std::move (l)); - } -#else - static - symbol_type - make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_NOT_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_SET (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGERS (location_type l) - { - return symbol_type (token::TOKEN_LOGGERS, std::move (l)); - } -#else - static - symbol_type - make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DEBUGLEVEL (location_type l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); - } -#else - static - symbol_type - make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SEVERITY (location_type l) - { - return symbol_type (token::TOKEN_SEVERITY, std::move (l)); - } -#else - static - symbol_type - make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH (location_type l) - { - return symbol_type (token::TOKEN_FLUSH, std::move (l)); - } -#else - static - symbol_type - make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXSIZE (location_type l) - { - return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); - } -#else - static - symbol_type - make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXVER (location_type l) - { - return symbol_type (token::TOKEN_MAXVER, std::move (l)); - } -#else - static - symbol_type - make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCPDDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCPDDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCPDDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCPDDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_AGENT (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_AGENT (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_JSON (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_INTERFACES6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, std::move (l)); - } -#else - static - symbol_type - make_SUB_INTERFACES6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUB_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_POOL6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_POOL6, std::move (l)); - } -#else - static - symbol_type - make_SUB_POOL6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_PD_POOL (location_type l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, std::move (l)); - } -#else - static - symbol_type - make_SUB_PD_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_RESERVATION (location_type l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l)); - } -#else - static - symbol_type - make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEFS (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_HOOKS_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_SUB_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STRING (std::string v, location_type l) - { - return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTEGER (int64_t v, location_type l) - { - return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLOAT (double v, location_type l) - { - return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } + // Symbol constructors declarations. + static + symbol_type + make_END (YY_COPY (location_type) l); + + static + symbol_type + make_COMMA (YY_COPY (location_type) l); + + static + symbol_type + make_COLON (YY_COPY (location_type) l); + + static + symbol_type + make_LSQUARE_BRACKET (YY_COPY (location_type) l); + + static + symbol_type + make_RSQUARE_BRACKET (YY_COPY (location_type) l); + + static + symbol_type + make_LCURLY_BRACKET (YY_COPY (location_type) l); + + static + symbol_type + make_RCURLY_BRACKET (YY_COPY (location_type) l); + + static + symbol_type + make_NULL_TYPE (YY_COPY (location_type) l); + + static + symbol_type + make_DHCP6 (YY_COPY (location_type) l); + + static + symbol_type + make_DATA_DIRECTORY (YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_CONTROL (YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DATABASES (YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_FETCH_WAIT_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_INTERFACES_CONFIG (YY_COPY (location_type) l); + + static + symbol_type + make_INTERFACES (YY_COPY (location_type) l); + + static + symbol_type + make_RE_DETECT (YY_COPY (location_type) l); + + static + symbol_type + make_LEASE_DATABASE (YY_COPY (location_type) l); + + static + symbol_type + make_HOSTS_DATABASE (YY_COPY (location_type) l); + + static + symbol_type + make_HOSTS_DATABASES (YY_COPY (location_type) l); + + static + symbol_type + make_TYPE (YY_COPY (location_type) l); + + static + symbol_type + make_MEMFILE (YY_COPY (location_type) l); + + static + symbol_type + make_MYSQL (YY_COPY (location_type) l); + + static + symbol_type + make_POSTGRESQL (YY_COPY (location_type) l); + + static + symbol_type + make_CQL (YY_COPY (location_type) l); + + static + symbol_type + make_USER (YY_COPY (location_type) l); + + static + symbol_type + make_PASSWORD (YY_COPY (location_type) l); + + static + symbol_type + make_HOST (YY_COPY (location_type) l); + + static + symbol_type + make_PORT (YY_COPY (location_type) l); + + static + symbol_type + make_PERSIST (YY_COPY (location_type) l); + + static + symbol_type + make_LFC_INTERVAL (YY_COPY (location_type) l); + + static + symbol_type + make_READONLY (YY_COPY (location_type) l); + + static + symbol_type + make_CONNECT_TIMEOUT (YY_COPY (location_type) l); + + static + symbol_type + make_CONTACT_POINTS (YY_COPY (location_type) l); + + static + symbol_type + make_MAX_RECONNECT_TRIES (YY_COPY (location_type) l); + + static + symbol_type + make_RECONNECT_WAIT_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_KEYSPACE (YY_COPY (location_type) l); + + static + symbol_type + make_CONSISTENCY (YY_COPY (location_type) l); + + static + symbol_type + make_SERIAL_CONSISTENCY (YY_COPY (location_type) l); + + static + symbol_type + make_REQUEST_TIMEOUT (YY_COPY (location_type) l); + + static + symbol_type + make_TCP_KEEPALIVE (YY_COPY (location_type) l); + + static + symbol_type + make_TCP_NODELAY (YY_COPY (location_type) l); + + static + symbol_type + make_PREFERRED_LIFETIME (YY_COPY (location_type) l); + + static + symbol_type + make_MIN_PREFERRED_LIFETIME (YY_COPY (location_type) l); + + static + symbol_type + make_MAX_PREFERRED_LIFETIME (YY_COPY (location_type) l); + + static + symbol_type + make_VALID_LIFETIME (YY_COPY (location_type) l); + + static + symbol_type + make_MIN_VALID_LIFETIME (YY_COPY (location_type) l); + + static + symbol_type + make_MAX_VALID_LIFETIME (YY_COPY (location_type) l); + + static + symbol_type + make_RENEW_TIMER (YY_COPY (location_type) l); + + static + symbol_type + make_REBIND_TIMER (YY_COPY (location_type) l); + + static + symbol_type + make_CALCULATE_TEE_TIMES (YY_COPY (location_type) l); + + static + symbol_type + make_T1_PERCENT (YY_COPY (location_type) l); + + static + symbol_type + make_T2_PERCENT (YY_COPY (location_type) l); + + static + symbol_type + make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l); + + static + symbol_type + make_SERVER_TAG (YY_COPY (location_type) l); + + static + symbol_type + make_SUBNET6 (YY_COPY (location_type) l); + + static + symbol_type + make_OPTION_DEF (YY_COPY (location_type) l); + + static + symbol_type + make_OPTION_DATA (YY_COPY (location_type) l); + + static + symbol_type + make_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_DATA (YY_COPY (location_type) l); + + static + symbol_type + make_CODE (YY_COPY (location_type) l); + + static + symbol_type + make_SPACE (YY_COPY (location_type) l); + + static + symbol_type + make_CSV_FORMAT (YY_COPY (location_type) l); + + static + symbol_type + make_ALWAYS_SEND (YY_COPY (location_type) l); + + static + symbol_type + make_RECORD_TYPES (YY_COPY (location_type) l); + + static + symbol_type + make_ENCAPSULATE (YY_COPY (location_type) l); + + static + symbol_type + make_ARRAY (YY_COPY (location_type) l); + + static + symbol_type + make_POOLS (YY_COPY (location_type) l); + + static + symbol_type + make_POOL (YY_COPY (location_type) l); + + static + symbol_type + make_PD_POOLS (YY_COPY (location_type) l); + + static + symbol_type + make_PREFIX (YY_COPY (location_type) l); + + static + symbol_type + make_PREFIX_LEN (YY_COPY (location_type) l); + + static + symbol_type + make_EXCLUDED_PREFIX (YY_COPY (location_type) l); + + static + symbol_type + make_EXCLUDED_PREFIX_LEN (YY_COPY (location_type) l); + + static + symbol_type + make_DELEGATED_LEN (YY_COPY (location_type) l); + + static + symbol_type + make_USER_CONTEXT (YY_COPY (location_type) l); + + static + symbol_type + make_COMMENT (YY_COPY (location_type) l); + + static + symbol_type + make_SUBNET (YY_COPY (location_type) l); + + static + symbol_type + make_INTERFACE (YY_COPY (location_type) l); + + static + symbol_type + make_INTERFACE_ID (YY_COPY (location_type) l); + + static + symbol_type + make_ID (YY_COPY (location_type) l); + + static + symbol_type + make_RAPID_COMMIT (YY_COPY (location_type) l); + + static + symbol_type + make_RESERVATION_MODE (YY_COPY (location_type) l); + + static + symbol_type + make_DISABLED (YY_COPY (location_type) l); + + static + symbol_type + make_OUT_OF_POOL (YY_COPY (location_type) l); + + static + symbol_type + make_GLOBAL (YY_COPY (location_type) l); + + static + symbol_type + make_ALL (YY_COPY (location_type) l); + + static + symbol_type + make_SHARED_NETWORKS (YY_COPY (location_type) l); + + static + symbol_type + make_MAC_SOURCES (YY_COPY (location_type) l); + + static + symbol_type + make_RELAY_SUPPLIED_OPTIONS (YY_COPY (location_type) l); + + static + symbol_type + make_HOST_RESERVATION_IDENTIFIERS (YY_COPY (location_type) l); + + static + symbol_type + make_SANITY_CHECKS (YY_COPY (location_type) l); + + static + symbol_type + make_LEASE_CHECKS (YY_COPY (location_type) l); + + static + symbol_type + make_CLIENT_CLASSES (YY_COPY (location_type) l); + + static + symbol_type + make_REQUIRE_CLIENT_CLASSES (YY_COPY (location_type) l); + + static + symbol_type + make_TEST (YY_COPY (location_type) l); + + static + symbol_type + make_ONLY_IF_REQUIRED (YY_COPY (location_type) l); + + static + symbol_type + make_CLIENT_CLASS (YY_COPY (location_type) l); + + static + symbol_type + make_RESERVATIONS (YY_COPY (location_type) l); + + static + symbol_type + make_IP_ADDRESSES (YY_COPY (location_type) l); + + static + symbol_type + make_PREFIXES (YY_COPY (location_type) l); + + static + symbol_type + make_DUID (YY_COPY (location_type) l); + + static + symbol_type + make_HW_ADDRESS (YY_COPY (location_type) l); + + static + symbol_type + make_HOSTNAME (YY_COPY (location_type) l); + + static + symbol_type + make_FLEX_ID (YY_COPY (location_type) l); + + static + symbol_type + make_RELAY (YY_COPY (location_type) l); + + static + symbol_type + make_IP_ADDRESS (YY_COPY (location_type) l); + + static + symbol_type + make_HOOKS_LIBRARIES (YY_COPY (location_type) l); + + static + symbol_type + make_LIBRARY (YY_COPY (location_type) l); + + static + symbol_type + make_PARAMETERS (YY_COPY (location_type) l); + + static + symbol_type + make_EXPIRED_LEASES_PROCESSING (YY_COPY (location_type) l); + + static + symbol_type + make_RECLAIM_TIMER_WAIT_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_HOLD_RECLAIMED_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_MAX_RECLAIM_LEASES (YY_COPY (location_type) l); + + static + symbol_type + make_MAX_RECLAIM_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_UNWARNED_RECLAIM_CYCLES (YY_COPY (location_type) l); + + static + symbol_type + make_SERVER_ID (YY_COPY (location_type) l); + + static + symbol_type + make_LLT (YY_COPY (location_type) l); + + static + symbol_type + make_EN (YY_COPY (location_type) l); + + static + symbol_type + make_LL (YY_COPY (location_type) l); + + static + symbol_type + make_IDENTIFIER (YY_COPY (location_type) l); + + static + symbol_type + make_HTYPE (YY_COPY (location_type) l); + + static + symbol_type + make_TIME (YY_COPY (location_type) l); + + static + symbol_type + make_ENTERPRISE_ID (YY_COPY (location_type) l); + + static + symbol_type + make_DHCP4O6_PORT (YY_COPY (location_type) l); + + static + symbol_type + make_CONTROL_SOCKET (YY_COPY (location_type) l); + + static + symbol_type + make_SOCKET_TYPE (YY_COPY (location_type) l); + + static + symbol_type + make_SOCKET_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_DHCP_QUEUE_CONTROL (YY_COPY (location_type) l); + + static + symbol_type + make_DHCP_DDNS (YY_COPY (location_type) l); + + static + symbol_type + make_ENABLE_UPDATES (YY_COPY (location_type) l); + + static + symbol_type + make_QUALIFYING_SUFFIX (YY_COPY (location_type) l); + + static + symbol_type + make_SERVER_IP (YY_COPY (location_type) l); + + static + symbol_type + make_SERVER_PORT (YY_COPY (location_type) l); + + static + symbol_type + make_SENDER_IP (YY_COPY (location_type) l); + + static + symbol_type + make_SENDER_PORT (YY_COPY (location_type) l); + + static + symbol_type + make_MAX_QUEUE_SIZE (YY_COPY (location_type) l); + + static + symbol_type + make_NCR_PROTOCOL (YY_COPY (location_type) l); + + static + symbol_type + make_NCR_FORMAT (YY_COPY (location_type) l); + + static + symbol_type + make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l); + + static + symbol_type + make_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l); + + static + symbol_type + make_REPLACE_CLIENT_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_GENERATED_PREFIX (YY_COPY (location_type) l); + + static + symbol_type + make_UDP (YY_COPY (location_type) l); + + static + symbol_type + make_TCP (YY_COPY (location_type) l); + + static + symbol_type + make_JSON (YY_COPY (location_type) l); + + static + symbol_type + make_WHEN_PRESENT (YY_COPY (location_type) l); + + static + symbol_type + make_NEVER (YY_COPY (location_type) l); + + static + symbol_type + make_ALWAYS (YY_COPY (location_type) l); + + static + symbol_type + make_WHEN_NOT_PRESENT (YY_COPY (location_type) l); + + static + symbol_type + make_HOSTNAME_CHAR_SET (YY_COPY (location_type) l); + + static + symbol_type + make_HOSTNAME_CHAR_REPLACEMENT (YY_COPY (location_type) l); + + static + symbol_type + make_LOGGING (YY_COPY (location_type) l); + + static + symbol_type + make_LOGGERS (YY_COPY (location_type) l); + + static + symbol_type + make_OUTPUT_OPTIONS (YY_COPY (location_type) l); + + static + symbol_type + make_OUTPUT (YY_COPY (location_type) l); + + static + symbol_type + make_DEBUGLEVEL (YY_COPY (location_type) l); + + static + symbol_type + make_SEVERITY (YY_COPY (location_type) l); + + static + symbol_type + make_FLUSH (YY_COPY (location_type) l); + + static + symbol_type + make_MAXSIZE (YY_COPY (location_type) l); + + static + symbol_type + make_MAXVER (YY_COPY (location_type) l); + + static + symbol_type + make_PATTERN (YY_COPY (location_type) l); + + static + symbol_type + make_DHCP4 (YY_COPY (location_type) l); + + static + symbol_type + make_DHCPDDNS (YY_COPY (location_type) l); + + static + symbol_type + make_CONTROL_AGENT (YY_COPY (location_type) l); + + static + symbol_type + make_TOPLEVEL_JSON (YY_COPY (location_type) l); + + static + symbol_type + make_TOPLEVEL_DHCP6 (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_DHCP6 (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_INTERFACES6 (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_SUBNET6 (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_POOL6 (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_PD_POOL (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_RESERVATION (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_OPTION_DEFS (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_OPTION_DEF (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_OPTION_DATA (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_HOOKS_LIBRARY (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_DHCP_DDNS (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_LOGGING (YY_COPY (location_type) l); + + static + symbol_type + make_SUB_CONFIG_CONTROL (YY_COPY (location_type) l); + + static + symbol_type + make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l); + + static + symbol_type + make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l); + + static + symbol_type + make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l); + + + + private: + /// This class is not copyable. + Dhcp6Parser (const Dhcp6Parser&); + Dhcp6Parser& operator= (const Dhcp6Parser&); + + /// State numbers. + typedef int state_type; + + /// Generate an error message. + /// \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 + 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 + static bool yy_pact_value_is_default_ (int yyvalue); + + /// Whether the given \c yytable_ value indicates a syntax error. + /// \param yyvalue the value to check + static bool yy_table_value_is_error_ (int yyvalue); + + static const short yypact_ninf_; + static const signed char yytable_ninf_; + + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); + + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short yypact_[]; + + // 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 yydefact_[]; + + // YYPGOTO[NTERM-NUM]. + static const short yypgoto_[]; + + // YYDEFGOTO[NTERM-NUM]. + static const short yydefgoto_[]; + + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short yytable_[]; + + static const short yycheck_[]; + + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short yystos_[]; + + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short yyr1_[]; + + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; + + + /// Convert the symbol name \a n to a form suitable for a diagnostic. + 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 unsigned short yyrline_[]; + /// Report on the debug stream that the rule \a r is going to be reduced. + virtual void yy_reduce_print_ (int r); + /// Print the state stack on the debug stream. + virtual void yystack_print_ (); + + /// Debugging level. + int yydebug_; + /// Debug stream. + std::ostream* yycdebug_; + + /// \brief Display a symbol type, value and location. + /// \param yyo The output stream. + /// \param yysym The symbol. + template + void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; #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); - } + + /// \brief Reclaim the memory associated to a symbol. + /// \param yymsg Why this token is reclaimed. + /// If null, print nothing. + /// \param yysym The symbol. + template + void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + + private: + /// Type access provider for state based symbols. + struct by_state + { + /// Default constructor. + by_state (); + + /// The symbol type as needed by the constructor. + typedef state_type kind_type; + + /// Constructor. + by_state (kind_type s); + + /// Copy constructor. + by_state (const by_state& other); + + /// Record that this symbol is empty. + void clear (); + + /// Steal the symbol type from \a that. + void move (by_state& that); + + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const; + + /// The state number used to denote an empty symbol. + enum { empty_state = -1 }; + + /// The state. + /// \a empty when empty. + state_type state; + }; + + /// "Internal" symbol: element of the stack. + struct stack_symbol_type : basic_symbol + { + /// Superclass. + typedef basic_symbol super_type; + /// Construct an empty symbol. + stack_symbol_type (); + /// Move or copy construction. + stack_symbol_type (YY_RVREF (stack_symbol_type) that); + /// Steal the contents from \a sym to build this. + stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); +#if !defined __cplusplus || __cplusplus < 201103L + /// Assignment, needed by push_back by some old implementations. + /// Moves the contents of that. + stack_symbol_type& operator= (stack_symbol_type& that); #endif + }; + + /// Stack type. + typedef stack stack_type; + + /// The stack. + stack_type yystack_; + + /// Push a new state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param sym the symbol + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + + /// 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); + + /// Pop \a n symbols from the stack. + void yypop_ (int n = 1); + + /// Constants. + enum + { + yyeof_ = 0, + yylast_ = 1103, ///< Last index in yytable_. + yynnts_ = 405, ///< Number of nonterminal symbols. + yyfinal_ = 32, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 186 ///< Number of tokens. + }; + + + // User arguments. + isc::dhcp::Parser6Context& ctx; + }; + + // Symbol number corresponding to token number t. + inline + Dhcp6Parser::token_number_type + Dhcp6Parser::yytranslate_ (token_type t) + { + static + const token_number_type + translate_table[] = + { + 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, + 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, 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, 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, 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, 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, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 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, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 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, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185 + }; + const unsigned user_token_number_max_ = 440; + const token_number_type undef_token_ = 2; + + if (static_cast (t) <= yyeof_) + return yyeof_; + else if (static_cast (t) <= user_token_number_max_) + return translate_table[t]; + else + 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 + Dhcp6Parser::basic_symbol::basic_symbol () + : value () + , location () + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (YY_RVREF (basic_symbol) other) + : Base (YY_MOVE (other)) + , value () + , location (YY_MOVE (other.location)) + { + switch (other.type_get ()) + { + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value + value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value)); + break; + + case 185: // "boolean" + value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value)); + break; + + case 184: // "floating point" + value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value)); + break; + + case 183: // "integer" + value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value)); + break; + + case 182: // "constant string" + value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value)); + break; + + default: + break; + } + + } + + + // Implementation of basic_symbol constructor for each type. + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l) + : Base (t) + , location (YY_MOVE (l)) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (ElementPtr) v, YY_RVREF (location_type) l) + : Base (t) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (bool) v, YY_RVREF (location_type) l) + : Base (t) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (double) v, YY_RVREF (location_type) l) + : Base (t) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (int64_t) v, YY_RVREF (location_type) l) + : Base (t) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l) + : Base (t) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) + {} + + + + template + Dhcp6Parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + void + Dhcp6Parser::basic_symbol::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value + value.template destroy< ElementPtr > (); + break; + + case 185: // "boolean" + value.template destroy< bool > (); + break; + + case 184: // "floating point" + value.template destroy< double > (); + break; + + case 183: // "integer" + value.template destroy< int64_t > (); + break; + + case 182: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template + bool + Dhcp6Parser::basic_symbol::empty () const + { + return Base::type_get () == empty_symbol; + } + + template + void + Dhcp6Parser::basic_symbol::move (basic_symbol& s) + { + super_type::move (s); + switch (this->type_get ()) + { + case 203: // value + case 207: // map_value + case 268: // db_type + case 361: // hr_mode + case 497: // duid_type + case 532: // ncr_protocol_value + case 539: // replace_client_name_value + value.move< ElementPtr > (YY_MOVE (s.value)); + break; + + case 185: // "boolean" + value.move< bool > (YY_MOVE (s.value)); + break; + + case 184: // "floating point" + value.move< double > (YY_MOVE (s.value)); + break; + + case 183: // "integer" + value.move< int64_t > (YY_MOVE (s.value)); + break; + + case 182: // "constant string" + value.move< std::string > (YY_MOVE (s.value)); + break; + + default: + break; + } + + location = YY_MOVE (s.location); + } + + // by_type. + inline + Dhcp6Parser::by_type::by_type () + : type (empty_symbol) + {} + + inline + Dhcp6Parser::by_type::by_type (const by_type& other) + : type (other.type) + {} + + inline + Dhcp6Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) + {} + + inline + void + Dhcp6Parser::by_type::clear () + { + type = empty_symbol; + } + + inline + void + Dhcp6Parser::by_type::move (by_type& that) + { + type = that.type; + that.clear (); + } + + inline + int + Dhcp6Parser::by_type::type_get () const + { + return type; + } + + inline + Dhcp6Parser::token_type + Dhcp6Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short + 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 + }; + return static_cast (yytoken_number_[type]); + } + + // Implementation of make_symbol for each symbol type. + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_END (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_END, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMA (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_COMMA, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COLON (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_COLON, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LSQUARE_BRACKET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RSQUARE_BRACKET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LCURLY_BRACKET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RCURLY_BRACKET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NULL_TYPE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_NULL_TYPE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP6 (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DHCP6, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA_DIRECTORY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DATA_DIRECTORY, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_CONTROL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONFIG_CONTROL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_DATABASES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONFIG_DATABASES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_FETCH_WAIT_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES_CONFIG (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_INTERFACES_CONFIG, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_INTERFACES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RE_DETECT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RE_DETECT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_DATABASE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LEASE_DATABASE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TYPE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TYPE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MEMFILE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MEMFILE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MYSQL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MYSQL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POSTGRESQL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_POSTGRESQL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CQL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CQL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_USER, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PASSWORD (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PASSWORD, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOST, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PORT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PORT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PERSIST (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PERSIST, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LFC_INTERVAL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LFC_INTERVAL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_READONLY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_READONLY, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONNECT_TIMEOUT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONNECT_TIMEOUT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTACT_POINTS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECONNECT_TRIES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECONNECT_WAIT_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_KEYSPACE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_KEYSPACE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONSISTENCY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONSISTENCY, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERIAL_CONSISTENCY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUEST_TIMEOUT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_REQUEST_TIMEOUT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_KEEPALIVE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TCP_KEEPALIVE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_NODELAY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TCP_NODELAY, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFERRED_LIFETIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PREFERRED_LIFETIME, YY_MOVE (l)); + } - private: - /// This class is not copyable. - Dhcp6Parser (const Dhcp6Parser&); - Dhcp6Parser& operator= (const Dhcp6Parser&); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MIN_PREFERRED_LIFETIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, YY_MOVE (l)); + } - /// State numbers. - typedef int state_type; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_PREFERRED_LIFETIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, YY_MOVE (l)); + } - /// Generate an error message. - /// \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; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_VALID_LIFETIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_VALID_LIFETIME, YY_MOVE (l)); + } - /// Compute post-reduction state. - /// \param yystate the current state - /// \param yysym the nonterminal to push on the stack - state_type yy_lr_goto_state_ (state_type yystate, int yysym); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MIN_VALID_LIFETIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, YY_MOVE (l)); + } - /// Whether the given \c yypact_ value indicates a defaulted state. - /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_VALID_LIFETIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RENEW_TIMER (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RENEW_TIMER, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REBIND_TIMER (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_REBIND_TIMER, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CALCULATE_TEE_TIMES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T1_PERCENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_T1_PERCENT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T2_PERCENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_T2_PERCENT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_TAG (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SERVER_TAG, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET6 (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUBNET6, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DEF (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OPTION_DEF, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DATA (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OPTION_DATA, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NAME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_NAME, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DATA, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CODE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CODE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SPACE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SPACE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CSV_FORMAT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CSV_FORMAT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS_SEND (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ALWAYS_SEND, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECORD_TYPES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RECORD_TYPES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENCAPSULATE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ENCAPSULATE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ARRAY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ARRAY, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOLS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_POOLS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_POOL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PD_POOLS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PD_POOLS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PREFIX, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX_LEN (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PREFIX_LEN, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX_LEN (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DELEGATED_LEN (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DELEGATED_LEN, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER_CONTEXT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_COMMENT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUBNET, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_INTERFACE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE_ID (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_INTERFACE_ID, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ID (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ID, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RAPID_COMMIT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RAPID_COMMIT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATION_MODE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RESERVATION_MODE, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DISABLED (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DISABLED, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUT_OF_POOL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OUT_OF_POOL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GLOBAL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_GLOBAL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ALL, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SHARED_NETWORKS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SHARED_NETWORKS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAC_SOURCES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAC_SOURCES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SANITY_CHECKS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SANITY_CHECKS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_CHECKS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LEASE_CHECKS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASSES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CLIENT_CLASSES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUIRE_CLIENT_CLASSES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TEST (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TEST, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ONLY_IF_REQUIRED (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CLIENT_CLASS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATIONS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RESERVATIONS, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESSES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_IP_ADDRESSES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIXES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PREFIXES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DUID (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DUID, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HW_ADDRESS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HW_ADDRESS, YY_MOVE (l)); + } - /// Whether the given \c yytable_ value indicates a syntax error. - /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOSTNAME, YY_MOVE (l)); + } - static const short yypact_ninf_; - static const signed char yytable_ninf_; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLEX_ID (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_FLEX_ID, YY_MOVE (l)); + } - /// Convert a scanner token number \a t to a symbol number. - static token_number_type yytranslate_ (token_type t); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RELAY, YY_MOVE (l)); + } - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, YY_MOVE (l)); + } - // 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 yydefact_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOOKS_LIBRARIES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOOKS_LIBRARIES, YY_MOVE (l)); + } - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LIBRARY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LIBRARY, YY_MOVE (l)); + } - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PARAMETERS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PARAMETERS, YY_MOVE (l)); + } - // 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 yytable_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, YY_MOVE (l)); + } - static const short yycheck_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, YY_MOVE (l)); + } - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const unsigned short yystos_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, YY_MOVE (l)); + } - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const unsigned short yyr1_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOLD_RECLAIMED_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, YY_MOVE (l)); + } - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const unsigned char yyr2_[]; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_LEASES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, YY_MOVE (l)); + } - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *n); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_ID (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SERVER_ID, YY_MOVE (l)); + } - /// 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 unsigned short yyrline_[]; - /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r); - /// Print the state stack on the debug stream. - virtual void yystack_print_ (); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LLT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LLT, YY_MOVE (l)); + } - /// Debugging level. - int yydebug_; - /// Debug stream. - std::ostream* yycdebug_; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EN (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_EN, YY_MOVE (l)); + } - /// \brief Display a symbol type, value and location. - /// \param yyo The output stream. - /// \param yysym The symbol. - template - void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; -#endif + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LL, YY_MOVE (l)); + } - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// If null, print nothing. - /// \param yysym The symbol. - template - void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IDENTIFIER (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_IDENTIFIER, YY_MOVE (l)); + } - private: - /// Type access provider for state based symbols. - struct by_state - { - /// Default constructor. - by_state () YY_NOEXCEPT; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HTYPE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HTYPE, YY_MOVE (l)); + } - /// The symbol type as needed by the constructor. - typedef state_type kind_type; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TIME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TIME, YY_MOVE (l)); + } - /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENTERPRISE_ID (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ENTERPRISE_ID, YY_MOVE (l)); + } - /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4O6_PORT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DHCP4O6_PORT, YY_MOVE (l)); + } - /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_SOCKET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKET, YY_MOVE (l)); + } - /// Steal the symbol type from \a that. - void move (by_state& that); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_TYPE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SOCKET_TYPE, YY_MOVE (l)); + } - /// The (internal) type number (corresponding to \a state). - /// \a empty_symbol when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_NAME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SOCKET_NAME, YY_MOVE (l)); + } - /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_QUEUE_CONTROL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, YY_MOVE (l)); + } - /// The state. - /// \a empty when empty. - state_type state; - }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_DDNS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DHCP_DDNS, YY_MOVE (l)); + } - /// "Internal" symbol: element of the stack. - struct stack_symbol_type : basic_symbol - { - /// Superclass. - typedef basic_symbol super_type; - /// Construct an empty symbol. - stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); - /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); -#endif - }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_UPDATES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ENABLE_UPDATES, YY_MOVE (l)); + } - /// A stack with random access from its top. - template > - class stack - { - public: - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - typedef typename S::size_type size_type; - - stack (size_type n = 200) - : seq_ (n) - {} - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (size_type i) - { - return seq_[size () - 1 - i]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (int i) - { - return operator[] (size_type (i)); - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (size_type i) const - { - return seq_[size () - 1 - i]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (int i) const - { - return operator[] (size_type (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); - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_QUALIFYING_SUFFIX (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, YY_MOVE (l)); + } - /// Pop elements from the stack. - void - pop (int n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_IP (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SERVER_IP, YY_MOVE (l)); + } - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_PORT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SERVER_PORT, YY_MOVE (l)); + } - /// Number of elements on the stack. - size_type - size () const YY_NOEXCEPT - { - return seq_.size (); - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_IP (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SENDER_IP, YY_MOVE (l)); + } - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.rbegin (); - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_PORT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SENDER_PORT, YY_MOVE (l)); + } - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.rend (); - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_QUEUE_SIZE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, YY_MOVE (l)); + } - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, int range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (int i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - int range_; - }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_PROTOCOL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, YY_MOVE (l)); + } - private: - stack (const stack&); - stack& operator= (const stack&); - /// The wrapped container. - S seq_; - }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_FORMAT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, YY_MOVE (l)); + } - /// Stack type. - typedef stack stack_type; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REPLACE_CLIENT_NAME (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, YY_MOVE (l)); + } - /// The stack. - stack_type yystack_; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GENERATED_PREFIX (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_GENERATED_PREFIX, YY_MOVE (l)); + } - /// Push a new state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param sym the symbol - /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UDP (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_UDP, YY_MOVE (l)); + } - /// 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); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TCP, YY_MOVE (l)); + } - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_JSON (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_JSON, YY_MOVE (l)); + } - /// Constants. - enum - { - yyeof_ = 0, - yylast_ = 1103, ///< Last index in yytable_. - yynnts_ = 403, ///< Number of nonterminal symbols. - yyfinal_ = 32, ///< Termination state number. - yyterror_ = 1, - yyerrcode_ = 256, - yyntokens_ = 185 ///< Number of tokens. - }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_PRESENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_WHEN_PRESENT, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NEVER (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_NEVER, YY_MOVE (l)); + } - // User arguments. - isc::dhcp::Parser6Context& ctx; - }; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_ALWAYS, YY_MOVE (l)); + } inline - Dhcp6Parser::token_number_type - Dhcp6Parser::yytranslate_ (token_type t) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_NOT_PRESENT (YY_COPY (location_type) l) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. - static - const token_number_type - translate_table[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 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, 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, 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, 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, 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, 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, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 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, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 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, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 - }; - const unsigned user_token_number_max_ = 439; - const token_number_type undef_token_ = 2; + return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, YY_MOVE (l)); + } - if (static_cast (t) <= yyeof_) - return yyeof_; - else if (static_cast (t) <= user_token_number_max_) - return translate_table[t]; - else - return undef_token_; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_SET (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, YY_MOVE (l)); } - // basic_symbol. -#if 201103L <= YY_CPLUSPLUS - template - Dhcp6Parser::basic_symbol::basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_REPLACEMENT (YY_COPY (location_type) l) { - switch (this->type_get ()) - { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value - value.move< ElementPtr > (std::move (that.value)); - break; + return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, YY_MOVE (l)); + } - case 184: // "boolean" - value.move< bool > (std::move (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGING (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LOGGING, YY_MOVE (l)); + } - case 183: // "floating point" - value.move< double > (std::move (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGERS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_LOGGERS, YY_MOVE (l)); + } - case 182: // "integer" - value.move< int64_t > (std::move (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT_OPTIONS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, YY_MOVE (l)); + } - case 181: // "constant string" - value.move< std::string > (std::move (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_OUTPUT, YY_MOVE (l)); + } - default: - break; - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DEBUGLEVEL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DEBUGLEVEL, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SEVERITY (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SEVERITY, YY_MOVE (l)); } -#endif - template - Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& that) - : Base (that) - , value () - , location (that.location) + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH (YY_COPY (location_type) l) { - switch (this->type_get ()) - { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value - value.copy< ElementPtr > (YY_MOVE (that.value)); - break; + return symbol_type (token::TOKEN_FLUSH, YY_MOVE (l)); + } - case 184: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXSIZE (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAXSIZE, YY_MOVE (l)); + } - case 183: // "floating point" - value.copy< double > (YY_MOVE (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXVER (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_MAXVER, YY_MOVE (l)); + } - case 182: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PATTERN (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_PATTERN, YY_MOVE (l)); + } - case 181: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4 (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DHCP4, YY_MOVE (l)); + } - default: - break; - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCPDDNS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_DHCPDDNS, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_AGENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, YY_MOVE (l)); } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_JSON (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TOPLEVEL_JSON, YY_MOVE (l)); + } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_DHCP6 (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, YY_MOVE (l)); + } - template - bool - Dhcp6Parser::basic_symbol::empty () const YY_NOEXCEPT + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP6 (YY_COPY (location_type) l) { - return Base::type_get () == empty_symbol; + return symbol_type (token::TOKEN_SUB_DHCP6, YY_MOVE (l)); } - template - void - Dhcp6Parser::basic_symbol::move (basic_symbol& s) + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_INTERFACES6 (YY_COPY (location_type) l) { - super_type::move (s); - switch (this->type_get ()) - { - case 202: // value - case 206: // map_value - case 267: // db_type - case 360: // hr_mode - case 496: // duid_type - case 531: // ncr_protocol_value - case 538: // replace_client_name_value - value.move< ElementPtr > (YY_MOVE (s.value)); - break; + return symbol_type (token::TOKEN_SUB_INTERFACES6, YY_MOVE (l)); + } - case 184: // "boolean" - value.move< bool > (YY_MOVE (s.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_SUBNET6 (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_SUBNET6, YY_MOVE (l)); + } - case 183: // "floating point" - value.move< double > (YY_MOVE (s.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_POOL6 (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_POOL6, YY_MOVE (l)); + } - case 182: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_PD_POOL (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_PD_POOL, YY_MOVE (l)); + } - case 181: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); - break; + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_RESERVATION (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_RESERVATION, YY_MOVE (l)); + } - default: - break; - } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEFS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEFS, YY_MOVE (l)); + } - location = YY_MOVE (s.location); + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEF (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEF, YY_MOVE (l)); } - // by_type. inline - Dhcp6Parser::by_type::by_type () - : type (empty_symbol) - {} + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DATA (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DATA, YY_MOVE (l)); + } -#if 201103L <= YY_CPLUSPLUS inline - Dhcp6Parser::by_type::by_type (by_type&& that) - : type (that.type) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_HOOKS_LIBRARY (YY_COPY (location_type) l) { - that.clear (); + return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, YY_MOVE (l)); } -#endif inline - Dhcp6Parser::by_type::by_type (const by_type& that) - : type (that.type) - {} + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP_DDNS (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_DHCP_DDNS, YY_MOVE (l)); + } inline - Dhcp6Parser::by_type::by_type (token_type t) - : type (yytranslate_ (t)) - {} + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_LOGGING (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_SUB_LOGGING, YY_MOVE (l)); + } inline - void - Dhcp6Parser::by_type::clear () + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_CONFIG_CONTROL (YY_COPY (location_type) l) { - type = empty_symbol; + return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, YY_MOVE (l)); } inline - void - Dhcp6Parser::by_type::move (by_type& that) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l) { - type = that.type; - that.clear (); + return symbol_type (token::TOKEN_STRING, YY_MOVE (v), YY_MOVE (l)); } inline - int - Dhcp6Parser::by_type::type_get () const YY_NOEXCEPT + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l) { - return type; + return symbol_type (token::TOKEN_INTEGER, YY_MOVE (v), YY_MOVE (l)); } inline - Dhcp6Parser::token_type - Dhcp6Parser::by_type::token () const YY_NOEXCEPT + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l) { - // YYTOKNUM[NUM] -- (External) token number corresponding to the - // (internal) symbol number NUM (which must be that of a token). */ - static - const unsigned short - 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 - }; - return token_type (yytoken_number_[type]); + return symbol_type (token::TOKEN_FLOAT, YY_MOVE (v), YY_MOVE (l)); } -#line 14 "dhcp6_parser.yy" -} } // isc::dhcp -#line 4326 "dhcp6_parser.h" + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_BOOLEAN, YY_MOVE (v), YY_MOVE (l)); + } +#line 14 "dhcp6_parser.yy" // lalr1.cc:404 +} } // isc::dhcp +#line 3424 "dhcp6_parser.h" // lalr1.cc:404 + diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index c4744cb227..3425883354 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -220,6 +220,7 @@ using namespace std; FLUSH "flush" MAXSIZE "maxsize" MAXVER "maxver" + PATTERN "pattern" DHCP4 "Dhcp4" DHCPDDNS "DhcpDdns" @@ -2421,6 +2422,7 @@ output_params: output | flush | maxsize | maxver + | pattern ; output: OUTPUT { @@ -2446,6 +2448,14 @@ maxver: MAXVER COLON INTEGER { ctx.stack_.back()->set("maxver", maxver); }; +pattern: PATTERN { + ctx.enter(ctx.NO_KEYWORD); +} COLON STRING { + ElementPtr sev(new StringElement($4, ctx.loc2pos(@4))); + ctx.stack_.back()->set("pattern", sev); + ctx.leave(); +}; + %% void diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index b5c0b27845..94d877060d 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,9 +1,8 @@ -// Generated 201906181918 -// A Bison parser, made by GNU Bison 3.4.1. +// A Bison parser, made by GNU Bison 3.2.1. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 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 @@ -55,10 +54,9 @@ # endif # endif -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // location.cc:339 namespace isc { namespace dhcp { -#line 60 "location.hh" - +#line 60 "location.hh" // location.cc:339 /// A point in a source file. class position { @@ -318,8 +316,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // location.cc:339 } } // isc::dhcp -#line 323 "location.hh" - +#line 322 "location.hh" // location.cc:339 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index d916ca979d..22ef35f744 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,5 +1,4 @@ -// Generated 201906181918 -// A Bison parser, made by GNU Bison 3.4.1. +// A Bison parser, made by GNU Bison 3.2.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index 745ed190a6..81e152d836 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,5 +1,4 @@ -// Generated 201906181918 -// A Bison parser, made by GNU Bison 3.4.1. +// A Bison parser, made by GNU Bison 3.2.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself.