From: Razvan Becheriu Date: Fri, 26 Mar 2021 15:06:38 +0000 (+0200) Subject: [#1621] regenerated parsers and updated documentation X-Git-Tag: Kea-1.9.6~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ad76302b1dd00c5263ea3fca8dc93e218baa18b;p=thirdparty%2Fkea.git [#1621] regenerated parsers and updated documentation --- diff --git a/doc/sphinx/arm/dhcp4-srv.rst b/doc/sphinx/arm/dhcp4-srv.rst index 6c223b99c9..ee0c98c945 100644 --- a/doc/sphinx/arm/dhcp4-srv.rst +++ b/doc/sphinx/arm/dhcp4-srv.rst @@ -523,14 +523,18 @@ The possible values are: .. note:: - Automatic reconnection to database backends is configured - individually per backend. This allows users to tailor the recovery - parameters to each backend they use. We do suggest that users enable it - either for all backends or none, so behavior is consistent. - Losing connectivity to a backend for which reconnect is - disabled will result in the server shutting itself down. This - includes cases when the lease database backend and the hosts database - backend are connected to the same database instance. + Automatic reconnection to database backends is configured individually per + backend. This allows users to tailor the recovery parameters to each backend + they use. We do suggest that users enable it either for all backends or none, + so behavior is consistent. + Losing connectivity to a backend for which reconnect is disabled will result + (if configured) in the server shutting itself down. This includes cases when + the lease database backend and the hosts database backend are connected to + the same database instance. + It is highly recommended to not change the ``stop-retry-exit`` default + setting for the lease manager as it is critical for the connection to be + active while processing DHCP traffic. Change this only if the server is used + exclusively as a configuration tool. .. @@ -752,14 +756,14 @@ The possible values are: .. note:: - Automatic reconnection to database backends is configured - individually per backend. This allows users to tailor the recovery - parameters to each backend they use. We do suggest that users enable it - either for all backends or none, so behavior is consistent. - Losing connectivity to a backend for which reconnect is - disabled will result in the server shutting itself down. This - includes cases when the lease database backend and the hosts database - backend are connected to the same database instance. + Automatic reconnection to database backends is configured individually per + backend. This allows users to tailor the recovery parameters to each backend + they use. We do suggest that users enable it either for all backends or none, + so behavior is consistent. + Losing connectivity to a backend for which reconnect is disabled will result + (if configured) in the server shutting itself down. This includes cases when + the lease database backend and the hosts database backend are connected to + the same database instance. Finally, the credentials of the account under which the server will access the database should be set: diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst index afbb80198c..cffc968f3a 100644 --- a/doc/sphinx/arm/dhcp6-srv.rst +++ b/doc/sphinx/arm/dhcp6-srv.rst @@ -492,14 +492,18 @@ The possible values are: .. note:: - Automatic reconnection to database backends is configured - individually per backend. This allows users to tailor the recovery - parameters to each backend they use. We do suggest that users enable it - either for all backends or none, so behavior is consistent. - Losing connectivity to a backend for which reconnect is - disabled will result in the server shutting itself down. This - includes cases when the lease database backend and the hosts database - backend are connected to the same database instance. + Automatic reconnection to database backends is configured individually per + backend. This allows users to tailor the recovery parameters to each backend + they use. We do suggest that users enable it either for all backends or none, + so behavior is consistent. + Losing connectivity to a backend for which reconnect is disabled will result + (if configured) in the server shutting itself down. This includes cases when + the lease database backend and the hosts database backend are connected to + the same database instance. + It is highly recommended to not change the ``stop-retry-exit`` default + setting for the lease manager as it is critical for the connection to be + active while processing DHCP traffic. Change this only if the server is used + exclusively as a configuration tool. .. @@ -671,14 +675,14 @@ The possible values are: .. note:: - Automatic reconnection to database backends is configured - individually per backend. This allows users to tailor the recovery - parameters to each backend they use. We do suggest that users enable it - either for all backends or none, so behavior is consistent. - Losing connectivity to a backend for which reconnect is - disabled will result in the server shutting itself down. This - includes cases when the lease database backend and the hosts database - backend are connected to the same database instance. + Automatic reconnection to database backends is configured individually per + backend. This allows users to tailor the recovery parameters to each backend + they use. We do suggest that users enable it either for all backends or none, + so behavior is consistent. + Losing connectivity to a backend for which reconnect is disabled will result + (if configured) in the server shutting itself down. This includes cases when + the lease database backend and the hosts database backend are connected to + the same database instance. Finally, the credentials of the account under which the server will access the database should be set: diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index fd88359d5b..5a83ec8f2e 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp4_lexer.cc" +#line 2 "dhcp4_lexer.cc" -#line 3 "dhcp4_lexer.cc" +#line 4 "dhcp4_lexer.cc" #define YY_INT_ALIGNED short int @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 206 -#define YY_END_OF_BUFFER 207 +#define YY_NUM_RULES 210 +#define YY_END_OF_BUFFER 211 /* 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[1918] = +static const flex_int16_t yy_accept[1958] = { 0, - 199, 199, 0, 0, 0, 0, 0, 0, 0, 0, - 207, 205, 10, 11, 205, 1, 199, 196, 199, 199, - 205, 198, 197, 205, 205, 205, 205, 205, 192, 193, - 205, 205, 205, 194, 195, 5, 5, 5, 205, 205, - 205, 10, 11, 0, 0, 187, 0, 0, 0, 0, + 203, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 211, 209, 10, 11, 209, 1, 203, 200, 203, 203, + 209, 202, 201, 209, 209, 209, 209, 209, 196, 197, + 209, 209, 209, 198, 199, 5, 5, 5, 209, 209, + 209, 10, 11, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 199, 199, - 0, 198, 199, 3, 2, 6, 0, 199, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 188, + 0, 0, 0, 0, 0, 0, 0, 1, 203, 203, + 0, 202, 203, 3, 2, 6, 0, 203, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -724,10 +724,10 @@ static const flex_int16_t yy_accept[1918] = 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 189, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -735,184 +735,188 @@ static const flex_int16_t yy_accept[1918] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 202, 0, 201, 200, 0, 0, - 0, 0, 0, 0, 0, 169, 0, 168, 0, 0, - 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 0, 0, 0, 208, 206, 0, 205, 204, 0, + 0, 0, 0, 0, 0, 0, 173, 0, 172, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 87, 0, 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, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 203, 200, 0, - 0, 0, 0, 0, 0, 170, 0, 172, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, - 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 207, 204, 0, 0, 0, 0, 0, 0, 174, 0, + 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 120, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 83, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 113, 0, 31, - 0, 0, 36, 0, 0, 0, 0, 0, 0, 12, - 174, 173, 0, 0, 0, 126, 0, 0, 0, 0, + 0, 0, 117, 0, 31, 0, 0, 36, 0, 0, + 0, 0, 0, 0, 12, 178, 177, 0, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 101, 0, 0, - 0, 0, 0, 0, 106, 32, 0, 0, 0, 0, + 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 136, 105, 0, + 0, 0, 0, 0, 0, 110, 32, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 112, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 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, 121, 0, - 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, + 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 0, 0, 0, 0, 0, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - + 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + + 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 119, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 22, 0, 128, 0, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, + 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, + 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 161, 0, 0, 0, 0, 73, 0, 0, - 0, 0, 0, 0, 131, 34, 0, 150, 0, 0, + 0, 0, 0, 121, 22, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 97, - 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, + 165, 0, 0, 0, 0, 77, 0, 0, 0, 0, + 0, 0, 135, 34, 0, 154, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 63, 0, 0, 0, 0, 0, 0, 101, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 78, 92, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 160, 0, 151, 150, 0, 0, 0, 0, 53, 0, + 0, 21, 0, 0, 0, 0, 175, 0, 0, 0, + 0, 0, 116, 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, 0, 0, + 144, 0, 0, 153, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 133, 0, 15, 0, 41, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, + 0, 0, 0, 0, 0, 0, 61, 0, 0, 128, + 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 0, 181, 0, 0, 186, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 183, 0, 74, 88, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, 158, 0, 0, 156, - 0, 147, 146, 0, 0, 0, 49, 0, 0, 21, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, - 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 140, 0, - 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 129, 0, 15, 0, 41, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, - 0, 0, 0, 0, 57, 0, 0, 124, 0, 0, - 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 0, 177, 0, 0, 182, - 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, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, + 0, 189, 0, 0, 114, 27, 0, 0, 0, 54, + 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 24, 0, 163, + 0, 0, 0, 56, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 48, 0, 0, - 0, 0, 0, 185, 0, 0, 110, 27, 0, 0, - 0, 50, 145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 180, 0, 153, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 24, - 0, 159, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 99, 0, 0, 0, - 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, - 0, 26, 0, 0, 181, 0, 0, 0, 0, 0, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 20, 0, 184, 72, - 0, 0, 0, 0, 178, 176, 0, 28, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, - 0, 138, 0, 0, 0, 114, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, - 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, - - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 144, 154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 103, 0, 0, + 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, + 0, 0, 26, 0, 0, 185, 0, 0, 0, 0, + 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 0, 0, 0, 0, 0, 20, 0, 0, + 0, 188, 76, 0, 48, 0, 0, 0, 182, 180, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 169, 0, 0, + + 0, 0, 0, 0, 0, 142, 0, 0, 0, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 0, 0, 0, 0, 0, 49, 0, 0, 147, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 55, 54, 19, 0, 162, - 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 136, 0, 0, 0, 51, 0, - 0, 46, 164, 0, 91, 0, 0, 0, 71, 0, - - 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, + 141, 0, 59, 58, 19, 0, 166, 0, 0, 0, + + 0, 0, 0, 0, 45, 0, 0, 0, 0, 100, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 55, 0, 0, 46, + 168, 0, 95, 0, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 0, 0, 67, 0, 0, 0, - 142, 0, 0, 0, 0, 186, 163, 0, 111, 92, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, - 0, 0, 134, 0, 0, 139, 0, 65, 0, 58, - 0, 0, 0, 0, 93, 0, 0, 0, 133, 0, - 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, - - 64, 0, 0, 0, 0, 0, 69, 0, 95, 61, - 0, 0, 0, 0, 60, 135, 0 + 0, 0, 0, 29, 0, 0, 71, 0, 0, 0, + 146, 0, 0, 0, 0, 190, 167, 0, 115, 96, + + 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 138, 0, 0, 143, 0, 69, 0, 62, + 0, 0, 0, 0, 97, 0, 0, 0, 137, 0, + 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 73, 0, 99, 65, + 0, 0, 0, 0, 64, 139, 0 } ; static const YY_CHAR yy_ec[256] = @@ -959,250 +963,254 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[1926] = +static const flex_int16_t yy_base[1966] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2304, 2305, 34, 2300, 145, 0, 207, 2305, 214, 221, - 13, 228, 2305, 2280, 118, 25, 2, 6, 2305, 2305, - 73, 11, 17, 2305, 2305, 2305, 104, 2288, 2241, 0, - 2278, 108, 2295, 24, 262, 2305, 2237, 67, 2243, 84, - 75, 88, 224, 91, 89, 290, 220, 2235, 206, 285, - 206, 204, 212, 60, 232, 2244, 247, 294, 315, 307, - 286, 2227, 230, 325, 354, 328, 2246, 0, 366, 382, - 397, 411, 404, 2305, 0, 2305, 419, 425, 216, 225, - 229, 227, 319, 329, 2305, 2243, 2284, 2305, 300, 2305, - - 438, 2271, 390, 2240, 331, 10, 406, 311, 408, 414, - 420, 2281, 0, 499, 409, 2223, 2220, 2224, 402, 2220, - 2228, 406, 2224, 2213, 2214, 2219, 78, 2229, 2212, 2221, - 2221, 95, 2212, 239, 2213, 2211, 396, 2259, 2263, 2203, - 2256, 2196, 2219, 2216, 2216, 2210, 336, 2203, 2201, 2202, - 2194, 2199, 2193, 413, 2204, 2197, 2188, 2187, 2201, 423, - 2187, 430, 422, 2181, 472, 420, 432, 2202, 2199, 2200, - 416, 2198, 2233, 2232, 423, 2178, 2178, 2179, 435, 2171, - 2188, 2180, 0, 464, 475, 471, 466, 478, 510, 2179, - 2305, 2224, 515, 2173, 475, 508, 514, 2227, 515, 2226, - - 511, 2225, 2305, 2305, 557, 2224, 530, 2183, 2175, 2162, - 2173, 2177, 2178, 2175, 2172, 2171, 2162, 493, 2213, 2207, - 2171, 2152, 2149, 2157, 2152, 2166, 2162, 2150, 2162, 2162, - 2153, 2137, 2141, 2154, 2156, 2153, 2145, 2135, 2153, 2305, - 2148, 505, 2133, 2132, 2184, 2131, 2141, 2144, 499, 2140, - 2179, 2124, 2126, 2137, 2175, 2120, 2178, 2113, 2128, 548, - 2118, 2124, 2133, 2114, 2112, 2112, 2118, 2109, 2108, 2115, - 2105, 2164, 2120, 2119, 2113, 529, 2120, 2115, 2107, 2097, - 2112, 2111, 2106, 2110, 166, 2108, 2094, 2100, 2107, 2089, - 2090, 2093, 2090, 2089, 341, 2084, 2098, 2097, 2140, 2099, - - 551, 2090, 527, 2305, 2305, 528, 2305, 2305, 2077, 515, - 546, 2125, 561, 2135, 555, 2305, 2134, 2305, 2128, 605, - 2305, 555, 2068, 2077, 2125, 2085, 2068, 2085, 2066, 2072, - 2124, 2079, 2074, 2077, 2072, 547, 2305, 2074, 2118, 2112, - 2070, 2067, 580, 2073, 2113, 2107, 2060, 2055, 2052, 2103, - 2060, 2049, 2065, 2099, 2045, 606, 2059, 2044, 2057, 2055, - 2043, 2053, 2048, 2055, 2050, 2046, 445, 2044, 2047, 2042, - 2028, 2040, 2036, 2086, 541, 2080, 2305, 2079, 2029, 2028, - 2027, 2020, 2022, 2034, 2025, 2014, 2031, 2026, 593, 2073, - 2026, 2023, 2026, 2305, 2025, 2014, 2014, 2026, 535, 2001, - - 2002, 2023, 584, 2005, 2056, 2001, 2015, 2018, 2013, 1999, - 2011, 2010, 2009, 2004, 2007, 2006, 2005, 2004, 568, 2047, - 2006, 2045, 2305, 1987, 1986, 629, 1999, 2305, 2305, 1998, - 1987, 1979, 577, 2038, 2037, 2305, 2036, 2305, 605, 657, - 579, 2035, 1977, 1988, 2027, 1980, 1982, 1981, 1969, 2305, - 1974, 1980, 1983, 1966, 1981, 1968, 1967, 2305, 584, 1969, - 1966, 596, 1964, 1966, 2305, 1974, 1971, 1956, 1969, 1964, - 656, 1971, 1959, 1952, 2003, 2305, 1950, 1966, 2000, 1961, - 1958, 1959, 1943, 1960, 1994, 1945, 1940, 1939, 1990, 1934, - 599, 1953, 1927, 1934, 1939, 1949, 1983, 1987, 2305, 1932, - - 1928, 1926, 1935, 1929, 1936, 1920, 1920, 1930, 1918, 1932, - 1921, 1917, 1915, 2305, 1972, 2305, 1914, 1925, 1964, 1909, - 1914, 1923, 1917, 1911, 1920, 1962, 1956, 1918, 1901, 1901, - 1896, 1916, 1891, 1897, 1902, 1895, 1903, 1907, 1890, 1948, - 1889, 1941, 1886, 1887, 1886, 1898, 1887, 2305, 1897, 2305, - 1886, 1884, 2305, 1895, 1931, 1891, 1875, 1892, 1932, 2305, - 2305, 2305, 609, 626, 657, 2305, 1883, 1882, 345, 1889, - 1869, 1868, 1921, 1866, 1919, 1864, 1863, 1862, 1869, 1862, - 1874, 1856, 1856, 1871, 1870, 615, 1869, 1868, 1868, 1850, - 1855, 1896, 1863, 1855, 1900, 1844, 1860, 1859, 2305, 1844, - - 1841, 1899, 1854, 1846, 1852, 1843, 1851, 1836, 1852, 1834, - 1846, 1847, 552, 1829, 1823, 1828, 1843, 1840, 1841, 1820, - 1830, 1836, 1879, 1834, 1826, 1817, 2305, 1818, 1820, 1829, - 1827, 1866, 1865, 1816, 16, 1825, 1862, 1807, 1808, 1811, - 1804, 2305, 1818, 1797, 1801, 1815, 1807, 1852, 1804, 1811, - 1849, 2305, 1794, 1808, 1792, 1806, 1809, 1790, 1842, 1841, - 1840, 1839, 1784, 1837, 1836, 2305, 1781, 1795, 671, 1796, - 1795, 1792, 1792, 1829, 1789, 1772, 1777, 1779, 2305, 1785, - 1775, 2305, 649, 651, 1769, 1767, 1774, 1784, 1776, 1763, - 1757, 1815, 639, 1819, 643, 1813, 1773, 1811, 1810, 1762, - - 1760, 1768, 1771, 1755, 1756, 1765, 1763, 1745, 1800, 1751, - 1759, 1760, 1796, 1753, 199, 651, 217, 293, 351, 309, - 417, 2305, 444, 502, 562, 640, 649, 646, 649, 648, - 636, 650, 649, 664, 661, 706, 709, 659, 652, 662, - 709, 667, 717, 2305, 718, 671, 673, 669, 663, 666, - 719, 682, 671, 684, 2305, 674, 685, 674, 687, 689, - 733, 734, 677, 688, 673, 696, 675, 681, 736, 700, - 684, 696, 740, 741, 742, 689, 744, 708, 703, 710, - 706, 691, 703, 704, 711, 697, 2305, 762, 720, 722, - 712, 724, 714, 727, 712, 719, 725, 717, 731, 771, - - 747, 734, 739, 736, 718, 725, 739, 784, 737, 735, - 744, 2305, 734, 749, 746, 732, 739, 738, 736, 755, - 752, 740, 747, 748, 757, 761, 797, 759, 749, 748, - 747, 758, 754, 810, 767, 752, 753, 759, 775, 765, - 2305, 775, 775, 768, 779, 777, 822, 764, 766, 781, - 768, 767, 829, 786, 772, 775, 2305, 2305, 785, 790, - 795, 783, 793, 795, 2305, 2305, 796, 783, 801, 788, - 782, 787, 805, 792, 842, 793, 845, 791, 795, 853, - 2305, 2305, 798, 802, 801, 798, 858, 811, 801, 802, - 798, 811, 822, 806, 824, 819, 820, 822, 815, 817, - - 818, 819, 819, 821, 836, 877, 834, 839, 816, 839, - 823, 2305, 830, 831, 845, 835, 833, 883, 841, 831, - 846, 847, 834, 866, 874, 843, 838, 893, 894, 856, - 896, 2305, 859, 863, 904, 852, 847, 848, 860, 867, - 856, 857, 853, 856, 857, 867, 876, 912, 860, 878, - 871, 866, 924, 881, 882, 873, 2305, 875, 878, 886, - 888, 873, 889, 883, 930, 896, 880, 881, 2305, 897, - 900, 883, 942, 885, 904, 2305, 903, 906, 886, 904, - 944, 902, 898, 895, 948, 949, 911, 897, 915, 914, - 915, 901, 916, 908, 915, 905, 923, 922, 909, 2305, - - 917, 923, 926, 971, 2305, 920, 925, 969, 920, 933, - 927, 931, 929, 927, 929, 939, 984, 928, 933, 929, - 988, 932, 944, 2305, 932, 940, 938, 989, 951, 937, - 938, 947, 959, 947, 945, 950, 960, 961, 966, 1007, - 979, 984, 966, 963, 959, 973, 956, 956, 1016, 959, - 2305, 959, 979, 978, 969, 958, 975, 982, 1025, 986, - 979, 983, 987, 970, 987, 978, 1033, 980, 2305, 1030, - 979, 982, 981, 982, 982, 1003, 1000, 1005, 1006, 992, - 1000, 1009, 989, 1004, 1011, 1053, 2305, 1054, 1055, 997, - 1007, 1017, 1020, 1008, 1004, 1011, 1020, 1008, 1015, 1016, - - 1028, 1069, 1016, 1014, 1016, 1033, 1074, 1024, 1023, 1029, - 1027, 1025, 1020, 1081, 1082, 1078, 1084, 2305, 1041, 1034, - 1025, 1044, 1032, 1042, 1039, 1044, 1040, 1053, 1053, 2305, - 1037, 1039, 1039, 2305, 1041, 1101, 1040, 1059, 1060, 1062, - 1053, 1107, 1108, 1061, 1046, 1060, 1068, 1067, 1051, 1056, - 1074, 2305, 1096, 1087, 1119, 1059, 1081, 1076, 1076, 1080, - 2305, 1067, 1069, 1086, 1081, 1085, 1130, 1078, 1082, 2305, - 1074, 1091, 1071, 1092, 1082, 1133, 1086, 2305, 1100, 1100, - 1138, 1085, 1140, 1099, 1104, 1090, 1150, 1093, 1104, 1096, - 1102, 1098, 1116, 1117, 1118, 2305, 2305, 1117, 2305, 1102, - - 1113, 1104, 1123, 1113, 1106, 1118, 1162, 1126, 1115, 1122, - 1123, 1129, 2305, 1122, 1174, 1115, 1176, 2305, 1177, 1119, - 1125, 1132, 1176, 1138, 2305, 2305, 1125, 2305, 1127, 1141, - 1146, 1129, 1188, 1145, 1146, 1147, 1187, 1139, 1144, 1195, - 1148, 1144, 1198, 2305, 1145, 1200, 1201, 1158, 1160, 2305, - 2305, 1143, 1205, 1201, 1165, 1208, 1150, 1162, 1167, 1182, - 1213, 2305, 1170, 1163, 1172, 1163, 1174, 1219, 1166, 1181, - 1217, 1169, 2305, 1165, 1181, 1182, 1183, 1180, 1224, 1187, - 1177, 1187, 1193, 1180, 1176, 1236, 1189, 1233, 1239, 1197, - 2305, 1198, 1191, 1200, 1202, 1199, 1189, 1192, 1192, 1197, - - 1252, 1199, 1254, 1197, 1256, 1252, 1193, 1208, 1201, 1204, - 1217, 1219, 1217, 1266, 2305, 1220, 2305, 2305, 1225, 1217, - 1227, 1212, 1268, 1214, 1275, 1219, 1229, 1278, 2305, 1226, - 1226, 1228, 1230, 1283, 1224, 1227, 2305, 1228, 1247, 2305, - 1232, 2305, 2305, 1245, 1247, 1248, 2305, 1235, 1243, 2305, - 1295, 1244, 1297, 1277, 2305, 1299, 1256, 1301, 1252, 1299, - 2305, 1247, 1255, 1249, 1246, 1249, 1252, 1252, 1269, 1308, - 1261, 1273, 1276, 1264, 1267, 1260, 1267, 1258, 2305, 1280, - 1265, 2305, 1267, 1268, 1283, 1283, 1286, 1286, 1283, 1327, - 1289, 1281, 2305, 1282, 2305, 1292, 2305, 1289, 1294, 1295, - - 1292, 1336, 1284, 1299, 1300, 1292, 2305, 1289, 1290, 1290, - 1296, 1295, 1293, 1307, 2305, 1348, 1295, 2305, 1296, 1296, - 1298, 1304, 2305, 1313, 1307, 1362, 1304, 1312, 1315, 1326, - 1325, 1369, 1322, 1331, 2305, 1328, 2305, 1325, 1348, 2305, - 1375, 2305, 1333, 1318, 1378, 1379, 1336, 1341, 1323, 1383, - 1384, 1380, 1344, 1341, 1337, 1330, 1385, 1343, 1344, 1334, - 1339, 1395, 1349, 1398, 1394, 1357, 1354, 1398, 1346, 1351, - 1349, 1408, 1364, 1352, 1411, 1369, 1413, 1374, 1363, 1357, - 1417, 1359, 1360, 1374, 1377, 1377, 1423, 1365, 1382, 1378, - 1382, 1366, 1424, 1425, 1372, 1427, 1390, 1383, 1382, 1376, - - 1394, 2305, 1394, 1395, 1382, 1381, 1437, 2305, 1378, 1396, - 1445, 1403, 1416, 2305, 1448, 1401, 2305, 2305, 1392, 1403, - 1452, 2305, 2305, 1398, 1403, 1401, 1451, 1409, 1414, 1402, - 1418, 1407, 1405, 1419, 2305, 1407, 2305, 1410, 1462, 1405, - 1410, 1470, 1418, 1428, 1429, 2305, 1474, 1428, 1472, 2305, - 1478, 2305, 1421, 1436, 1424, 2305, 1434, 1435, 1484, 1442, - 1446, 2305, 1482, 1448, 1424, 1442, 1451, 1433, 1440, 1494, - 1453, 1452, 1443, 1493, 1440, 1500, 1448, 1502, 1503, 1453, - 1457, 1462, 1455, 2305, 1508, 1509, 2305, 1458, 1511, 1453, - 2305, 1456, 1466, 1510, 1458, 1473, 1460, 1475, 1461, 1468, - - 1468, 1523, 1480, 1468, 1467, 1527, 1480, 2305, 1524, 1475, - 1472, 2305, 1486, 1473, 2305, 1490, 1535, 1488, 1485, 1486, - 2305, 1539, 1498, 1481, 1483, 1499, 1481, 1497, 1498, 1507, - 2305, 1497, 1549, 1509, 1493, 1547, 2305, 1511, 2305, 2305, - 1495, 1502, 1556, 1552, 2305, 2305, 1514, 2305, 1554, 1516, - 1517, 1502, 1503, 1511, 1565, 1513, 1562, 1563, 1518, 2305, - 1530, 1517, 1524, 2305, 1521, 1526, 1524, 1576, 1577, 1525, - 1521, 2305, 1536, 1537, 1538, 2305, 1539, 1529, 1541, 1586, - 1587, 1529, 1537, 1538, 1551, 2305, 1552, 1533, 1540, 1531, - 1591, 1552, 2305, 1556, 1541, 1541, 1556, 1549, 1548, 1559, - - 1546, 2305, 1562, 1550, 1553, 1609, 1567, 1569, 1560, 1569, - 1571, 1575, 2305, 2305, 1568, 1617, 1560, 1619, 1620, 1621, - 1579, 1623, 2305, 2305, 1619, 1581, 1582, 1569, 1577, 1588, - 1585, 1631, 1574, 1579, 1570, 1635, 1588, 1589, 1579, 1596, - 1595, 1636, 1580, 1599, 1600, 2305, 1597, 1602, 1603, 1648, - 1605, 1608, 1595, 2305, 1652, 2305, 2305, 2305, 1613, 2305, - 1595, 1655, 1656, 1599, 1658, 1606, 1655, 2305, 1621, 1662, - 1621, 2305, 1612, 1602, 1661, 1627, 1620, 1616, 1670, 1613, - 1615, 1620, 1616, 1618, 2305, 1623, 1633, 1618, 2305, 1620, - 1632, 2305, 2305, 1637, 2305, 1638, 1628, 1632, 2305, 1634, - - 1642, 1687, 1628, 1630, 1627, 1651, 2305, 1638, 1645, 1648, - 1637, 1691, 1638, 1646, 1655, 1656, 1649, 1644, 1644, 1650, - 1650, 1662, 1707, 2305, 1653, 1665, 1710, 1659, 1661, 1659, - 1714, 1667, 1654, 1669, 1674, 1719, 1720, 1677, 1722, 1723, - 1670, 1674, 1668, 2305, 1684, 1728, 2305, 1685, 1670, 1688, - 2305, 1679, 1693, 1689, 1682, 2305, 2305, 1736, 2305, 2305, - 1686, 1694, 1739, 1700, 2305, 1741, 1683, 1743, 1698, 1697, - 1698, 1688, 2305, 1748, 1744, 2305, 1691, 2305, 1703, 2305, - 1752, 1694, 1710, 1755, 2305, 1716, 1713, 1705, 2305, 1755, - 1704, 2305, 1716, 1709, 1764, 1712, 1707, 1709, 1724, 1709, - - 2305, 1770, 1723, 1772, 1773, 1721, 2305, 1723, 2305, 2305, - 1717, 1733, 1778, 1779, 2305, 2305, 2305, 1785, 1788, 1791, - 1792, 1794, 1797, 1800, 1803 + 2344, 2345, 34, 2340, 145, 0, 207, 2345, 214, 221, + 13, 228, 2345, 2320, 118, 25, 2, 6, 2345, 2345, + 73, 11, 17, 2345, 2345, 2345, 104, 2328, 2281, 0, + 2318, 108, 2335, 24, 262, 2345, 2277, 67, 2283, 84, + 75, 88, 224, 91, 89, 290, 220, 2275, 206, 285, + 206, 204, 212, 60, 232, 2284, 247, 294, 315, 307, + 286, 2267, 230, 325, 354, 328, 2286, 0, 366, 382, + 397, 411, 404, 2345, 0, 2345, 419, 425, 216, 225, + 229, 227, 319, 329, 2345, 2283, 2324, 2345, 300, 2345, + + 438, 2311, 390, 2280, 331, 10, 406, 311, 408, 414, + 420, 2321, 0, 499, 409, 2263, 2260, 2264, 402, 2260, + 2268, 406, 2264, 2253, 2254, 2259, 78, 2269, 2252, 2261, + 2261, 95, 2252, 239, 2253, 2251, 396, 2299, 2303, 2243, + 2296, 2236, 2259, 2256, 2256, 2250, 336, 2243, 2241, 2242, + 2234, 2239, 2233, 413, 2244, 346, 2229, 2228, 2242, 423, + 2228, 430, 422, 2222, 472, 420, 432, 2243, 2240, 2241, + 416, 2239, 2274, 2273, 423, 2219, 2219, 2220, 435, 2212, + 2229, 2221, 0, 464, 475, 471, 466, 478, 510, 2220, + 2345, 2265, 515, 2214, 475, 508, 514, 2268, 515, 2267, + + 511, 2266, 2345, 2345, 557, 2265, 530, 2224, 2216, 2203, + 2214, 2218, 2219, 2216, 2213, 2212, 2203, 493, 2254, 2248, + 2212, 2193, 2190, 2198, 2193, 2207, 2203, 2191, 2203, 2203, + 2194, 2178, 2182, 2195, 2197, 2194, 2186, 2176, 2194, 2345, + 2189, 505, 2174, 2173, 2225, 2172, 2182, 2185, 499, 2181, + 2220, 2165, 2167, 2178, 2216, 2161, 2219, 2173, 2153, 2168, + 548, 2158, 2164, 2173, 2154, 2152, 2152, 2158, 2149, 2148, + 2155, 2145, 2204, 2160, 2159, 2153, 529, 2160, 2155, 2147, + 2137, 2152, 2151, 2146, 2150, 166, 2148, 2134, 2140, 2147, + 2129, 493, 2134, 2131, 2130, 341, 2125, 2139, 2138, 2181, + + 2140, 551, 2131, 528, 2345, 2345, 542, 2345, 2345, 2118, + 523, 547, 2166, 552, 2176, 555, 2345, 2175, 2345, 2169, + 605, 2345, 555, 2109, 2118, 2166, 2126, 2109, 2126, 2107, + 2113, 2165, 2120, 2115, 2118, 2113, 547, 2345, 2115, 2159, + 2153, 2111, 2108, 580, 2114, 2154, 2148, 2101, 2096, 2093, + 2144, 2101, 2090, 2106, 2140, 2086, 605, 2100, 2085, 2098, + 2096, 2084, 2094, 2089, 2096, 2091, 2087, 445, 2085, 2088, + 2083, 2069, 2081, 2077, 2127, 573, 2121, 2345, 2085, 2119, + 2069, 2068, 2067, 2060, 2062, 2074, 2065, 2054, 2071, 2066, + 593, 2113, 2066, 2063, 2066, 2345, 2065, 2054, 2054, 2066, + + 535, 2041, 2042, 2063, 585, 2045, 2096, 2041, 2055, 2058, + 2053, 2039, 2051, 2050, 2049, 2044, 2086, 2046, 2045, 2044, + 2043, 556, 2086, 2045, 2084, 2345, 2026, 2025, 630, 2038, + 2345, 2345, 2037, 2026, 2018, 601, 2077, 2076, 2345, 2075, + 2345, 611, 659, 602, 2074, 2016, 2027, 2066, 2019, 2021, + 2020, 2008, 2345, 2013, 2019, 2022, 2005, 2020, 2007, 2006, + 2345, 628, 2008, 2005, 578, 2003, 2005, 2345, 2013, 2010, + 1995, 2008, 2003, 638, 2010, 1998, 1991, 2042, 2345, 1989, + 2005, 2039, 2000, 1997, 1998, 1982, 1999, 2033, 1984, 1979, + 1978, 2029, 1973, 598, 1992, 1966, 1973, 1978, 1988, 2022, + + 2026, 2345, 1971, 1967, 1965, 1974, 1973, 1967, 1974, 1958, + 1958, 1968, 1956, 1970, 1959, 1955, 1953, 2345, 2010, 2345, + 1952, 1963, 2002, 1947, 1952, 1961, 1955, 1949, 1958, 2000, + 1994, 1956, 1939, 1939, 1934, 1954, 1929, 1935, 1940, 615, + 1942, 1946, 1929, 1987, 1928, 1928, 1979, 1924, 1925, 1924, + 1936, 1925, 2345, 1935, 2345, 1924, 1922, 2345, 1933, 1969, + 1929, 1913, 1930, 1970, 2345, 2345, 2345, 629, 632, 657, + 2345, 1921, 1920, 635, 1927, 1907, 1906, 1959, 1904, 1957, + 1902, 1901, 1900, 1907, 1900, 1912, 1894, 1894, 1909, 1908, + 586, 1907, 1906, 1906, 1888, 1893, 1934, 1901, 1893, 1938, + + 1882, 1898, 1897, 2345, 1882, 1879, 1937, 1892, 1884, 1890, + 1881, 1889, 1874, 1890, 1872, 1884, 1885, 552, 1867, 1861, + 1866, 1881, 1878, 1879, 1858, 1868, 1874, 1917, 1872, 1864, + 1855, 2345, 1856, 1858, 1867, 1859, 1864, 1903, 1902, 1853, + 16, 1862, 1899, 1844, 1845, 1848, 1841, 2345, 1855, 1834, + 1838, 1852, 1844, 1889, 1841, 1848, 1886, 2345, 1831, 1845, + 1829, 1843, 1846, 1827, 1879, 1878, 1877, 1824, 1875, 1820, + 1873, 1872, 2345, 1817, 1831, 1830, 654, 1831, 1830, 1827, + 1827, 1864, 1824, 1807, 1812, 1814, 2345, 1820, 1810, 2345, + 659, 652, 1804, 1802, 1809, 1819, 1811, 1798, 1792, 1850, + + 649, 1854, 650, 1848, 1808, 1846, 1845, 1797, 1795, 1803, + 1806, 1790, 1791, 1800, 1798, 1780, 1831, 194, 224, 256, + 348, 361, 413, 653, 435, 602, 640, 609, 611, 2345, + 633, 650, 648, 663, 668, 666, 669, 668, 657, 671, + 669, 677, 675, 720, 721, 671, 663, 673, 720, 678, + 728, 2345, 729, 682, 684, 680, 674, 677, 735, 731, + 694, 683, 696, 2345, 686, 697, 686, 699, 701, 745, + 746, 689, 700, 685, 708, 687, 693, 748, 712, 696, + 708, 752, 753, 754, 701, 756, 720, 715, 722, 721, + 719, 704, 716, 718, 724, 714, 712, 2345, 776, 735, + + 736, 726, 738, 728, 741, 726, 733, 739, 731, 745, + 785, 761, 748, 753, 750, 732, 739, 753, 798, 751, + 749, 758, 2345, 748, 763, 760, 746, 753, 752, 750, + 769, 766, 754, 761, 762, 771, 775, 811, 773, 763, + 762, 761, 772, 768, 824, 781, 766, 767, 773, 789, + 779, 2345, 789, 789, 782, 793, 791, 836, 778, 780, + 795, 782, 781, 843, 800, 786, 789, 2345, 2345, 799, + 804, 809, 797, 807, 809, 2345, 2345, 810, 797, 815, + 802, 796, 2345, 801, 819, 806, 856, 807, 859, 805, + 809, 867, 2345, 2345, 812, 816, 815, 812, 872, 825, + + 815, 816, 812, 825, 836, 820, 838, 833, 834, 836, + 829, 831, 832, 828, 834, 834, 836, 851, 892, 849, + 854, 831, 854, 840, 839, 2345, 846, 847, 861, 851, + 849, 899, 857, 847, 862, 863, 850, 882, 890, 859, + 854, 909, 910, 872, 912, 2345, 875, 879, 920, 868, + 863, 864, 876, 883, 872, 873, 869, 872, 873, 883, + 892, 928, 876, 894, 887, 882, 940, 897, 898, 889, + 2345, 891, 894, 902, 904, 889, 905, 899, 946, 912, + 896, 897, 2345, 913, 916, 899, 958, 901, 920, 2345, + 919, 922, 902, 920, 960, 918, 914, 911, 964, 965, + + 927, 913, 931, 930, 931, 917, 932, 924, 931, 921, + 939, 938, 925, 2345, 933, 939, 942, 987, 2345, 936, + 941, 985, 936, 949, 943, 947, 945, 943, 945, 955, + 1000, 944, 949, 946, 946, 1005, 949, 961, 2345, 949, + 957, 955, 1006, 948, 969, 955, 956, 966, 978, 965, + 963, 968, 978, 979, 984, 1025, 997, 1002, 984, 981, + 977, 991, 974, 974, 1034, 977, 2345, 977, 997, 996, + 987, 976, 993, 1000, 1043, 1004, 997, 1001, 1005, 988, + 1005, 996, 1051, 998, 2345, 1048, 997, 1000, 999, 1000, + 1000, 1021, 1018, 1023, 1024, 1010, 1018, 1027, 1007, 1022, + + 1029, 1071, 2345, 1072, 1073, 1015, 1025, 1035, 1038, 1026, + 1022, 1029, 1038, 1026, 1033, 1034, 1046, 1087, 1034, 1032, + 1034, 1051, 1092, 1042, 1041, 1047, 1045, 1043, 1038, 1099, + 1100, 1096, 1102, 2345, 1059, 1052, 1043, 1062, 1050, 1060, + 1057, 1062, 1058, 1071, 1071, 2345, 1055, 1057, 1052, 1059, + 2345, 1060, 1120, 1059, 1078, 1079, 1081, 1120, 1073, 1127, + 1128, 1081, 1066, 1080, 1088, 1087, 1071, 1076, 1094, 2345, + 1116, 1107, 1139, 1079, 1101, 1096, 1096, 1100, 2345, 1087, + 1089, 1106, 1101, 1105, 1150, 1098, 1102, 2345, 1094, 1111, + 1091, 1112, 1102, 1153, 1106, 2345, 1120, 1120, 1158, 1105, + + 1160, 1119, 1124, 1110, 1170, 1113, 1124, 1116, 1122, 1118, + 1136, 1137, 1138, 2345, 2345, 1137, 2345, 1122, 1133, 1124, + 1143, 1133, 1126, 1138, 1182, 1146, 1135, 1142, 1143, 1149, + 2345, 1142, 1194, 1135, 1196, 2345, 1197, 1139, 1145, 1152, + 1196, 1158, 2345, 2345, 1145, 2345, 1147, 1161, 1166, 1149, + 1208, 1165, 1166, 1167, 1207, 1159, 1164, 1215, 1168, 1212, + 1165, 1219, 2345, 1166, 1221, 1222, 1179, 1180, 1182, 2345, + 2345, 1165, 1227, 1223, 1187, 1230, 1172, 1184, 1189, 1204, + 1235, 2345, 1192, 1185, 1194, 1185, 1196, 1241, 1188, 1203, + 1239, 1191, 2345, 1187, 1203, 1204, 1205, 1202, 1246, 1209, + + 1199, 1209, 1215, 1202, 1198, 1258, 1211, 1255, 1261, 1219, + 2345, 1220, 1214, 1223, 1224, 1221, 1211, 1214, 1214, 1219, + 1274, 1221, 1276, 1219, 1278, 1274, 1215, 1230, 1223, 1226, + 1239, 1241, 1239, 1288, 2345, 1242, 2345, 2345, 1247, 1239, + 1249, 1234, 1290, 1236, 1297, 1241, 1251, 1300, 2345, 1248, + 1248, 1250, 1252, 1305, 1246, 1249, 2345, 1250, 1267, 1272, + 2345, 1256, 2345, 2345, 1269, 1252, 1272, 1273, 2345, 1260, + 1268, 2345, 1320, 1269, 1322, 1302, 2345, 1324, 1281, 1326, + 1277, 1324, 2345, 1272, 1280, 1274, 1271, 1274, 1277, 1277, + 1294, 1333, 1286, 1298, 1301, 1289, 1292, 1285, 1292, 1283, + + 2345, 1305, 1290, 2345, 1292, 1293, 1308, 1308, 1311, 1311, + 1308, 1352, 1314, 1306, 2345, 1307, 2345, 1317, 2345, 1314, + 1319, 1320, 1317, 1361, 1309, 1324, 1325, 1317, 2345, 1314, + 1315, 1315, 1321, 1320, 1318, 1332, 2345, 1373, 1320, 2345, + 1321, 1321, 1323, 1329, 2345, 1338, 1332, 1387, 1329, 1335, + 1327, 1339, 1343, 1354, 1347, 1353, 1397, 1350, 1359, 2345, + 1356, 2345, 1353, 1376, 2345, 1403, 2345, 1361, 1346, 1406, + 1407, 1364, 1369, 1351, 1411, 1412, 1408, 1372, 1369, 1365, + 1358, 1413, 1371, 1372, 1362, 1367, 1423, 1377, 1426, 1422, + 1385, 1382, 1426, 1374, 1379, 1377, 1436, 1392, 1380, 1439, + + 1397, 1441, 1402, 1391, 1385, 1445, 1387, 1388, 1402, 1405, + 1405, 1451, 1393, 1410, 1406, 1410, 1394, 1452, 1453, 1400, + 1455, 1418, 1411, 1410, 1404, 1422, 2345, 1422, 1414, 1420, + 1425, 1412, 1411, 1413, 1468, 2345, 1409, 1427, 1476, 1434, + 1447, 2345, 1479, 1432, 2345, 2345, 1423, 1434, 1483, 2345, + 2345, 1429, 1434, 1432, 1482, 1440, 1445, 1433, 1449, 1438, + 1436, 1451, 2345, 1439, 2345, 1442, 1493, 1436, 1441, 1501, + 1449, 1459, 1460, 2345, 1505, 1459, 1503, 2345, 1509, 2345, + 1452, 1467, 1455, 2345, 1465, 1466, 1515, 1473, 1477, 2345, + 1513, 1479, 1455, 1473, 1482, 1464, 1471, 1525, 1484, 1483, + + 1474, 1524, 1471, 1531, 1479, 1474, 1475, 1535, 1536, 1486, + 1538, 1491, 1496, 1489, 2345, 1542, 1543, 2345, 1492, 1545, + 1487, 2345, 1490, 1500, 1544, 1492, 1507, 1494, 1509, 1495, + 1502, 1502, 1557, 1514, 1502, 1501, 1561, 1514, 2345, 1558, + 1509, 1506, 2345, 1520, 1507, 2345, 1524, 1569, 1522, 1519, + 1520, 2345, 1573, 1532, 1515, 1517, 1533, 1515, 1531, 1532, + 1541, 2345, 1531, 1583, 1543, 1527, 1581, 2345, 1545, 1540, + 1589, 2345, 2345, 1531, 2345, 1538, 1592, 1588, 2345, 2345, + 1550, 2345, 1590, 1552, 1553, 1538, 1539, 1547, 1601, 1549, + 1598, 1599, 1554, 2345, 1566, 1553, 1560, 2345, 1557, 1562, + + 1560, 1612, 1613, 1561, 1557, 2345, 1572, 1573, 1574, 2345, + 1575, 1565, 1577, 1622, 1623, 1565, 1573, 1574, 1587, 2345, + 1588, 1569, 1576, 1567, 1579, 2345, 1628, 1589, 2345, 1593, + 1578, 1578, 1593, 1586, 1585, 1596, 1583, 2345, 1599, 1587, + 1590, 1646, 1604, 1606, 1597, 1606, 1608, 1612, 2345, 2345, + 1605, 1654, 1597, 1656, 1657, 1658, 1616, 1660, 2345, 2345, + 1656, 1618, 1619, 1606, 1614, 1625, 1622, 1668, 1609, 1612, + 1617, 1608, 1673, 1626, 1627, 1617, 1634, 1633, 1674, 1618, + 1637, 1638, 2345, 1635, 1640, 1641, 1686, 1643, 1646, 1633, + 2345, 1690, 2345, 2345, 2345, 1651, 2345, 1633, 1693, 1694, + + 1637, 1696, 1644, 1693, 2345, 1655, 1660, 1701, 1660, 2345, + 1651, 1641, 1700, 1666, 1659, 1655, 1709, 1652, 1654, 1659, + 1655, 1657, 2345, 1662, 1672, 1657, 2345, 1659, 1671, 2345, + 2345, 1676, 2345, 1677, 1667, 1723, 1672, 2345, 1674, 1682, + 1727, 1668, 1670, 1667, 1691, 2345, 1678, 1685, 1688, 1677, + 1731, 1678, 1686, 1695, 1696, 1689, 1684, 1684, 1690, 2345, + 1690, 1702, 1747, 2345, 1693, 1705, 1750, 1699, 1701, 1699, + 1754, 1707, 1694, 1709, 1714, 1759, 1760, 1717, 1762, 1763, + 1710, 1714, 1708, 2345, 1724, 1768, 2345, 1725, 1710, 1728, + 2345, 1719, 1733, 1729, 1722, 2345, 2345, 1776, 2345, 2345, + + 1726, 1734, 1779, 1740, 2345, 1781, 1723, 1783, 1738, 1737, + 1738, 1728, 2345, 1788, 1784, 2345, 1731, 2345, 1743, 2345, + 1792, 1734, 1750, 1795, 2345, 1756, 1753, 1745, 2345, 1795, + 1744, 2345, 1756, 1749, 1804, 1752, 1747, 1749, 1764, 1749, + 2345, 1810, 1763, 1812, 1813, 1761, 2345, 1763, 2345, 2345, + 1757, 1773, 1818, 1819, 2345, 2345, 2345, 1825, 1828, 1831, + 1832, 1834, 1837, 1840, 1843 } ; -static const flex_int16_t yy_def[1926] = +static const flex_int16_t yy_def[1966] = { 0, - 1918, 1918, 1919, 1919, 1918, 1918, 1918, 1918, 1918, 1918, - 1917, 1917, 1917, 1917, 1917, 1920, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1921, - 1917, 1917, 1917, 1922, 15, 1917, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1923, 45, 45, 45, 45, + 1958, 1958, 1959, 1959, 1958, 1958, 1958, 1958, 1958, 1958, + 1957, 1957, 1957, 1957, 1957, 1960, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1961, + 1957, 1957, 1957, 1962, 15, 1957, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1963, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1920, 1917, 1917, - 1917, 1917, 1917, 1917, 1924, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1921, 1917, 1922, 1917, + 45, 45, 45, 45, 45, 45, 45, 1960, 1957, 1957, + 1957, 1957, 1957, 1957, 1964, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1961, 1957, 1962, 1957, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1925, 45, 1923, 45, 45, 45, 45, 45, 45, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1965, 45, 1963, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1924, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1964, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1925, 1917, 1917, 114, 45, 45, 45, 45, 45, + 45, 1965, 1957, 1957, 114, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1917, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1210,196 +1218,200 @@ static const flex_int16_t yy_def[1926] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 45, - 45, 45, 45, 45, 45, 1917, 45, 1917, 45, 114, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, + 45, 45, 45, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 45, 45, 45, 45, 45, 45, 1957, 45, 1957, 45, + 114, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 45, 45, 45, 45, 1917, 1917, 1917, - 45, 45, 45, 45, 45, 1917, 45, 1917, 45, 114, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1917, - 45, 45, 45, 45, 45, 45, 45, 1917, 45, 45, - 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 1957, 1957, 1957, 45, 45, 45, 45, 45, 1957, 45, + 1957, 45, 114, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, + 1957, 45, 45, 45, 45, 45, 45, 1957, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1917, 45, 1917, - 45, 45, 1917, 45, 45, 1917, 45, 45, 45, 1917, - 1917, 1917, 45, 45, 45, 1917, 45, 45, 45, 45, + 45, 45, 1957, 45, 1957, 45, 45, 1957, 45, 45, + 1957, 45, 45, 45, 1957, 1957, 1957, 45, 45, 45, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, + 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1957, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 1917, 45, 45, - 45, 45, 45, 45, 1917, 1917, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1917, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 1957, 45, + 45, 45, 45, 45, 45, 1957, 1957, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, - 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1917, - 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1957, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1917, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1917, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1957, 1957, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 1917, - 45, 45, 45, 45, 45, 45, 45, 1917, 45, 45, + 1957, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 45, 45, 1957, 1957, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1917, 1917, 45, 1917, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 1957, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 45, 45, 45, 45, 1917, 45, 45, - 45, 45, 45, 45, 1917, 1917, 45, 1917, 45, 45, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 1917, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1957, 45, 1957, 1957, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, + 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, + 1957, 45, 1957, 1957, 45, 45, 45, 45, 1957, 45, + 45, 1957, 45, 45, 45, 45, 1957, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1957, 45, 45, 1957, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1957, 45, 1957, 45, 1957, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, + 45, 45, 45, 45, 45, 45, 1957, 45, 45, 1957, + 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, + 45, 1957, 45, 45, 1957, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1917, 45, 1917, 1917, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 1917, - 45, 1917, 1917, 45, 45, 45, 1917, 45, 45, 1917, - 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1917, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 45, 1917, 45, 1917, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, - 45, 45, 45, 45, 1917, 45, 45, 1917, 45, 45, - 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1917, 45, 1917, 45, 45, 1917, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1957, 45, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 45, 1957, 45, 45, 1957, 1957, 45, 45, 45, 1957, + 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 1957, 45, 45, 45, 45, 45, + 45, 45, 45, 1957, 45, 45, 45, 1957, 45, 1957, + 45, 45, 45, 1957, 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 1917, 45, 45, - 45, 45, 45, 1917, 45, 45, 1917, 1917, 45, 45, - 45, 1917, 1917, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1917, 45, 1917, 45, 45, 45, - 45, 45, 45, 45, 45, 1917, 45, 45, 45, 1917, - 45, 1917, 45, 45, 45, 1917, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 1917, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1917, 45, 45, - 45, 1917, 45, 45, 1917, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1917, 45, 45, 45, 45, 45, 1917, 45, 1917, 1917, - 45, 45, 45, 45, 1917, 1917, 45, 1917, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1917, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, - 45, 1917, 45, 45, 45, 1917, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, - 45, 45, 1917, 45, 45, 45, 45, 45, 45, 45, - - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 1917, 45, 45, 45, 45, 45, 45, - 45, 45, 1917, 1917, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1957, 45, 45, 1957, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, + 45, 45, 1957, 45, 45, 1957, 45, 45, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1957, 45, 45, 45, 45, 45, 1957, 45, 45, + 45, 1957, 1957, 45, 1957, 45, 45, 45, 1957, 1957, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1957, 45, 45, 45, 1957, 45, 45, + + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 1957, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, + 45, 45, 45, 45, 45, 1957, 45, 45, 1957, 45, + 45, 45, 45, 45, 45, 45, 45, 1957, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 1957, + 45, 45, 45, 45, 45, 45, 45, 45, 1957, 1957, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1917, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 1917, 1917, 1917, 45, 1917, - 45, 45, 45, 45, 45, 45, 45, 1917, 45, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1917, 45, 45, 45, 1917, 45, - 45, 1917, 1917, 45, 1917, 45, 45, 45, 1917, 45, - - 45, 45, 45, 45, 45, 45, 1917, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, + 1957, 45, 1957, 1957, 1957, 45, 1957, 45, 45, 45, + + 45, 45, 45, 45, 1957, 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 45, 1957, 45, 45, 1957, + 1957, 45, 1957, 45, 45, 45, 45, 1957, 45, 45, + 45, 45, 45, 45, 45, 1957, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, + 45, 45, 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1917, 45, 45, 1917, 45, 45, 45, - 1917, 45, 45, 45, 45, 1917, 1917, 45, 1917, 1917, - 45, 45, 45, 45, 1917, 45, 45, 45, 45, 45, - 45, 45, 1917, 45, 45, 1917, 45, 1917, 45, 1917, - 45, 45, 45, 45, 1917, 45, 45, 45, 1917, 45, - 45, 1917, 45, 45, 45, 45, 45, 45, 45, 45, - - 1917, 45, 45, 45, 45, 45, 1917, 45, 1917, 1917, - 45, 45, 45, 45, 1917, 1917, 0, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917 + 45, 45, 45, 1957, 45, 45, 1957, 45, 45, 45, + 1957, 45, 45, 45, 45, 1957, 1957, 45, 1957, 1957, + + 45, 45, 45, 45, 1957, 45, 45, 45, 45, 45, + 45, 45, 1957, 45, 45, 1957, 45, 1957, 45, 1957, + 45, 45, 45, 45, 1957, 45, 45, 45, 1957, 45, + 45, 1957, 45, 45, 45, 45, 45, 45, 45, 45, + 1957, 45, 45, 45, 45, 45, 1957, 45, 1957, 1957, + 45, 45, 45, 45, 1957, 1957, 0, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957 } ; -static const flex_int16_t yy_nxt[2379] = +static const flex_int16_t yy_nxt[2419] = { 0, - 1917, 13, 14, 13, 1917, 15, 16, 1917, 17, 18, + 1957, 13, 14, 13, 1957, 15, 16, 1957, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 755, 37, 14, 37, 85, 25, 26, 38, 100, - 1917, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 84, 764, 37, 14, 37, 85, 25, 26, 38, 100, + 1957, 27, 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, 196, 30, 13, 14, 13, 89, 90, 25, 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 756, 13, 14, 13, 33, 40, 101, 90, 91, 196, + 765, 13, 14, 13, 33, 40, 101, 90, 91, 196, 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 89, 39, 103, 25, 26, @@ -1416,150 +1428,150 @@ static const flex_int16_t yy_nxt[2379] = 57, 58, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 55, 45, 45, 45, 45, 45, 79, 408, + 76, 77, 55, 45, 45, 45, 45, 45, 79, 410, 80, 80, 80, 80, 80, 79, 105, 82, 82, 82, - 82, 82, 409, 81, 83, 83, 83, 83, 83, 79, + 82, 82, 411, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 184, 81, 108, 105, - 103, 119, 835, 131, 81, 185, 81, 184, 109, 120, + 103, 119, 841, 131, 81, 185, 81, 184, 109, 120, 134, 135, 121, 81, 132, 122, 186, 123, 136, 124, - 81, 108, 184, 839, 133, 164, 115, 81, 45, 165, + 81, 108, 184, 842, 133, 164, 115, 81, 45, 165, 139, 185, 116, 187, 45, 117, 109, 45, 232, 45, 140, 45, 141, 45, 186, 113, 143, 144, 45, 45, - 145, 45, 45, 840, 233, 100, 146, 45, 45, 45, + 145, 45, 45, 843, 233, 100, 146, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 125, 160, 45, 126, 127, 161, 45, 128, 129, 147, - 45, 107, 101, 148, 198, 162, 316, 149, 45, 185, - 130, 419, 45, 110, 45, 114, 841, 155, 842, 150, + 45, 107, 101, 148, 198, 162, 317, 149, 45, 185, + 130, 422, 45, 110, 45, 114, 258, 155, 844, 150, 152, 195, 153, 151, 154, 156, 186, 157, 173, 174, 166, 198, 158, 159, 167, 188, 179, 168, 108, 83, 83, 83, 83, 83, 169, 170, 180, 195, 109, 171, 172, 181, 81, 79, 189, 80, 80, 80, 80, 80, - 248, 175, 688, 176, 249, 87, 177, 87, 81, 689, + 248, 175, 259, 176, 249, 87, 177, 87, 81, 845, 88, 88, 88, 88, 88, 81, 109, 83, 83, 83, 83, 83, 79, 178, 82, 82, 82, 82, 82, 193, 81, 81, 88, 88, 88, 88, 88, 81, 88, 88, 88, 88, 88, 99, 197, 199, 201, 200, 193, 211, 99, 197, 236, 81, 216, 237, 198, 193, 212, 238, - 81, 290, 213, 217, 218, 206, 843, 270, 200, 201, - 262, 271, 197, 199, 200, 291, 207, 282, 283, 197, - 99, 256, 273, 295, 99, 263, 264, 265, 99, 267, - 284, 844, 268, 269, 285, 299, 99, 305, 286, 303, - - 99, 303, 99, 99, 204, 304, 490, 491, 304, 367, - 313, 492, 205, 205, 205, 205, 205, 274, 275, 276, - 305, 205, 205, 205, 205, 205, 205, 303, 277, 306, - 278, 304, 279, 280, 307, 281, 305, 311, 313, 314, - 315, 317, 319, 333, 205, 205, 205, 205, 205, 205, - 359, 334, 311, 428, 428, 845, 335, 336, 380, 308, - 311, 425, 368, 315, 317, 369, 314, 360, 431, 319, - 320, 320, 320, 320, 320, 322, 428, 429, 432, 320, - 320, 320, 320, 320, 320, 398, 433, 435, 399, 437, - 462, 500, 455, 524, 381, 433, 463, 525, 514, 733, - - 734, 501, 320, 320, 320, 320, 320, 320, 382, 456, - 435, 476, 559, 426, 559, 433, 477, 437, 440, 440, - 440, 440, 440, 546, 441, 846, 547, 440, 440, 440, - 440, 440, 440, 529, 553, 581, 563, 530, 564, 554, - 559, 683, 565, 582, 589, 583, 584, 585, 619, 586, - 440, 440, 440, 440, 440, 440, 515, 590, 620, 591, - 684, 599, 682, 563, 478, 564, 600, 685, 683, 479, - 45, 45, 45, 45, 45, 706, 787, 801, 707, 45, - 45, 45, 45, 45, 45, 800, 810, 788, 684, 847, - 813, 814, 811, 815, 848, 849, 850, 851, 852, 853, - - 801, 854, 45, 45, 45, 45, 45, 45, 836, 855, - 856, 857, 837, 800, 858, 859, 838, 860, 861, 863, - 864, 862, 865, 866, 867, 868, 869, 870, 871, 872, - 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 81, 291, 213, 217, 218, 206, 846, 271, 200, 201, + 263, 272, 197, 199, 200, 292, 207, 283, 284, 197, + 99, 256, 274, 296, 99, 264, 265, 266, 99, 268, + 285, 850, 269, 270, 286, 300, 99, 306, 287, 304, + + 99, 304, 99, 99, 204, 305, 493, 494, 305, 368, + 314, 495, 205, 205, 205, 205, 205, 275, 276, 277, + 306, 205, 205, 205, 205, 205, 205, 304, 278, 307, + 279, 305, 280, 281, 308, 282, 306, 312, 314, 315, + 316, 318, 320, 334, 205, 205, 205, 205, 205, 205, + 360, 335, 312, 417, 431, 418, 336, 337, 382, 309, + 312, 428, 369, 316, 318, 370, 315, 361, 431, 320, + 321, 321, 321, 321, 321, 323, 434, 431, 438, 321, + 321, 321, 321, 321, 321, 400, 435, 436, 401, 440, + 465, 432, 458, 528, 383, 436, 466, 529, 518, 741, + + 742, 438, 321, 321, 321, 321, 321, 321, 384, 459, + 479, 551, 851, 429, 552, 480, 436, 440, 443, 443, + 443, 443, 443, 503, 444, 668, 594, 443, 443, 443, + 443, 443, 443, 504, 533, 558, 564, 564, 534, 595, + 559, 596, 568, 604, 569, 852, 714, 624, 605, 715, + 443, 443, 443, 443, 443, 443, 519, 625, 853, 798, + 854, 691, 690, 481, 564, 570, 692, 693, 482, 568, + 799, 569, 45, 45, 45, 45, 45, 669, 812, 586, + 855, 45, 45, 45, 45, 45, 45, 587, 691, 588, + 589, 590, 696, 591, 692, 811, 821, 824, 825, 697, + + 826, 812, 822, 856, 45, 45, 45, 45, 45, 45, + 847, 857, 858, 859, 848, 860, 861, 862, 849, 863, + 864, 865, 866, 811, 867, 868, 869, 870, 871, 872, + 874, 875, 873, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 901, 902, 903, - 906, 907, 908, 900, 910, 911, 904, 912, 909, 913, - 905, 914, 915, 916, 917, 918, 919, 920, 921, 922, - 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, + 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, + 903, 904, 905, 906, 907, 908, 909, 910, 911, 913, + 914, 915, 916, 919, 920, 912, 921, 923, 924, 917, + 925, 926, 922, 918, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, - 925, 953, 954, 955, 956, 957, 958, 959, 960, 961, - 962, 963, 964, 965, 966, 967, 968, 969, 971, 972, - 973, 974, 970, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 994, 995, 996, 993, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, + 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, + 963, 964, 965, 966, 939, 967, 968, 969, 970, 971, + 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, + 982, 983, 985, 986, 987, 988, 984, 989, 990, 991, + 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1007, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1042, 1065, 1066, 1041, 1067, 1068, 1069, - 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, - 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1089, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, - 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, - 1111, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, - 1122, 1112, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - - 1141, 1142, 1143, 1144, 1145, 1088, 1146, 1147, 1148, 1149, - 1150, 1151, 1152, 1153, 1155, 1154, 1156, 1157, 1158, 1159, - 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, - 1180, 1153, 1154, 1181, 1182, 1183, 1184, 1185, 1186, 1187, - 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, - 1199, 1201, 1202, 1203, 1198, 1204, 1205, 1206, 1207, 1208, - 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, - 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1058, + 1081, 1082, 1057, 1083, 1084, 1085, 1086, 1087, 1088, 1089, + 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1102, 1103, 1105, 1106, 1107, 1108, 1109, 1110, + 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1129, 1130, 1131, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1128, 1139, 1140, + + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1104, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, + 1170, 1171, 1173, 1172, 1174, 1175, 1176, 1177, 1178, 1179, + 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1171, + 1172, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1217, 1219, + 1220, 1221, 1216, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1200, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, - 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, + 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, + 1259, 1260, 1218, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1260, 1283, 1284, 1285, 1286, - 1287, 1261, 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, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 1302, 1280, 1303, 1304, 1305, 1306, + 1307, 1281, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, - 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 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, 1363, 1364, 1365, 1366, 1367, - 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, - 1378, 1379, 1380, 1381, 1382, 1354, 1383, 1384, 1385, 1386, - 1334, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, - 1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1362, 1405, - 1406, 1407, 1401, 1408, 1409, 1410, 1411, 1412, 1413, 1414, - 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1425, - 1426, 1427, 1428, 1424, 1429, 1430, 1431, 1432, 1433, 1434, - - 1435, 1436, 1437, 1439, 1440, 1441, 1442, 1438, 1443, 1444, - 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, - 1455, 1456, 1457, 1458, 1459, 1460, 1439, 1461, 1462, 1463, - 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, - 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, - 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, - 1494, 1495, 1496, 1497, 1498, 1501, 1499, 1502, 1503, 1504, - 1505, 1506, 1500, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 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, 1355, 1356, + 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, + 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, + 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1385, 1386, 1387, + 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, + 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1376, 1405, 1406, + 1354, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1424, 1425, 1426, + 1384, 1427, 1428, 1429, 1423, 1430, 1431, 1432, 1433, 1434, + + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, + 1445, 1447, 1448, 1449, 1450, 1446, 1451, 1452, 1453, 1454, + 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1464, 1465, + 1466, 1467, 1463, 1468, 1469, 1470, 1471, 1472, 1473, 1474, + 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, + 1485, 1464, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1525, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, + 1526, 1524, 1527, 1528, 1529, 1530, 1531, 1525, 1532, 1533, - 1535, 1536, 1526, 1537, 1538, 1539, 1513, 1540, 1541, 1542, - 1543, 1544, 1545, 1546, 1548, 1549, 1550, 1551, 1552, 1553, - 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, - 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, - 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, + 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, + 1554, 1565, 1566, 1567, 1541, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 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, 1547, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, - 1586, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, - 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, + 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, + 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, + 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1575, - 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, - 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, + 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + 1643, 1617, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, @@ -1586,85 +1598,90 @@ static const flex_int16_t yy_nxt[2379] = 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, - 1892, 1893, 1895, 1894, 1896, 1897, 1898, 1899, 1900, 1901, + 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, - 1912, 1913, 1914, 1915, 1916, 12, 12, 12, 36, 36, - 36, 78, 97, 78, 99, 99, 99, 112, 112, 112, + 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, + 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, - 183, 834, 183, 202, 202, 202, 833, 832, 831, 830, - 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, - 819, 818, 817, 816, 812, 809, 808, 807, 806, 805, - 804, 803, 802, 799, 798, 797, 796, 795, 794, 793, - 792, 791, 790, 789, 786, 785, 784, 783, 782, 781, - 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, - 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, - 760, 759, 758, 757, 754, 753, 752, 751, 750, 749, - 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, - 738, 737, 736, 735, 732, 731, 730, 729, 728, 727, - - 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, - 716, 715, 714, 713, 712, 711, 710, 709, 708, 705, - 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, - 694, 693, 692, 691, 690, 687, 686, 682, 681, 680, - 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, - 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, - 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, - 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, - 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, - 629, 628, 627, 626, 625, 624, 623, 622, 621, 618, - - 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, - 607, 606, 605, 604, 603, 602, 601, 598, 597, 596, - 595, 594, 593, 592, 588, 587, 580, 579, 578, 577, - 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, - 566, 562, 561, 560, 558, 557, 556, 555, 552, 551, - 550, 549, 548, 545, 544, 543, 542, 541, 540, 539, - 538, 537, 536, 535, 534, 533, 532, 531, 528, 527, - 526, 523, 522, 521, 520, 519, 518, 517, 516, 513, - 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, - 502, 499, 498, 497, 496, 495, 494, 493, 489, 488, - - 487, 486, 485, 484, 483, 482, 481, 480, 475, 474, - 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, - 461, 460, 459, 458, 457, 454, 453, 452, 451, 450, - 449, 448, 447, 446, 445, 444, 443, 442, 439, 438, - 436, 434, 430, 427, 424, 423, 422, 421, 420, 418, - 417, 416, 415, 414, 413, 412, 411, 410, 407, 406, - 405, 404, 403, 402, 401, 400, 397, 396, 395, 394, - 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, - 383, 379, 378, 377, 376, 375, 374, 373, 372, 371, - 370, 366, 365, 364, 363, 362, 361, 358, 357, 356, + 1932, 1933, 1935, 1934, 1936, 1937, 1938, 1939, 1940, 1941, + 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, + 1952, 1953, 1954, 1955, 1956, 12, 12, 12, 36, 36, + 36, 78, 97, 78, 99, 99, 99, 112, 112, 112, + 183, 840, 183, 202, 202, 202, 839, 838, 837, 836, + 835, 834, 833, 832, 831, 830, 829, 828, 827, 823, + 820, 819, 818, 817, 816, 815, 814, 813, 810, 809, + 808, 807, 806, 805, 804, 803, 802, 801, 800, 797, + 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, + 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, + + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 763, 762, 761, 760, 759, 758, 757, 756, 755, + 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, + 744, 743, 740, 739, 738, 737, 736, 735, 734, 733, + 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, + 722, 721, 720, 719, 718, 717, 716, 713, 712, 711, + 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, + 700, 699, 698, 695, 694, 690, 689, 688, 687, 686, + 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, + 675, 674, 673, 672, 671, 670, 667, 666, 665, 664, + + 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, + 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, + 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, + 633, 632, 631, 630, 629, 628, 627, 626, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 611, 610, 609, 608, 607, 606, 603, 602, 601, 600, + 599, 598, 597, 593, 592, 585, 584, 583, 582, 581, + 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, + 567, 566, 565, 563, 562, 561, 560, 557, 556, 555, + 554, 553, 550, 549, 548, 547, 546, 545, 544, 543, + + 542, 541, 540, 539, 538, 537, 536, 535, 532, 531, + 530, 527, 526, 525, 524, 523, 522, 521, 520, 517, + 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, + 506, 505, 502, 501, 500, 499, 498, 497, 496, 492, + 491, 490, 489, 488, 487, 486, 485, 484, 483, 478, + 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, + 467, 464, 463, 462, 461, 460, 457, 456, 455, 454, + 453, 452, 451, 450, 449, 448, 447, 446, 445, 442, + 441, 439, 437, 433, 430, 427, 426, 425, 424, 423, + 421, 420, 419, 416, 415, 414, 413, 412, 409, 408, + + 407, 406, 405, 404, 403, 402, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, + 385, 381, 380, 379, 378, 377, 376, 375, 374, 373, + 372, 371, 367, 366, 365, 364, 363, 362, 359, 358, + 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, + 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, + 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, + 322, 203, 319, 317, 313, 311, 310, 303, 302, 301, + 299, 298, 297, 295, 294, 293, 290, 289, 288, 273, + 267, 262, 261, 260, 257, 255, 254, 253, 252, 251, - 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, - 345, 344, 343, 342, 341, 340, 339, 338, 337, 332, - 331, 330, 329, 328, 327, 326, 325, 324, 323, 321, - 203, 318, 316, 312, 310, 309, 302, 301, 300, 298, - 297, 296, 294, 293, 292, 289, 288, 287, 272, 266, - 261, 260, 259, 258, 257, 255, 254, 253, 252, 251, 250, 247, 246, 245, 244, 243, 242, 241, 240, 239, 235, 234, 231, 228, 227, 226, 225, 222, 221, 220, 219, 215, 214, 210, 209, 208, 203, 194, 192, 191, 190, 182, 163, 142, 118, 104, 102, 43, 98, 96, - - 95, 86, 43, 1917, 11, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917 + 95, 86, 43, 1957, 11, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957 } ; -static const flex_int16_t yy_chk[2379] = +static const flex_int16_t yy_chk[2419] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 635, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 641, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 106, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 635, 8, 8, 8, 1, 8, 44, 27, 28, 106, + 641, 8, 8, 8, 1, 8, 44, 27, 28, 106, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 48, 2, 2, @@ -1681,244 +1698,249 @@ static const flex_int16_t yy_chk[2379] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 285, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 286, 17, 17, 17, 17, 17, 19, 62, 19, 19, 19, - 19, 19, 285, 17, 20, 20, 20, 20, 20, 22, + 19, 19, 286, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 89, 20, 53, 62, - 57, 59, 715, 61, 22, 90, 17, 92, 53, 59, + 57, 59, 718, 61, 22, 90, 17, 92, 53, 59, 62, 63, 59, 19, 61, 59, 91, 59, 63, 59, - 20, 53, 89, 717, 61, 73, 57, 22, 45, 73, + 20, 53, 89, 719, 61, 73, 57, 22, 45, 73, 65, 90, 57, 92, 45, 57, 53, 45, 134, 45, 65, 45, 65, 45, 91, 56, 67, 67, 45, 45, - 67, 45, 56, 718, 134, 99, 67, 45, 45, 45, + 67, 45, 56, 720, 134, 99, 67, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 60, 71, 56, 60, 60, 71, 56, 60, 60, 68, - 56, 69, 99, 68, 108, 71, 295, 68, 56, 93, - 60, 295, 56, 76, 56, 56, 719, 70, 720, 68, + 56, 69, 99, 68, 108, 71, 296, 68, 56, 93, + 60, 296, 56, 76, 56, 56, 156, 70, 721, 68, 69, 105, 69, 68, 69, 70, 94, 70, 75, 75, 74, 108, 70, 70, 74, 93, 76, 74, 75, 79, 79, 79, 79, 79, 74, 74, 76, 105, 75, 74, 74, 76, 79, 80, 94, 80, 80, 80, 80, 80, - 147, 75, 569, 75, 147, 81, 75, 81, 80, 569, + 147, 75, 156, 75, 147, 81, 75, 81, 80, 722, 81, 81, 81, 81, 81, 79, 75, 83, 83, 83, 83, 83, 82, 75, 82, 82, 82, 82, 82, 103, 83, 80, 87, 87, 87, 87, 87, 82, 88, 88, 88, 88, 88, 101, 107, 109, 111, 110, 115, 119, 101, 154, 137, 83, 122, 137, 175, 103, 119, 137, - 82, 171, 119, 122, 122, 115, 721, 163, 179, 111, + 82, 171, 119, 122, 122, 115, 723, 163, 179, 111, 160, 163, 107, 109, 110, 171, 115, 166, 166, 154, 101, 154, 165, 175, 101, 160, 160, 160, 101, 162, - 167, 723, 162, 162, 167, 179, 101, 186, 167, 184, + 167, 725, 162, 162, 167, 179, 101, 186, 167, 184, - 101, 187, 101, 101, 114, 185, 367, 367, 188, 249, - 195, 367, 114, 114, 114, 114, 114, 165, 165, 165, + 101, 187, 101, 101, 114, 185, 368, 368, 188, 249, + 195, 368, 114, 114, 114, 114, 114, 165, 165, 165, 186, 114, 114, 114, 114, 114, 114, 184, 165, 187, 165, 185, 165, 165, 188, 165, 189, 193, 195, 196, 197, 199, 201, 218, 114, 114, 114, 114, 114, 114, - 242, 218, 207, 303, 306, 724, 218, 218, 260, 189, - 193, 301, 249, 197, 199, 249, 196, 242, 310, 201, - 205, 205, 205, 205, 205, 207, 303, 306, 310, 205, - 205, 205, 205, 205, 205, 276, 311, 313, 276, 315, - 343, 375, 336, 399, 260, 322, 343, 399, 389, 613, - - 613, 375, 205, 205, 205, 205, 205, 205, 260, 336, - 313, 356, 433, 301, 441, 311, 356, 315, 320, 320, - 320, 320, 320, 419, 322, 725, 419, 320, 320, 320, - 320, 320, 320, 403, 426, 459, 439, 403, 439, 426, - 433, 563, 441, 459, 462, 459, 459, 459, 491, 459, - 320, 320, 320, 320, 320, 320, 389, 462, 491, 462, - 564, 471, 565, 439, 356, 439, 471, 565, 563, 356, - 440, 440, 440, 440, 440, 586, 669, 684, 586, 440, - 440, 440, 440, 440, 440, 683, 693, 669, 564, 726, - 695, 695, 693, 695, 727, 728, 729, 730, 731, 732, - - 684, 733, 440, 440, 440, 440, 440, 440, 716, 734, - 735, 736, 716, 683, 737, 738, 716, 739, 740, 741, - 742, 740, 743, 745, 746, 747, 748, 749, 750, 751, - 752, 753, 754, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, - 773, 774, 775, 776, 777, 778, 779, 780, 781, 781, - 782, 783, 784, 779, 785, 786, 781, 788, 784, 789, - 781, 790, 791, 792, 793, 794, 795, 796, 797, 798, - 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, - 809, 810, 811, 813, 814, 815, 816, 817, 818, 819, - - 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, - 801, 830, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 840, 842, 843, 844, 845, 846, 847, 848, 849, - 850, 851, 847, 852, 853, 854, 855, 856, 859, 860, - 861, 862, 863, 864, 867, 868, 869, 870, 871, 872, - 873, 874, 875, 876, 873, 877, 878, 879, 880, 883, - 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, - 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, - 904, 905, 906, 907, 908, 909, 910, 911, 913, 914, - 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, - - 925, 926, 927, 928, 929, 930, 931, 933, 934, 935, - 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, - 946, 947, 948, 925, 949, 950, 924, 951, 952, 953, - 954, 955, 956, 958, 959, 960, 961, 962, 963, 964, - 965, 966, 967, 968, 970, 971, 972, 973, 974, 975, - 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, - 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, - 997, 998, 999, 1001, 1002, 1003, 1004, 1006, 1007, 1008, - 1009, 997, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, - 1018, 1019, 1020, 1021, 1022, 1023, 1025, 1026, 1027, 1028, - - 1029, 1030, 1031, 1032, 1033, 973, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1043, 1042, 1044, 1045, 1046, 1047, - 1048, 1049, 1050, 1052, 1053, 1054, 1055, 1056, 1057, 1058, - 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, - 1070, 1041, 1042, 1071, 1072, 1073, 1074, 1075, 1076, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1088, - 1089, 1090, 1091, 1092, 1088, 1093, 1094, 1095, 1096, 1097, - 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, - 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, - 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, - - 1129, 1131, 1132, 1133, 1089, 1135, 1136, 1137, 1138, 1139, - 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, - 1150, 1151, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, - 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1171, 1172, - 1173, 1174, 1175, 1176, 1177, 1153, 1179, 1180, 1181, 1182, - 1183, 1154, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1198, 1200, 1201, 1202, 1203, 1204, - 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1214, 1215, - 1216, 1217, 1219, 1220, 1221, 1222, 1223, 1224, 1227, 1229, - 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, - - 1240, 1241, 1242, 1243, 1245, 1246, 1247, 1248, 1249, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1263, - 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1274, - 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1288, 1289, 1260, 1290, 1292, 1293, 1294, - 1237, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1268, 1312, - 1313, 1314, 1308, 1316, 1319, 1320, 1321, 1322, 1323, 1324, - 1325, 1326, 1327, 1328, 1330, 1331, 1332, 1333, 1334, 1335, - 1336, 1338, 1339, 1334, 1341, 1344, 1345, 1346, 1348, 1349, - - 1351, 1352, 1353, 1354, 1356, 1357, 1358, 1353, 1359, 1360, - 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, - 1372, 1373, 1374, 1375, 1376, 1377, 1354, 1378, 1380, 1381, - 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - 1394, 1396, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1416, 1417, - 1419, 1420, 1421, 1422, 1424, 1425, 1424, 1426, 1427, 1428, - 1429, 1430, 1424, 1431, 1432, 1433, 1434, 1436, 1438, 1439, - 1441, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, - 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, - - 1462, 1463, 1453, 1464, 1465, 1466, 1439, 1467, 1468, 1469, - 1470, 1471, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, + 242, 218, 207, 292, 304, 292, 218, 218, 261, 189, + 193, 302, 249, 197, 199, 249, 196, 242, 307, 201, + 205, 205, 205, 205, 205, 207, 311, 304, 314, 205, + 205, 205, 205, 205, 205, 277, 311, 312, 277, 316, + 344, 307, 337, 401, 261, 323, 344, 401, 391, 618, + + 618, 314, 205, 205, 205, 205, 205, 205, 261, 337, + 357, 422, 726, 302, 422, 357, 312, 316, 321, 321, + 321, 321, 321, 376, 323, 540, 465, 321, 321, 321, + 321, 321, 321, 376, 405, 429, 436, 444, 405, 465, + 429, 465, 442, 474, 442, 727, 591, 494, 474, 591, + 321, 321, 321, 321, 321, 321, 391, 494, 728, 677, + 729, 568, 570, 357, 436, 444, 569, 570, 357, 442, + 677, 442, 443, 443, 443, 443, 443, 540, 692, 462, + 731, 443, 443, 443, 443, 443, 443, 462, 568, 462, + 462, 462, 574, 462, 569, 691, 701, 703, 703, 574, + + 703, 692, 701, 732, 443, 443, 443, 443, 443, 443, + 724, 733, 734, 735, 724, 736, 737, 738, 724, 739, + 740, 741, 742, 691, 743, 744, 745, 746, 747, 748, + 749, 750, 748, 751, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 791, 792, 793, 788, 794, 795, 796, 791, + 797, 799, 794, 791, 800, 801, 802, 803, 804, 805, + 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, + + 816, 817, 818, 819, 820, 821, 822, 824, 825, 826, + 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, + 837, 838, 839, 840, 812, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 853, 854, 855, 856, + 857, 858, 859, 860, 861, 862, 858, 863, 864, 865, + 866, 867, 870, 871, 872, 873, 874, 875, 878, 879, + 880, 881, 882, 884, 885, 886, 887, 888, 885, 889, + 890, 891, 892, 895, 896, 897, 898, 899, 900, 901, + 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, + + 922, 923, 924, 925, 927, 928, 929, 930, 931, 932, + 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, + 943, 944, 945, 947, 948, 949, 950, 951, 952, 953, + 954, 955, 956, 957, 958, 959, 960, 961, 962, 939, + 963, 964, 938, 965, 966, 967, 968, 969, 970, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 984, 985, 986, 987, 988, 989, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1015, + 1016, 1017, 1018, 1020, 1021, 1022, 1023, 1011, 1024, 1025, + + 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1040, 1041, 1042, 1043, 1044, 1045, 1046, + 1047, 987, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1059, 1058, 1060, 1061, 1062, 1063, 1064, 1065, + 1066, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, + 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1086, 1057, + 1058, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1104, 1105, 1106, + 1107, 1108, 1104, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + + 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1135, 1136, + 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1147, + 1148, 1149, 1105, 1150, 1152, 1153, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1189, 1190, + 1191, 1192, 1193, 1194, 1195, 1171, 1197, 1198, 1199, 1200, + 1201, 1172, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, + 1210, 1211, 1212, 1213, 1216, 1218, 1219, 1220, 1221, 1222, + 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1232, 1233, + + 1234, 1235, 1237, 1238, 1239, 1240, 1241, 1242, 1245, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1264, 1265, 1266, 1267, 1268, + 1269, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, + 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1280, 1310, 1312, + 1255, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, + 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, + 1288, 1332, 1333, 1334, 1328, 1336, 1339, 1340, 1341, 1342, + + 1343, 1344, 1345, 1346, 1347, 1348, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1358, 1359, 1354, 1359, 1360, 1362, 1365, + 1366, 1367, 1368, 1370, 1371, 1373, 1374, 1375, 1376, 1378, + 1379, 1380, 1375, 1381, 1382, 1384, 1385, 1386, 1387, 1388, + 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1376, 1400, 1402, 1403, 1405, 1406, 1407, 1408, 1409, + 1410, 1411, 1412, 1413, 1414, 1416, 1418, 1420, 1421, 1422, + 1423, 1424, 1425, 1426, 1427, 1428, 1430, 1431, 1432, 1433, + 1434, 1435, 1436, 1438, 1439, 1441, 1442, 1443, 1444, 1446, + 1447, 1446, 1448, 1449, 1450, 1451, 1452, 1446, 1453, 1454, + + 1455, 1456, 1457, 1458, 1459, 1461, 1463, 1464, 1466, 1468, + 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, - 1499, 1500, 1501, 1503, 1504, 1505, 1506, 1507, 1509, 1510, - 1511, 1512, 1513, 1515, 1516, 1519, 1520, 1521, 1524, 1525, - 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1536, - 1538, 1472, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1547, - 1513, 1548, 1549, 1551, 1553, 1554, 1555, 1557, 1558, 1559, - 1560, 1561, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, - - 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, - 1581, 1582, 1583, 1585, 1586, 1588, 1589, 1590, 1592, 1593, - 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, - 1604, 1605, 1606, 1607, 1609, 1610, 1611, 1613, 1614, 1616, - 1617, 1618, 1619, 1620, 1622, 1623, 1624, 1625, 1626, 1627, - 1628, 1629, 1630, 1632, 1633, 1634, 1635, 1636, 1638, 1641, - 1642, 1643, 1644, 1647, 1649, 1650, 1651, 1652, 1653, 1654, - 1655, 1656, 1657, 1658, 1659, 1661, 1662, 1663, 1665, 1666, - 1667, 1668, 1669, 1670, 1671, 1673, 1674, 1675, 1677, 1678, - 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1687, 1688, 1689, - - 1690, 1691, 1692, 1694, 1695, 1696, 1697, 1698, 1699, 1700, - 1701, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, - 1712, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1725, - 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, - 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, - 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1755, 1759, 1761, - 1762, 1763, 1764, 1765, 1766, 1767, 1769, 1770, 1771, 1773, - 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, - 1784, 1786, 1787, 1788, 1790, 1791, 1794, 1796, 1797, 1798, - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1808, 1809, 1810, - - 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, - 1821, 1822, 1823, 1825, 1826, 1827, 1828, 1829, 1830, 1831, - 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, - 1842, 1843, 1845, 1846, 1848, 1849, 1850, 1852, 1853, 1854, - 1855, 1858, 1861, 1862, 1863, 1864, 1866, 1867, 1868, 1869, - 1870, 1871, 1872, 1874, 1875, 1877, 1879, 1881, 1882, 1883, - 1884, 1886, 1887, 1886, 1888, 1890, 1891, 1893, 1894, 1895, - 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, - 1908, 1911, 1912, 1913, 1914, 1918, 1918, 1918, 1919, 1919, - 1919, 1920, 1921, 1920, 1922, 1922, 1922, 1923, 1923, 1923, - - 1924, 714, 1924, 1925, 1925, 1925, 713, 712, 711, 710, - 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, - 699, 698, 697, 696, 694, 692, 691, 690, 689, 688, - 687, 686, 685, 681, 680, 678, 677, 676, 675, 674, - 673, 672, 671, 670, 668, 667, 665, 664, 663, 662, - 661, 660, 659, 658, 657, 656, 655, 654, 653, 651, - 650, 649, 648, 647, 646, 645, 644, 643, 641, 640, - 639, 638, 637, 636, 634, 633, 632, 631, 630, 629, - 628, 626, 625, 624, 623, 622, 621, 620, 619, 618, - 617, 616, 615, 614, 612, 611, 610, 609, 608, 607, - - 606, 605, 604, 603, 602, 601, 600, 598, 597, 596, - 595, 594, 593, 592, 591, 590, 589, 588, 587, 585, - 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, - 574, 573, 572, 571, 570, 568, 567, 559, 558, 557, - 556, 555, 554, 552, 551, 549, 547, 546, 545, 544, - 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, - 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, - 523, 522, 521, 520, 519, 518, 517, 515, 513, 512, - 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, - 501, 500, 498, 497, 496, 495, 494, 493, 492, 490, - - 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, - 479, 478, 477, 475, 474, 473, 472, 470, 469, 468, - 467, 466, 464, 463, 461, 460, 457, 456, 455, 454, - 453, 452, 451, 449, 448, 447, 446, 445, 444, 443, - 442, 437, 435, 434, 432, 431, 430, 427, 425, 424, - 422, 421, 420, 418, 417, 416, 415, 414, 413, 412, - 411, 410, 409, 408, 407, 406, 405, 404, 402, 401, - 400, 398, 397, 396, 395, 393, 392, 391, 390, 388, - 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, - 376, 374, 373, 372, 371, 370, 369, 368, 366, 365, - - 364, 363, 362, 361, 360, 359, 358, 357, 355, 354, - 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, - 342, 341, 340, 339, 338, 335, 334, 333, 332, 331, - 330, 329, 328, 327, 326, 325, 324, 323, 319, 317, - 314, 312, 309, 302, 300, 299, 298, 297, 296, 294, - 293, 292, 291, 290, 289, 288, 287, 286, 284, 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, 256, 255, 254, 253, 252, 251, - 250, 248, 247, 246, 245, 244, 243, 241, 239, 238, - - 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, - 227, 226, 225, 224, 223, 222, 221, 220, 219, 217, - 216, 215, 214, 213, 212, 211, 210, 209, 208, 206, - 202, 200, 198, 194, 192, 190, 182, 181, 180, 178, - 177, 176, 174, 173, 172, 170, 169, 168, 164, 161, - 159, 158, 157, 156, 155, 153, 152, 151, 150, 149, + 1478, 1489, 1490, 1491, 1464, 1492, 1493, 1494, 1495, 1496, + 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, + 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, + 1526, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1537, + 1538, 1539, 1540, 1541, 1543, 1544, 1547, 1548, 1549, 1552, + 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1497, + + 1562, 1564, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, + 1575, 1541, 1576, 1577, 1579, 1581, 1582, 1583, 1585, 1586, + 1587, 1588, 1589, 1591, 1592, 1593, 1594, 1595, 1596, 1597, + 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, + 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1616, 1617, 1619, + 1620, 1621, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, + 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1640, 1641, + 1642, 1644, 1645, 1647, 1648, 1649, 1650, 1651, 1653, 1654, + 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1663, 1664, 1665, + 1666, 1667, 1669, 1670, 1671, 1674, 1676, 1677, 1678, 1681, + + 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, + 1693, 1695, 1696, 1697, 1699, 1700, 1701, 1702, 1703, 1704, + 1705, 1707, 1708, 1709, 1711, 1712, 1713, 1714, 1715, 1716, + 1717, 1718, 1719, 1721, 1722, 1723, 1724, 1725, 1727, 1728, + 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1739, 1740, + 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1751, 1752, + 1753, 1754, 1755, 1756, 1757, 1758, 1761, 1762, 1763, 1764, + 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1792, 1796, 1798, 1799, 1800, + + 1801, 1802, 1803, 1804, 1806, 1807, 1808, 1809, 1811, 1812, + 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, + 1824, 1825, 1826, 1828, 1829, 1832, 1834, 1835, 1836, 1837, + 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1847, 1848, 1849, + 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, + 1861, 1862, 1863, 1865, 1866, 1867, 1868, 1869, 1870, 1871, + 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, + 1882, 1883, 1885, 1886, 1888, 1889, 1890, 1892, 1893, 1894, + 1895, 1898, 1901, 1902, 1903, 1904, 1906, 1907, 1908, 1909, + 1910, 1911, 1912, 1914, 1915, 1917, 1919, 1921, 1922, 1923, + + 1924, 1926, 1927, 1926, 1928, 1930, 1931, 1933, 1934, 1935, + 1936, 1937, 1938, 1939, 1940, 1942, 1943, 1944, 1945, 1946, + 1948, 1951, 1952, 1953, 1954, 1958, 1958, 1958, 1959, 1959, + 1959, 1960, 1961, 1960, 1962, 1962, 1962, 1963, 1963, 1963, + 1964, 717, 1964, 1965, 1965, 1965, 716, 715, 714, 713, + 712, 711, 710, 709, 708, 707, 706, 705, 704, 702, + 700, 699, 698, 697, 696, 695, 694, 693, 689, 688, + 686, 685, 684, 683, 682, 681, 680, 679, 678, 676, + 675, 674, 672, 671, 670, 669, 668, 667, 666, 665, + 664, 663, 662, 661, 660, 659, 657, 656, 655, 654, + + 653, 652, 651, 650, 649, 647, 646, 645, 644, 643, + 642, 640, 639, 638, 637, 636, 635, 634, 633, 631, + 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, + 620, 619, 617, 616, 615, 614, 613, 612, 611, 610, + 609, 608, 607, 606, 605, 603, 602, 601, 600, 599, + 598, 597, 596, 595, 594, 593, 592, 590, 589, 588, + 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, + 577, 576, 575, 573, 572, 564, 563, 562, 561, 560, + 559, 557, 556, 554, 552, 551, 550, 549, 548, 547, + 546, 545, 544, 543, 542, 541, 539, 538, 537, 536, + + 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, + 525, 524, 523, 522, 521, 519, 517, 516, 515, 514, + 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, + 503, 501, 500, 499, 498, 497, 496, 495, 493, 492, + 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, + 481, 480, 478, 477, 476, 475, 473, 472, 471, 470, + 469, 467, 466, 464, 463, 460, 459, 458, 457, 456, + 455, 454, 452, 451, 450, 449, 448, 447, 446, 445, + 440, 438, 437, 435, 434, 433, 430, 428, 427, 425, + 424, 423, 421, 420, 419, 418, 417, 416, 415, 414, + + 413, 412, 411, 410, 409, 408, 407, 406, 404, 403, + 402, 400, 399, 398, 397, 395, 394, 393, 392, 390, + 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, + 379, 377, 375, 374, 373, 372, 371, 370, 369, 367, + 366, 365, 364, 363, 362, 361, 360, 359, 358, 356, + 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, + 345, 343, 342, 341, 340, 339, 336, 335, 334, 333, + 332, 331, 330, 329, 328, 327, 326, 325, 324, 320, + 318, 315, 313, 310, 303, 301, 300, 299, 298, 297, + 295, 294, 293, 291, 290, 289, 288, 287, 285, 284, + + 283, 282, 281, 280, 279, 278, 276, 275, 274, 273, + 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, + 262, 260, 259, 258, 257, 256, 255, 254, 253, 252, + 251, 250, 248, 247, 246, 245, 244, 243, 241, 239, + 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, + 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, + 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, + 206, 202, 200, 198, 194, 192, 190, 182, 181, 180, + 178, 177, 176, 174, 173, 172, 170, 169, 168, 164, + 161, 159, 158, 157, 155, 153, 152, 151, 150, 149, + 148, 146, 145, 144, 143, 142, 141, 140, 139, 138, 136, 135, 133, 131, 130, 129, 128, 126, 125, 124, 123, 121, 120, 118, 117, 116, 112, 104, 102, 97, 96, 77, 72, 66, 58, 49, 47, 43, 41, 39, - - 38, 24, 14, 11, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, - 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917 + 38, 24, 14, 11, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957 } ; static yy_state_type yy_last_accepting_state; @@ -1927,31 +1949,31 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[206] = +static const flex_int16_t yy_rule_linenum[210] = { 0, 146, 148, 150, 155, 156, 161, 162, 163, 175, 178, 183, 190, 199, 208, 217, 226, 235, 244, 254, 263, 272, 281, 290, 299, 308, 317, 326, 335, 344, 353, 362, 374, 383, 392, 401, 410, 421, 432, 443, 454, - 465, 476, 487, 498, 509, 520, 531, 542, 553, 564, - 575, 586, 595, 607, 619, 631, 642, 653, 662, 671, - 680, 689, 700, 711, 722, 733, 744, 755, 766, 777, - 787, 798, 807, 817, 831, 847, 856, 865, 874, 883, - 905, 927, 936, 946, 955, 966, 975, 984, 993, 1002, - 1011, 1022, 1033, 1044, 1054, 1063, 1074, 1085, 1096, 1107, - - 1119, 1128, 1137, 1146, 1155, 1164, 1173, 1182, 1191, 1200, - 1210, 1221, 1233, 1242, 1251, 1261, 1271, 1281, 1291, 1301, - 1311, 1320, 1330, 1339, 1348, 1357, 1366, 1376, 1386, 1395, - 1405, 1414, 1423, 1432, 1441, 1450, 1459, 1468, 1477, 1486, - 1495, 1504, 1513, 1522, 1531, 1540, 1549, 1558, 1567, 1576, - 1585, 1594, 1603, 1612, 1621, 1630, 1639, 1648, 1657, 1666, - 1675, 1684, 1693, 1702, 1711, 1720, 1732, 1744, 1754, 1764, - 1774, 1784, 1794, 1804, 1814, 1824, 1834, 1843, 1852, 1861, - 1870, 1881, 1892, 1905, 1918, 1931, 1940, 2041, 2057, 2106, - 2114, 2129, 2130, 2131, 2132, 2133, 2134, 2136, 2154, 2167, - - 2172, 2176, 2178, 2180, 2182 + 465, 476, 487, 498, 509, 520, 531, 542, 551, 560, + 569, 580, 591, 602, 613, 624, 633, 645, 657, 669, + 680, 691, 700, 709, 718, 727, 738, 749, 760, 771, + 782, 793, 804, 815, 825, 836, 845, 855, 869, 885, + 894, 903, 912, 921, 943, 965, 974, 984, 993, 1004, + 1013, 1022, 1031, 1040, 1049, 1060, 1071, 1082, 1092, 1101, + + 1112, 1123, 1134, 1145, 1157, 1166, 1175, 1184, 1193, 1202, + 1211, 1220, 1229, 1238, 1248, 1259, 1271, 1280, 1289, 1299, + 1309, 1319, 1329, 1339, 1349, 1358, 1368, 1377, 1386, 1395, + 1404, 1414, 1424, 1433, 1443, 1452, 1461, 1470, 1479, 1488, + 1497, 1506, 1515, 1524, 1533, 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, + 1770, 1782, 1792, 1802, 1812, 1822, 1832, 1842, 1852, 1862, + 1872, 1881, 1890, 1899, 1908, 1919, 1930, 1943, 1956, 1969, + 1978, 2079, 2095, 2144, 2152, 2167, 2168, 2169, 2170, 2171, + + 2172, 2174, 2192, 2205, 2210, 2214, 2216, 2218, 2220 } ; /* The intent behind this definition is that it'll catch @@ -2005,7 +2027,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2008 "dhcp4_lexer.cc" +#line 2031 "dhcp4_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2031,8 +2053,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 2034 "dhcp4_lexer.cc" -#line 2035 "dhcp4_lexer.cc" +#line 2057 "dhcp4_lexer.cc" +#line 2058 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2360,7 +2382,7 @@ YY_DECL } -#line 2363 "dhcp4_lexer.cc" +#line 2386 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2389,13 +2411,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 >= 1918 ) + if ( yy_current_state >= 1958 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1917 ); + while ( yy_current_state != 1957 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2414,13 +2436,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 < 206 ) + else if ( yy_act < 210 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 206 ) + else if ( yy_act == 210 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 207 ) + else if ( yy_act == 211 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2978,15 +3000,65 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_REQUEST_TIMEOUT(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("request-timeout", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_); } } YY_BREAK case 48: YY_RULE_SETUP #line 542 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DATABASE_ON_FAIL: + return isc::dhcp::Dhcp4Parser::make_STOP_RETRY_EXIT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_); + } +} + YY_BREAK +case 49: +YY_RULE_SETUP +#line 551 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DATABASE_ON_FAIL: + return isc::dhcp::Dhcp4Parser::make_SERVE_RETRY_EXIT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_); + } +} + YY_BREAK +case 50: +YY_RULE_SETUP +#line 560 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DATABASE_ON_FAIL: + return isc::dhcp::Dhcp4Parser::make_SERVE_RETRY_CONTINUE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_); + } +} + YY_BREAK +case 51: +YY_RULE_SETUP +#line 569 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_REQUEST_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("request-timeout", driver.loc_); + } +} + YY_BREAK +case 52: +YY_RULE_SETUP +#line 580 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2998,9 +3070,9 @@ YY_RULE_SETUP } } YY_BREAK -case 49: +case 53: YY_RULE_SETUP -#line 553 "dhcp4_lexer.ll" +#line 591 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3012,9 +3084,9 @@ YY_RULE_SETUP } } YY_BREAK -case 50: +case 54: YY_RULE_SETUP -#line 564 "dhcp4_lexer.ll" +#line 602 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3026,9 +3098,9 @@ YY_RULE_SETUP } } YY_BREAK -case 51: +case 55: YY_RULE_SETUP -#line 575 "dhcp4_lexer.ll" +#line 613 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3040,9 +3112,9 @@ YY_RULE_SETUP } } YY_BREAK -case 52: +case 56: YY_RULE_SETUP -#line 586 "dhcp4_lexer.ll" +#line 624 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3052,9 +3124,9 @@ YY_RULE_SETUP } } YY_BREAK -case 53: +case 57: YY_RULE_SETUP -#line 595 "dhcp4_lexer.ll" +#line 633 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3067,9 +3139,9 @@ YY_RULE_SETUP } } YY_BREAK -case 54: +case 58: YY_RULE_SETUP -#line 607 "dhcp4_lexer.ll" +#line 645 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3082,9 +3154,9 @@ YY_RULE_SETUP } } YY_BREAK -case 55: +case 59: YY_RULE_SETUP -#line 619 "dhcp4_lexer.ll" +#line 657 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3097,9 +3169,9 @@ YY_RULE_SETUP } } YY_BREAK -case 56: +case 60: YY_RULE_SETUP -#line 631 "dhcp4_lexer.ll" +#line 669 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3111,9 +3183,9 @@ YY_RULE_SETUP } } YY_BREAK -case 57: +case 61: YY_RULE_SETUP -#line 642 "dhcp4_lexer.ll" +#line 680 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3125,9 +3197,9 @@ YY_RULE_SETUP } } YY_BREAK -case 58: +case 62: YY_RULE_SETUP -#line 653 "dhcp4_lexer.ll" +#line 691 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3137,9 +3209,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 63: YY_RULE_SETUP -#line 662 "dhcp4_lexer.ll" +#line 700 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3149,9 +3221,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 64: YY_RULE_SETUP -#line 671 "dhcp4_lexer.ll" +#line 709 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3161,9 +3233,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 65: YY_RULE_SETUP -#line 680 "dhcp4_lexer.ll" +#line 718 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3173,9 +3245,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 66: YY_RULE_SETUP -#line 689 "dhcp4_lexer.ll" +#line 727 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3187,9 +3259,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 67: YY_RULE_SETUP -#line 700 "dhcp4_lexer.ll" +#line 738 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3201,9 +3273,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 68: YY_RULE_SETUP -#line 711 "dhcp4_lexer.ll" +#line 749 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3215,9 +3287,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 69: YY_RULE_SETUP -#line 722 "dhcp4_lexer.ll" +#line 760 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3229,9 +3301,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 70: YY_RULE_SETUP -#line 733 "dhcp4_lexer.ll" +#line 771 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3243,9 +3315,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 71: YY_RULE_SETUP -#line 744 "dhcp4_lexer.ll" +#line 782 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3257,9 +3329,9 @@ YY_RULE_SETUP } } YY_BREAK -case 68: +case 72: YY_RULE_SETUP -#line 755 "dhcp4_lexer.ll" +#line 793 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3271,9 +3343,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 73: YY_RULE_SETUP -#line 766 "dhcp4_lexer.ll" +#line 804 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3285,9 +3357,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 74: YY_RULE_SETUP -#line 777 "dhcp4_lexer.ll" +#line 815 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3298,9 +3370,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 75: YY_RULE_SETUP -#line 787 "dhcp4_lexer.ll" +#line 825 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3312,9 +3384,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 76: YY_RULE_SETUP -#line 798 "dhcp4_lexer.ll" +#line 836 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3324,9 +3396,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 77: YY_RULE_SETUP -#line 807 "dhcp4_lexer.ll" +#line 845 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3337,9 +3409,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 78: YY_RULE_SETUP -#line 817 "dhcp4_lexer.ll" +#line 855 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3354,9 +3426,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 79: YY_RULE_SETUP -#line 831 "dhcp4_lexer.ll" +#line 869 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3373,9 +3445,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 80: YY_RULE_SETUP -#line 847 "dhcp4_lexer.ll" +#line 885 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3385,9 +3457,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 81: YY_RULE_SETUP -#line 856 "dhcp4_lexer.ll" +#line 894 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3397,9 +3469,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 82: YY_RULE_SETUP -#line 865 "dhcp4_lexer.ll" +#line 903 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3409,9 +3481,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 83: YY_RULE_SETUP -#line 874 "dhcp4_lexer.ll" +#line 912 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3421,9 +3493,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 84: YY_RULE_SETUP -#line 883 "dhcp4_lexer.ll" +#line 921 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3446,9 +3518,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 85: YY_RULE_SETUP -#line 905 "dhcp4_lexer.ll" +#line 943 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3471,9 +3543,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 86: YY_RULE_SETUP -#line 927 "dhcp4_lexer.ll" +#line 965 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3483,9 +3555,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 87: YY_RULE_SETUP -#line 936 "dhcp4_lexer.ll" +#line 974 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3496,9 +3568,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 88: YY_RULE_SETUP -#line 946 "dhcp4_lexer.ll" +#line 984 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3508,9 +3580,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 89: YY_RULE_SETUP -#line 955 "dhcp4_lexer.ll" +#line 993 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3522,9 +3594,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 90: YY_RULE_SETUP -#line 966 "dhcp4_lexer.ll" +#line 1004 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3534,9 +3606,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 91: YY_RULE_SETUP -#line 975 "dhcp4_lexer.ll" +#line 1013 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3546,9 +3618,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 92: YY_RULE_SETUP -#line 984 "dhcp4_lexer.ll" +#line 1022 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3558,9 +3630,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 93: YY_RULE_SETUP -#line 993 "dhcp4_lexer.ll" +#line 1031 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3570,9 +3642,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 94: YY_RULE_SETUP -#line 1002 "dhcp4_lexer.ll" +#line 1040 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3582,9 +3654,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 95: YY_RULE_SETUP -#line 1011 "dhcp4_lexer.ll" +#line 1049 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3596,9 +3668,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 96: YY_RULE_SETUP -#line 1022 "dhcp4_lexer.ll" +#line 1060 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3610,9 +3682,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 97: YY_RULE_SETUP -#line 1033 "dhcp4_lexer.ll" +#line 1071 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3624,9 +3696,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 98: YY_RULE_SETUP -#line 1044 "dhcp4_lexer.ll" +#line 1082 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3637,9 +3709,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 99: YY_RULE_SETUP -#line 1054 "dhcp4_lexer.ll" +#line 1092 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3649,9 +3721,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 100: YY_RULE_SETUP -#line 1063 "dhcp4_lexer.ll" +#line 1101 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3663,9 +3735,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 101: YY_RULE_SETUP -#line 1074 "dhcp4_lexer.ll" +#line 1112 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3677,9 +3749,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 102: YY_RULE_SETUP -#line 1085 "dhcp4_lexer.ll" +#line 1123 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3691,9 +3763,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 103: YY_RULE_SETUP -#line 1096 "dhcp4_lexer.ll" +#line 1134 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3705,9 +3777,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 104: YY_RULE_SETUP -#line 1107 "dhcp4_lexer.ll" +#line 1145 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3719,9 +3791,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 105: YY_RULE_SETUP -#line 1119 "dhcp4_lexer.ll" +#line 1157 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3731,9 +3803,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 106: YY_RULE_SETUP -#line 1128 "dhcp4_lexer.ll" +#line 1166 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3743,9 +3815,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 107: YY_RULE_SETUP -#line 1137 "dhcp4_lexer.ll" +#line 1175 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3755,9 +3827,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 108: YY_RULE_SETUP -#line 1146 "dhcp4_lexer.ll" +#line 1184 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3767,9 +3839,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 109: YY_RULE_SETUP -#line 1155 "dhcp4_lexer.ll" +#line 1193 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3779,9 +3851,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 110: YY_RULE_SETUP -#line 1164 "dhcp4_lexer.ll" +#line 1202 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3791,9 +3863,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 111: YY_RULE_SETUP -#line 1173 "dhcp4_lexer.ll" +#line 1211 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3803,9 +3875,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 112: YY_RULE_SETUP -#line 1182 "dhcp4_lexer.ll" +#line 1220 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3815,9 +3887,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 113: YY_RULE_SETUP -#line 1191 "dhcp4_lexer.ll" +#line 1229 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3827,9 +3899,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 114: YY_RULE_SETUP -#line 1200 "dhcp4_lexer.ll" +#line 1238 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3840,9 +3912,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 115: YY_RULE_SETUP -#line 1210 "dhcp4_lexer.ll" +#line 1248 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3854,9 +3926,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 116: YY_RULE_SETUP -#line 1221 "dhcp4_lexer.ll" +#line 1259 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3869,9 +3941,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 117: YY_RULE_SETUP -#line 1233 "dhcp4_lexer.ll" +#line 1271 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3881,9 +3953,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 118: YY_RULE_SETUP -#line 1242 "dhcp4_lexer.ll" +#line 1280 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3893,9 +3965,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 119: YY_RULE_SETUP -#line 1251 "dhcp4_lexer.ll" +#line 1289 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3906,9 +3978,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 120: YY_RULE_SETUP -#line 1261 "dhcp4_lexer.ll" +#line 1299 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3919,9 +3991,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 121: YY_RULE_SETUP -#line 1271 "dhcp4_lexer.ll" +#line 1309 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3932,9 +4004,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 122: YY_RULE_SETUP -#line 1281 "dhcp4_lexer.ll" +#line 1319 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3945,9 +4017,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 123: YY_RULE_SETUP -#line 1291 "dhcp4_lexer.ll" +#line 1329 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3958,9 +4030,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 124: YY_RULE_SETUP -#line 1301 "dhcp4_lexer.ll" +#line 1339 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3971,9 +4043,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 125: YY_RULE_SETUP -#line 1311 "dhcp4_lexer.ll" +#line 1349 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -3983,9 +4055,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 126: YY_RULE_SETUP -#line 1320 "dhcp4_lexer.ll" +#line 1358 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3996,9 +4068,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 127: YY_RULE_SETUP -#line 1330 "dhcp4_lexer.ll" +#line 1368 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -4008,9 +4080,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 128: YY_RULE_SETUP -#line 1339 "dhcp4_lexer.ll" +#line 1377 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4020,9 +4092,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 129: YY_RULE_SETUP -#line 1348 "dhcp4_lexer.ll" +#line 1386 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4032,9 +4104,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 130: YY_RULE_SETUP -#line 1357 "dhcp4_lexer.ll" +#line 1395 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4044,9 +4116,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 131: YY_RULE_SETUP -#line 1366 "dhcp4_lexer.ll" +#line 1404 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4057,9 +4129,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 132: YY_RULE_SETUP -#line 1376 "dhcp4_lexer.ll" +#line 1414 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4070,9 +4142,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 133: YY_RULE_SETUP -#line 1386 "dhcp4_lexer.ll" +#line 1424 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4082,9 +4154,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 134: YY_RULE_SETUP -#line 1395 "dhcp4_lexer.ll" +#line 1433 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4094,9 +4166,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 135: YY_RULE_SETUP -#line 1405 "dhcp4_lexer.ll" +#line 1443 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4106,9 +4178,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 136: YY_RULE_SETUP -#line 1414 "dhcp4_lexer.ll" +#line 1452 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4118,9 +4190,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 137: YY_RULE_SETUP -#line 1423 "dhcp4_lexer.ll" +#line 1461 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4130,9 +4202,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 138: YY_RULE_SETUP -#line 1432 "dhcp4_lexer.ll" +#line 1470 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4142,9 +4214,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 139: YY_RULE_SETUP -#line 1441 "dhcp4_lexer.ll" +#line 1479 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4154,9 +4226,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 140: YY_RULE_SETUP -#line 1450 "dhcp4_lexer.ll" +#line 1488 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4166,9 +4238,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 141: YY_RULE_SETUP -#line 1459 "dhcp4_lexer.ll" +#line 1497 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4178,9 +4250,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 142: YY_RULE_SETUP -#line 1468 "dhcp4_lexer.ll" +#line 1506 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4190,9 +4262,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 143: YY_RULE_SETUP -#line 1477 "dhcp4_lexer.ll" +#line 1515 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4202,9 +4274,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 144: YY_RULE_SETUP -#line 1486 "dhcp4_lexer.ll" +#line 1524 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4214,9 +4286,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 145: YY_RULE_SETUP -#line 1495 "dhcp4_lexer.ll" +#line 1533 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4226,9 +4298,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 146: YY_RULE_SETUP -#line 1504 "dhcp4_lexer.ll" +#line 1542 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4238,9 +4310,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 147: YY_RULE_SETUP -#line 1513 "dhcp4_lexer.ll" +#line 1551 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4250,9 +4322,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 148: YY_RULE_SETUP -#line 1522 "dhcp4_lexer.ll" +#line 1560 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4262,9 +4334,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 149: YY_RULE_SETUP -#line 1531 "dhcp4_lexer.ll" +#line 1569 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4274,9 +4346,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 150: YY_RULE_SETUP -#line 1540 "dhcp4_lexer.ll" +#line 1578 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4286,9 +4358,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 151: YY_RULE_SETUP -#line 1549 "dhcp4_lexer.ll" +#line 1587 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4298,9 +4370,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 152: YY_RULE_SETUP -#line 1558 "dhcp4_lexer.ll" +#line 1596 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4310,9 +4382,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 153: YY_RULE_SETUP -#line 1567 "dhcp4_lexer.ll" +#line 1605 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4322,9 +4394,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 154: YY_RULE_SETUP -#line 1576 "dhcp4_lexer.ll" +#line 1614 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4334,9 +4406,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 155: YY_RULE_SETUP -#line 1585 "dhcp4_lexer.ll" +#line 1623 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4346,9 +4418,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 156: YY_RULE_SETUP -#line 1594 "dhcp4_lexer.ll" +#line 1632 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4358,9 +4430,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 157: YY_RULE_SETUP -#line 1603 "dhcp4_lexer.ll" +#line 1641 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4370,9 +4442,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 158: YY_RULE_SETUP -#line 1612 "dhcp4_lexer.ll" +#line 1650 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4382,9 +4454,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 159: YY_RULE_SETUP -#line 1621 "dhcp4_lexer.ll" +#line 1659 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4394,9 +4466,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 160: YY_RULE_SETUP -#line 1630 "dhcp4_lexer.ll" +#line 1668 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4406,9 +4478,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 161: YY_RULE_SETUP -#line 1639 "dhcp4_lexer.ll" +#line 1677 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4418,9 +4490,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 162: YY_RULE_SETUP -#line 1648 "dhcp4_lexer.ll" +#line 1686 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4430,9 +4502,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 163: YY_RULE_SETUP -#line 1657 "dhcp4_lexer.ll" +#line 1695 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4442,9 +4514,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 164: YY_RULE_SETUP -#line 1666 "dhcp4_lexer.ll" +#line 1704 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4454,9 +4526,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 165: YY_RULE_SETUP -#line 1675 "dhcp4_lexer.ll" +#line 1713 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4466,9 +4538,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 166: YY_RULE_SETUP -#line 1684 "dhcp4_lexer.ll" +#line 1722 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4478,9 +4550,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 167: YY_RULE_SETUP -#line 1693 "dhcp4_lexer.ll" +#line 1731 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4490,9 +4562,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 168: YY_RULE_SETUP -#line 1702 "dhcp4_lexer.ll" +#line 1740 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4502,9 +4574,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 169: YY_RULE_SETUP -#line 1711 "dhcp4_lexer.ll" +#line 1749 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4514,9 +4586,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 170: YY_RULE_SETUP -#line 1720 "dhcp4_lexer.ll" +#line 1758 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4529,9 +4601,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 171: YY_RULE_SETUP -#line 1732 "dhcp4_lexer.ll" +#line 1770 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4544,9 +4616,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 172: YY_RULE_SETUP -#line 1744 "dhcp4_lexer.ll" +#line 1782 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4557,9 +4629,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 169: +case 173: YY_RULE_SETUP -#line 1754 "dhcp4_lexer.ll" +#line 1792 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4570,9 +4642,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 170: +case 174: YY_RULE_SETUP -#line 1764 "dhcp4_lexer.ll" +#line 1802 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -4583,9 +4655,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 171: +case 175: YY_RULE_SETUP -#line 1774 "dhcp4_lexer.ll" +#line 1812 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4596,9 +4668,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 172: +case 176: YY_RULE_SETUP -#line 1784 "dhcp4_lexer.ll" +#line 1822 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4609,9 +4681,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 173: +case 177: YY_RULE_SETUP -#line 1794 "dhcp4_lexer.ll" +#line 1832 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4622,9 +4694,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 174: +case 178: YY_RULE_SETUP -#line 1804 "dhcp4_lexer.ll" +#line 1842 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4635,9 +4707,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 175: +case 179: YY_RULE_SETUP -#line 1814 "dhcp4_lexer.ll" +#line 1852 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4648,9 +4720,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 176: +case 180: YY_RULE_SETUP -#line 1824 "dhcp4_lexer.ll" +#line 1862 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4661,9 +4733,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 177: +case 181: YY_RULE_SETUP -#line 1834 "dhcp4_lexer.ll" +#line 1872 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4673,9 +4745,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 182: YY_RULE_SETUP -#line 1843 "dhcp4_lexer.ll" +#line 1881 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4685,9 +4757,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 183: YY_RULE_SETUP -#line 1852 "dhcp4_lexer.ll" +#line 1890 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4697,9 +4769,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 184: YY_RULE_SETUP -#line 1861 "dhcp4_lexer.ll" +#line 1899 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4709,9 +4781,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 185: YY_RULE_SETUP -#line 1870 "dhcp4_lexer.ll" +#line 1908 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4723,9 +4795,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 186: YY_RULE_SETUP -#line 1881 "dhcp4_lexer.ll" +#line 1919 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4737,9 +4809,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 187: YY_RULE_SETUP -#line 1892 "dhcp4_lexer.ll" +#line 1930 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4753,9 +4825,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 188: YY_RULE_SETUP -#line 1905 "dhcp4_lexer.ll" +#line 1943 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4769,9 +4841,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 189: YY_RULE_SETUP -#line 1918 "dhcp4_lexer.ll" +#line 1956 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4785,9 +4857,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 190: YY_RULE_SETUP -#line 1931 "dhcp4_lexer.ll" +#line 1969 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4797,9 +4869,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 191: YY_RULE_SETUP -#line 1940 "dhcp4_lexer.ll" +#line 1978 "dhcp4_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -4901,10 +4973,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 188: -/* rule 188 can match eol */ +case 192: +/* rule 192 can match eol */ YY_RULE_SETUP -#line 2041 "dhcp4_lexer.ll" +#line 2079 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -4921,10 +4993,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 189: -/* rule 189 can match eol */ +case 193: +/* rule 193 can match eol */ YY_RULE_SETUP -#line 2057 "dhcp4_lexer.ll" +#line 2095 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -4974,9 +5046,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 190: +case 194: YY_RULE_SETUP -#line 2106 "dhcp4_lexer.ll" +#line 2144 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -4985,9 +5057,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 191: +case 195: YY_RULE_SETUP -#line 2114 "dhcp4_lexer.ll" +#line 2152 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5003,39 +5075,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 192: +case 196: YY_RULE_SETUP -#line 2129 "dhcp4_lexer.ll" +#line 2167 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 193: +case 197: YY_RULE_SETUP -#line 2130 "dhcp4_lexer.ll" +#line 2168 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 194: +case 198: YY_RULE_SETUP -#line 2131 "dhcp4_lexer.ll" +#line 2169 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 195: +case 199: YY_RULE_SETUP -#line 2132 "dhcp4_lexer.ll" +#line 2170 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 196: +case 200: YY_RULE_SETUP -#line 2133 "dhcp4_lexer.ll" +#line 2171 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 197: +case 201: YY_RULE_SETUP -#line 2134 "dhcp4_lexer.ll" +#line 2172 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 198: +case 202: YY_RULE_SETUP -#line 2136 "dhcp4_lexer.ll" +#line 2174 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5054,9 +5126,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 199: +case 203: YY_RULE_SETUP -#line 2154 "dhcp4_lexer.ll" +#line 2192 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5070,43 +5142,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 200: +case 204: YY_RULE_SETUP -#line 2167 "dhcp4_lexer.ll" +#line 2205 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 201: +case 205: YY_RULE_SETUP -#line 2172 "dhcp4_lexer.ll" +#line 2210 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 202: +case 206: YY_RULE_SETUP -#line 2176 "dhcp4_lexer.ll" +#line 2214 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 203: +case 207: YY_RULE_SETUP -#line 2178 "dhcp4_lexer.ll" +#line 2216 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 204: +case 208: YY_RULE_SETUP -#line 2180 "dhcp4_lexer.ll" +#line 2218 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 205: +case 209: YY_RULE_SETUP -#line 2182 "dhcp4_lexer.ll" +#line 2220 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2184 "dhcp4_lexer.ll" +#line 2222 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5130,12 +5202,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 206: +case 210: YY_RULE_SETUP -#line 2207 "dhcp4_lexer.ll" +#line 2245 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5138 "dhcp4_lexer.cc" +#line 5211 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5454,7 +5526,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 >= 1918 ) + if ( yy_current_state >= 1958 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5487,11 +5559,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 >= 1918 ) + if ( yy_current_state >= 1958 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1917); + yy_is_jam = (yy_current_state == 1957); return yy_is_jam ? 0 : yy_current_state; } @@ -6240,7 +6312,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2207 "dhcp4_lexer.ll" +#line 2245 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_messages.cc b/src/bin/dhcp4/dhcp4_messages.cc index f8488fce08..182174d9b5 100644 --- a/src/bin/dhcp4/dhcp4_messages.cc +++ b/src/bin/dhcp4/dhcp4_messages.cc @@ -193,7 +193,7 @@ const char* values[] = { "DHCP4_CONFIG_UNSUPPORTED_OBJECT", "DHCPv4 server configuration includes an unsupported object: %1", "DHCP4_CONFIG_UPDATE", "updated configuration received: %1", "DHCP4_DB_RECONNECT_DISABLED", "database reconnect is disabled: max-reconnect-tries %1, reconnect-wait-time %2", - "DHCP4_DB_RECONNECT_FAILED", "maximum number of database reconnect attempts: %1, has been exhausted without success, server is shutting down!", + "DHCP4_DB_RECONNECT_FAILED", "maximum number of database reconnect attempts: %1, has been exhausted without success", "DHCP4_DB_RECONNECT_LOST_CONNECTION", "database connection lost.", "DHCP4_DB_RECONNECT_NO_DB_CTL", "unexpected error in database reconnect", "DHCP4_DB_RECONNECT_SUCCEEDED", "database connection recovered.", diff --git a/src/bin/dhcp4/dhcp4_messages.mes b/src/bin/dhcp4/dhcp4_messages.mes index b2f9866946..17bb42fa7b 100644 --- a/src/bin/dhcp4/dhcp4_messages.mes +++ b/src/bin/dhcp4/dhcp4_messages.mes @@ -200,15 +200,17 @@ updated configuration from the Kea configuration system. This is an informational message indicating that connectivity to either the lease or host database or both and that automatic reconnect is not enabled. -% DHCP4_DB_RECONNECT_FAILED maximum number of database reconnect attempts: %1, has been exhausted without success, server is shutting down! -This error indicates that the server is shutting down after failing to reconnect to -the lease and/or host database(s) after making the maximum configured number -of reconnect attempts. Loss of connectivity is typically a network or database -server issue. +% DHCP4_DB_RECONNECT_FAILED maximum number of database reconnect attempts: %1, has been exhausted without success +This error indicates that the server failed to reconnect to the lease and/or +host database(s) after making the maximum configured number of reconnect +attempts. This might cause the server to shut down as specified in the +configuration. Loss of connectivity is typically a network or database server +issue. % DHCP4_DB_RECONNECT_LOST_CONNECTION database connection lost. This info message indicates that the connection has been lost and the dhcp -service has been disabled in order to try to recover the connection. +service might have been disabled, as specified in the configuration, in order to +try to recover the connection. % DHCP4_DB_RECONNECT_NO_DB_CTL unexpected error in database reconnect This is an error message indicating a programmatic error that should not diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 9d04be89da..3ed06eaf23 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,9 +30,8 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. // Take the name prefix into account. @@ -48,7 +47,7 @@ #include -#line 52 "dhcp4_parser.cc" +#line 51 "dhcp4_parser.cc" #ifndef YY_ @@ -63,7 +62,6 @@ # endif #endif - // Whether we are compiled with exception support. #ifndef YY_EXCEPTIONS # if defined __GNUC__ && !defined __EXCEPTIONS @@ -119,13 +117,13 @@ # define YY_STACK_PRINT() \ do { \ if (yydebug_) \ - yy_stack_print_ (); \ + yystack_print_ (); \ } while (false) #else // !PARSER4_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) # define YY_REDUCE_PRINT(Rule) static_cast (0) # define YY_STACK_PRINT() static_cast (0) @@ -141,7 +139,49 @@ #line 14 "dhcp4_parser.yy" namespace isc { namespace dhcp { -#line 145 "dhcp4_parser.cc" +#line 143 "dhcp4_parser.cc" + + + /* Return YYSTR after stripping away unnecessary quotes and + backslashes, so that it's suitable for yyerror. The heuristic is + that double-quoting is unnecessary unless the string contains an + apostrophe, a comma, or backslash (other than backslash-backslash). + YYSTR is taken from yytname. */ + std::string + Dhcp4Parser::yytnamerr_ (const char *yystr) + { + if (*yystr == '"') + { + std::string yyr; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + else + goto append; + + append: + default: + yyr += *yyp; + break; + + case '"': + return yyr; + } + do_not_strip_quotes: ; + } + + return yystr; + } + /// Build a parser object. Dhcp4Parser::Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg) @@ -161,7 +201,7 @@ namespace isc { namespace dhcp { {} /*---------------. - | symbol kinds. | + | Symbol types. | `---------------*/ @@ -192,13 +232,13 @@ namespace isc { namespace dhcp { : state (s) {} - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::by_state::kind () const YY_NOEXCEPT + Dhcp4Parser::symbol_number_type + Dhcp4Parser::by_state::type_get () const YY_NOEXCEPT { if (state == empty_state) - return symbol_kind::S_YYEMPTY; + return empty_symbol; else - return YY_CAST (symbol_kind_type, yystos_[+state]); + return yystos_[+state]; } Dhcp4Parser::stack_symbol_type::stack_symbol_type () @@ -207,32 +247,33 @@ namespace isc { namespace dhcp { Dhcp4Parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) { - switch (that.kind ()) + switch (that.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -249,32 +290,33 @@ namespace isc { namespace dhcp { Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) : super_type (s, YY_MOVE (that.location)) { - switch (that.kind ()) + switch (that.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -283,7 +325,7 @@ namespace isc { namespace dhcp { } // that is emptied. - that.kind_ = symbol_kind::S_YYEMPTY; + that.type = empty_symbol; } #if YY_CPLUSPLUS < 201103L @@ -291,32 +333,33 @@ namespace isc { namespace dhcp { Dhcp4Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.kind ()) + switch (that.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.copy< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.copy< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.copy< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.copy< std::string > (that.value); break; @@ -332,32 +375,33 @@ namespace isc { namespace dhcp { Dhcp4Parser::stack_symbol_type::operator= (stack_symbol_type& that) { state = that.state; - switch (that.kind ()) + switch (that.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.move< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.move< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.move< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.move< std::string > (that.value); break; @@ -383,97 +427,105 @@ namespace isc { namespace dhcp { #if PARSER4_DEBUG template void - Dhcp4Parser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const + Dhcp4Parser::yy_print_ (std::ostream& yyo, + const basic_symbol& yysym) const { std::ostream& yyoutput = yyo; - YY_USE (yyoutput); + 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 ()) - yyo << "empty symbol"; - else - { - symbol_kind_type yykind = yysym.kind (); - yyo << (yykind < YYNTOKENS ? "token" : "nterm") - << ' ' << yysym.name () << " (" - << yysym.location << ": "; - switch (yykind) + std::abort (); +#endif + yyo << (yytype < yyntokens_ ? "token" : "nterm") + << ' ' << yytname_[yytype] << " (" + << yysym.location << ": "; + switch (yytype) { - case symbol_kind::S_STRING: // "constant string" -#line 276 "dhcp4_parser.yy" + case 198: // "constant string" +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 404 "dhcp4_parser.cc" +#line 451 "dhcp4_parser.cc" break; - case symbol_kind::S_INTEGER: // "integer" -#line 276 "dhcp4_parser.yy" + case 199: // "integer" +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } -#line 410 "dhcp4_parser.cc" +#line 457 "dhcp4_parser.cc" break; - case symbol_kind::S_FLOAT: // "floating point" -#line 276 "dhcp4_parser.yy" + case 200: // "floating point" +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } -#line 416 "dhcp4_parser.cc" +#line 463 "dhcp4_parser.cc" break; - case symbol_kind::S_BOOLEAN: // "boolean" -#line 276 "dhcp4_parser.yy" + case 201: // "boolean" +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } -#line 422 "dhcp4_parser.cc" +#line 469 "dhcp4_parser.cc" break; - case symbol_kind::S_value: // value -#line 276 "dhcp4_parser.yy" + case 217: // value +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 428 "dhcp4_parser.cc" +#line 475 "dhcp4_parser.cc" break; - case symbol_kind::S_map_value: // map_value -#line 276 "dhcp4_parser.yy" + case 221: // map_value +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 434 "dhcp4_parser.cc" +#line 481 "dhcp4_parser.cc" break; - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 276 "dhcp4_parser.yy" + case 262: // ddns_replace_client_name_value +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 440 "dhcp4_parser.cc" +#line 487 "dhcp4_parser.cc" break; - case symbol_kind::S_socket_type: // socket_type -#line 276 "dhcp4_parser.yy" + case 287: // socket_type +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 446 "dhcp4_parser.cc" +#line 493 "dhcp4_parser.cc" break; - case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 276 "dhcp4_parser.yy" + case 290: // outbound_interface_value +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 452 "dhcp4_parser.cc" +#line 499 "dhcp4_parser.cc" break; - case symbol_kind::S_db_type: // db_type -#line 276 "dhcp4_parser.yy" + case 312: // db_type +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 458 "dhcp4_parser.cc" +#line 505 "dhcp4_parser.cc" break; - case symbol_kind::S_hr_mode: // hr_mode -#line 276 "dhcp4_parser.yy" + case 341: // on_fail_mode +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 464 "dhcp4_parser.cc" +#line 511 "dhcp4_parser.cc" break; - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 276 "dhcp4_parser.yy" + case 412: // hr_mode +#line 281 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 470 "dhcp4_parser.cc" +#line 517 "dhcp4_parser.cc" + break; + + case 567: // ncr_protocol_value +#line 281 "dhcp4_parser.yy" + { yyoutput << yysym.value.template as < ElementPtr > (); } +#line 523 "dhcp4_parser.cc" break; default: break; } - yyo << ')'; - } + yyo << ')'; } #endif @@ -532,11 +584,11 @@ namespace isc { namespace dhcp { Dhcp4Parser::state_type Dhcp4Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { - int yyr = yypgoto_[yysym - YYNTOKENS] + yystate; + int yyr = yypgoto_[yysym - yyntokens_] + yystate; if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) return yytable_[yyr]; else - return yydefgoto_[yysym - YYNTOKENS]; + return yydefgoto_[yysym - yyntokens_]; } bool @@ -596,7 +648,6 @@ namespace isc { namespace dhcp { `-----------------------------------------------*/ yynewstate: YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; - YY_STACK_PRINT (); // Accept? if (yystack_[0].state == yyfinal_) @@ -617,7 +668,7 @@ namespace isc { namespace dhcp { // Read a lookahead token. if (yyla.empty ()) { - YYCDEBUG << "Reading a token\n"; + YYCDEBUG << "Reading a token: "; #if YY_EXCEPTIONS try #endif // YY_EXCEPTIONS @@ -636,20 +687,10 @@ namespace isc { namespace dhcp { } YY_SYMBOL_PRINT ("Next token is", yyla); - if (yyla.kind () == symbol_kind::S_YYerror) - { - // The scanner already issued an error message, process directly - // to error recovery. But do not keep the error token as - // lookahead, it is too special and may lead us to an endless - // loop in error recovery. */ - yyla.kind_ = symbol_kind::S_YYUNDEF; - goto yyerrlab1; - } - /* If the proper action on seeing token YYLA.TYPE is to reduce or to detect an error, take that action. */ - yyn += yyla.kind (); - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ()) + yyn += yyla.type_get (); + if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) { goto yydefault; } @@ -696,30 +737,31 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" yylhs.value.emplace< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" yylhs.value.emplace< double > (); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" yylhs.value.emplace< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -743,277 +785,277 @@ namespace isc { namespace dhcp { { switch (yyn) { - case 2: // $@1: %empty -#line 285 "dhcp4_parser.yy" + case 2: +#line 290 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 750 "dhcp4_parser.cc" +#line 792 "dhcp4_parser.cc" break; - case 4: // $@2: %empty -#line 286 "dhcp4_parser.yy" + case 4: +#line 291 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } -#line 756 "dhcp4_parser.cc" +#line 798 "dhcp4_parser.cc" break; - case 6: // $@3: %empty -#line 287 "dhcp4_parser.yy" + case 6: +#line 292 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } -#line 762 "dhcp4_parser.cc" +#line 804 "dhcp4_parser.cc" break; - case 8: // $@4: %empty -#line 288 "dhcp4_parser.yy" + case 8: +#line 293 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 768 "dhcp4_parser.cc" +#line 810 "dhcp4_parser.cc" break; - case 10: // $@5: %empty -#line 289 "dhcp4_parser.yy" + case 10: +#line 294 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } -#line 774 "dhcp4_parser.cc" +#line 816 "dhcp4_parser.cc" break; - case 12: // $@6: %empty -#line 290 "dhcp4_parser.yy" + case 12: +#line 295 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } -#line 780 "dhcp4_parser.cc" +#line 822 "dhcp4_parser.cc" break; - case 14: // $@7: %empty -#line 291 "dhcp4_parser.yy" + case 14: +#line 296 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } -#line 786 "dhcp4_parser.cc" +#line 828 "dhcp4_parser.cc" break; - case 16: // $@8: %empty -#line 292 "dhcp4_parser.yy" + case 16: +#line 297 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } -#line 792 "dhcp4_parser.cc" +#line 834 "dhcp4_parser.cc" break; - case 18: // $@9: %empty -#line 293 "dhcp4_parser.yy" + case 18: +#line 298 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } -#line 798 "dhcp4_parser.cc" +#line 840 "dhcp4_parser.cc" break; - case 20: // $@10: %empty -#line 294 "dhcp4_parser.yy" + case 20: +#line 299 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } -#line 804 "dhcp4_parser.cc" +#line 846 "dhcp4_parser.cc" break; - case 22: // $@11: %empty -#line 295 "dhcp4_parser.yy" + case 22: +#line 300 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 810 "dhcp4_parser.cc" +#line 852 "dhcp4_parser.cc" break; - case 24: // $@12: %empty -#line 296 "dhcp4_parser.yy" + case 24: +#line 301 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 816 "dhcp4_parser.cc" +#line 858 "dhcp4_parser.cc" break; - case 26: // $@13: %empty -#line 297 "dhcp4_parser.yy" + case 26: +#line 302 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 822 "dhcp4_parser.cc" +#line 864 "dhcp4_parser.cc" break; - case 28: // value: "integer" -#line 305 "dhcp4_parser.yy" + case 28: +#line 310 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 828 "dhcp4_parser.cc" +#line 870 "dhcp4_parser.cc" break; - case 29: // value: "floating point" -#line 306 "dhcp4_parser.yy" + case 29: +#line 311 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 834 "dhcp4_parser.cc" +#line 876 "dhcp4_parser.cc" break; - case 30: // value: "boolean" -#line 307 "dhcp4_parser.yy" + case 30: +#line 312 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 840 "dhcp4_parser.cc" +#line 882 "dhcp4_parser.cc" break; - case 31: // value: "constant string" -#line 308 "dhcp4_parser.yy" + case 31: +#line 313 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 846 "dhcp4_parser.cc" +#line 888 "dhcp4_parser.cc" break; - case 32: // value: "null" -#line 309 "dhcp4_parser.yy" + case 32: +#line 314 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 852 "dhcp4_parser.cc" +#line 894 "dhcp4_parser.cc" break; - case 33: // value: map2 -#line 310 "dhcp4_parser.yy" + case 33: +#line 315 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 858 "dhcp4_parser.cc" +#line 900 "dhcp4_parser.cc" break; - case 34: // value: list_generic -#line 311 "dhcp4_parser.yy" + case 34: +#line 316 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 864 "dhcp4_parser.cc" +#line 906 "dhcp4_parser.cc" break; - case 35: // sub_json: value -#line 314 "dhcp4_parser.yy" + case 35: +#line 319 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); } -#line 873 "dhcp4_parser.cc" +#line 915 "dhcp4_parser.cc" break; - case 36: // $@14: %empty -#line 319 "dhcp4_parser.yy" + case 36: +#line 324 "dhcp4_parser.yy" { // 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 884 "dhcp4_parser.cc" +#line 926 "dhcp4_parser.cc" break; - case 37: // map2: "{" $@14 map_content "}" -#line 324 "dhcp4_parser.yy" + case 37: +#line 329 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 894 "dhcp4_parser.cc" +#line 936 "dhcp4_parser.cc" break; - case 38: // map_value: map2 -#line 330 "dhcp4_parser.yy" + case 38: +#line 335 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 900 "dhcp4_parser.cc" +#line 942 "dhcp4_parser.cc" break; - case 41: // not_empty_map: "constant string" ":" value -#line 337 "dhcp4_parser.yy" + case 41: +#line 342 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 910 "dhcp4_parser.cc" +#line 952 "dhcp4_parser.cc" break; - case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 342 "dhcp4_parser.yy" + case 42: +#line 347 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 921 "dhcp4_parser.cc" +#line 963 "dhcp4_parser.cc" break; - case 43: // $@15: %empty -#line 350 "dhcp4_parser.yy" + case 43: +#line 355 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 930 "dhcp4_parser.cc" +#line 972 "dhcp4_parser.cc" break; - case 44: // list_generic: "[" $@15 list_content "]" -#line 353 "dhcp4_parser.yy" + case 44: +#line 358 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } -#line 938 "dhcp4_parser.cc" +#line 980 "dhcp4_parser.cc" break; - case 47: // not_empty_list: value -#line 361 "dhcp4_parser.yy" + case 47: +#line 366 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 947 "dhcp4_parser.cc" +#line 989 "dhcp4_parser.cc" break; - case 48: // not_empty_list: not_empty_list "," value -#line 365 "dhcp4_parser.yy" + case 48: +#line 370 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 956 "dhcp4_parser.cc" +#line 998 "dhcp4_parser.cc" break; - case 49: // $@16: %empty -#line 372 "dhcp4_parser.yy" + case 49: +#line 377 "dhcp4_parser.yy" { // List parsing about to start } -#line 964 "dhcp4_parser.cc" +#line 1006 "dhcp4_parser.cc" break; - case 50: // list_strings: "[" $@16 list_strings_content "]" -#line 374 "dhcp4_parser.yy" + case 50: +#line 379 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 973 "dhcp4_parser.cc" +#line 1015 "dhcp4_parser.cc" break; - case 53: // not_empty_list_strings: "constant string" -#line 383 "dhcp4_parser.yy" + case 53: +#line 388 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 982 "dhcp4_parser.cc" +#line 1024 "dhcp4_parser.cc" break; - case 54: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 387 "dhcp4_parser.yy" + case 54: +#line 392 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 991 "dhcp4_parser.cc" +#line 1033 "dhcp4_parser.cc" break; - case 55: // unknown_map_entry: "constant string" ":" -#line 398 "dhcp4_parser.yy" + case 55: +#line 403 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 1002 "dhcp4_parser.cc" +#line 1044 "dhcp4_parser.cc" break; - case 56: // $@17: %empty -#line 407 "dhcp4_parser.yy" + case 56: +#line 412 "dhcp4_parser.yy" { // 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 1013 "dhcp4_parser.cc" +#line 1055 "dhcp4_parser.cc" break; - case 57: // syntax_map: "{" $@17 global_object "}" -#line 412 "dhcp4_parser.yy" + case 57: +#line 417 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1022,11 +1064,11 @@ namespace isc { namespace dhcp { // Dhcp4 is required ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1026 "dhcp4_parser.cc" +#line 1068 "dhcp4_parser.cc" break; - case 58: // $@18: %empty -#line 422 "dhcp4_parser.yy" + case 58: +#line 427 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1037,424 +1079,424 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP4); } -#line 1041 "dhcp4_parser.cc" +#line 1083 "dhcp4_parser.cc" break; - case 59: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 431 "dhcp4_parser.yy" + case 59: +#line 436 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1051 "dhcp4_parser.cc" +#line 1093 "dhcp4_parser.cc" break; - case 60: // $@19: %empty -#line 439 "dhcp4_parser.yy" + case 60: +#line 444 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1061 "dhcp4_parser.cc" +#line 1103 "dhcp4_parser.cc" break; - case 61: // sub_dhcp4: "{" $@19 global_params "}" -#line 443 "dhcp4_parser.yy" + case 61: +#line 448 "dhcp4_parser.yy" { // No global parameter is required // parsing completed } -#line 1070 "dhcp4_parser.cc" +#line 1112 "dhcp4_parser.cc" break; - case 124: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 516 "dhcp4_parser.yy" + case 124: +#line 521 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1080 "dhcp4_parser.cc" +#line 1122 "dhcp4_parser.cc" break; - case 125: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 522 "dhcp4_parser.yy" + case 125: +#line 527 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1090 "dhcp4_parser.cc" +#line 1132 "dhcp4_parser.cc" break; - case 126: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 528 "dhcp4_parser.yy" + case 126: +#line 533 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1100 "dhcp4_parser.cc" +#line 1142 "dhcp4_parser.cc" break; - case 127: // renew_timer: "renew-timer" ":" "integer" -#line 534 "dhcp4_parser.yy" + case 127: +#line 539 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1110 "dhcp4_parser.cc" +#line 1152 "dhcp4_parser.cc" break; - case 128: // rebind_timer: "rebind-timer" ":" "integer" -#line 540 "dhcp4_parser.yy" + case 128: +#line 545 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1120 "dhcp4_parser.cc" +#line 1162 "dhcp4_parser.cc" break; - case 129: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 546 "dhcp4_parser.yy" + case 129: +#line 551 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1130 "dhcp4_parser.cc" +#line 1172 "dhcp4_parser.cc" break; - case 130: // t1_percent: "t1-percent" ":" "floating point" -#line 552 "dhcp4_parser.yy" + case 130: +#line 557 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1140 "dhcp4_parser.cc" +#line 1182 "dhcp4_parser.cc" break; - case 131: // t2_percent: "t2-percent" ":" "floating point" -#line 558 "dhcp4_parser.yy" + case 131: +#line 563 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1150 "dhcp4_parser.cc" +#line 1192 "dhcp4_parser.cc" break; - case 132: // cache_threshold: "cache-threshold" ":" "floating point" -#line 564 "dhcp4_parser.yy" + case 132: +#line 569 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1160 "dhcp4_parser.cc" +#line 1202 "dhcp4_parser.cc" break; - case 133: // cache_max_age: "cache-max-age" ":" "integer" -#line 570 "dhcp4_parser.yy" + case 133: +#line 575 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1170 "dhcp4_parser.cc" +#line 1212 "dhcp4_parser.cc" break; - case 134: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 576 "dhcp4_parser.yy" + case 134: +#line 581 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1180 "dhcp4_parser.cc" +#line 1222 "dhcp4_parser.cc" break; - case 135: // $@20: %empty -#line 582 "dhcp4_parser.yy" + case 135: +#line 587 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1189 "dhcp4_parser.cc" +#line 1231 "dhcp4_parser.cc" break; - case 136: // server_tag: "server-tag" $@20 ":" "constant string" -#line 585 "dhcp4_parser.yy" + case 136: +#line 590 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1199 "dhcp4_parser.cc" +#line 1241 "dhcp4_parser.cc" break; - case 137: // echo_client_id: "echo-client-id" ":" "boolean" -#line 591 "dhcp4_parser.yy" + case 137: +#line 596 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); } -#line 1209 "dhcp4_parser.cc" +#line 1251 "dhcp4_parser.cc" break; - case 138: // match_client_id: "match-client-id" ":" "boolean" -#line 597 "dhcp4_parser.yy" + case 138: +#line 602 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); } -#line 1219 "dhcp4_parser.cc" +#line 1261 "dhcp4_parser.cc" break; - case 139: // authoritative: "authoritative" ":" "boolean" -#line 603 "dhcp4_parser.yy" + case 139: +#line 608 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("authoritative", prf); } -#line 1229 "dhcp4_parser.cc" +#line 1271 "dhcp4_parser.cc" break; - case 140: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 609 "dhcp4_parser.yy" + case 140: +#line 614 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1239 "dhcp4_parser.cc" +#line 1281 "dhcp4_parser.cc" break; - case 141: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 615 "dhcp4_parser.yy" + case 141: +#line 620 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1249 "dhcp4_parser.cc" +#line 1291 "dhcp4_parser.cc" break; - case 142: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 621 "dhcp4_parser.yy" + case 142: +#line 626 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1259 "dhcp4_parser.cc" +#line 1301 "dhcp4_parser.cc" break; - case 143: // $@21: %empty -#line 627 "dhcp4_parser.yy" + case 143: +#line 632 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); } -#line 1268 "dhcp4_parser.cc" +#line 1310 "dhcp4_parser.cc" break; - case 144: // ddns_replace_client_name: "ddns-replace-client-name" $@21 ":" ddns_replace_client_name_value -#line 630 "dhcp4_parser.yy" + case 144: +#line 635 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1277 "dhcp4_parser.cc" +#line 1319 "dhcp4_parser.cc" break; - case 145: // ddns_replace_client_name_value: "when-present" -#line 636 "dhcp4_parser.yy" + case 145: +#line 641 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1285 "dhcp4_parser.cc" +#line 1327 "dhcp4_parser.cc" break; - case 146: // ddns_replace_client_name_value: "never" -#line 639 "dhcp4_parser.yy" + case 146: +#line 644 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1293 "dhcp4_parser.cc" +#line 1335 "dhcp4_parser.cc" break; - case 147: // ddns_replace_client_name_value: "always" -#line 642 "dhcp4_parser.yy" + case 147: +#line 647 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1301 "dhcp4_parser.cc" +#line 1343 "dhcp4_parser.cc" break; - case 148: // ddns_replace_client_name_value: "when-not-present" -#line 645 "dhcp4_parser.yy" + case 148: +#line 650 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1309 "dhcp4_parser.cc" +#line 1351 "dhcp4_parser.cc" break; - case 149: // ddns_replace_client_name_value: "boolean" -#line 648 "dhcp4_parser.yy" + case 149: +#line 653 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 1318 "dhcp4_parser.cc" +#line 1360 "dhcp4_parser.cc" break; - case 150: // $@22: %empty -#line 654 "dhcp4_parser.yy" + case 150: +#line 659 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1327 "dhcp4_parser.cc" +#line 1369 "dhcp4_parser.cc" break; - case 151: // ddns_generated_prefix: "ddns-generated-prefix" $@22 ":" "constant string" -#line 657 "dhcp4_parser.yy" + case 151: +#line 662 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); ctx.leave(); } -#line 1337 "dhcp4_parser.cc" +#line 1379 "dhcp4_parser.cc" break; - case 152: // $@23: %empty -#line 663 "dhcp4_parser.yy" + case 152: +#line 668 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1346 "dhcp4_parser.cc" +#line 1388 "dhcp4_parser.cc" break; - case 153: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@23 ":" "constant string" -#line 666 "dhcp4_parser.yy" + case 153: +#line 671 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); ctx.leave(); } -#line 1356 "dhcp4_parser.cc" +#line 1398 "dhcp4_parser.cc" break; - case 154: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 672 "dhcp4_parser.yy" + case 154: +#line 677 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1366 "dhcp4_parser.cc" +#line 1408 "dhcp4_parser.cc" break; - case 155: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 678 "dhcp4_parser.yy" + case 155: +#line 683 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-use-conflict-resolution", b); } -#line 1376 "dhcp4_parser.cc" +#line 1418 "dhcp4_parser.cc" break; - case 156: // $@24: %empty -#line 684 "dhcp4_parser.yy" + case 156: +#line 689 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1385 "dhcp4_parser.cc" +#line 1427 "dhcp4_parser.cc" break; - case 157: // hostname_char_set: "hostname-char-set" $@24 ":" "constant string" -#line 687 "dhcp4_parser.yy" + case 157: +#line 692 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 1395 "dhcp4_parser.cc" +#line 1437 "dhcp4_parser.cc" break; - case 158: // $@25: %empty -#line 693 "dhcp4_parser.yy" + case 158: +#line 698 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1404 "dhcp4_parser.cc" +#line 1446 "dhcp4_parser.cc" break; - case 159: // hostname_char_replacement: "hostname-char-replacement" $@25 ":" "constant string" -#line 696 "dhcp4_parser.yy" + case 159: +#line 701 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 1414 "dhcp4_parser.cc" +#line 1456 "dhcp4_parser.cc" break; - case 160: // store_extended_info: "store-extended-info" ":" "boolean" -#line 702 "dhcp4_parser.yy" + case 160: +#line 707 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1424 "dhcp4_parser.cc" +#line 1466 "dhcp4_parser.cc" break; - case 161: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 708 "dhcp4_parser.yy" + case 161: +#line 713 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1434 "dhcp4_parser.cc" +#line 1476 "dhcp4_parser.cc" break; - case 162: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 714 "dhcp4_parser.yy" + case 162: +#line 719 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1444 "dhcp4_parser.cc" +#line 1486 "dhcp4_parser.cc" break; - case 163: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 720 "dhcp4_parser.yy" + case 163: +#line 725 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1454 "dhcp4_parser.cc" +#line 1496 "dhcp4_parser.cc" break; - case 164: // $@26: %empty -#line 726 "dhcp4_parser.yy" + case 164: +#line 731 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1462,40 +1504,40 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1466 "dhcp4_parser.cc" +#line 1508 "dhcp4_parser.cc" break; - case 165: // interfaces_config: "interfaces-config" $@26 ":" "{" interfaces_config_params "}" -#line 732 "dhcp4_parser.yy" + case 165: +#line 737 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1476 "dhcp4_parser.cc" +#line 1518 "dhcp4_parser.cc" break; - case 175: // $@27: %empty -#line 751 "dhcp4_parser.yy" + case 175: +#line 756 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1486 "dhcp4_parser.cc" +#line 1528 "dhcp4_parser.cc" break; - case 176: // sub_interfaces4: "{" $@27 interfaces_config_params "}" -#line 755 "dhcp4_parser.yy" + case 176: +#line 760 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1495 "dhcp4_parser.cc" +#line 1537 "dhcp4_parser.cc" break; - case 177: // $@28: %empty -#line 760 "dhcp4_parser.yy" + case 177: +#line 765 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1503,94 +1545,94 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1507 "dhcp4_parser.cc" +#line 1549 "dhcp4_parser.cc" break; - case 178: // interfaces_list: "interfaces" $@28 ":" list_strings -#line 766 "dhcp4_parser.yy" + case 178: +#line 771 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1516 "dhcp4_parser.cc" +#line 1558 "dhcp4_parser.cc" break; - case 179: // $@29: %empty -#line 771 "dhcp4_parser.yy" + case 179: +#line 776 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1525 "dhcp4_parser.cc" +#line 1567 "dhcp4_parser.cc" break; - case 180: // dhcp_socket_type: "dhcp-socket-type" $@29 ":" socket_type -#line 774 "dhcp4_parser.yy" + case 180: +#line 779 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1534 "dhcp4_parser.cc" +#line 1576 "dhcp4_parser.cc" break; - case 181: // socket_type: "raw" -#line 779 "dhcp4_parser.yy" + case 181: +#line 784 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1540 "dhcp4_parser.cc" +#line 1582 "dhcp4_parser.cc" break; - case 182: // socket_type: "udp" -#line 780 "dhcp4_parser.yy" + case 182: +#line 785 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1546 "dhcp4_parser.cc" +#line 1588 "dhcp4_parser.cc" break; - case 183: // $@30: %empty -#line 783 "dhcp4_parser.yy" + case 183: +#line 788 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1555 "dhcp4_parser.cc" +#line 1597 "dhcp4_parser.cc" break; - case 184: // outbound_interface: "outbound-interface" $@30 ":" outbound_interface_value -#line 786 "dhcp4_parser.yy" + case 184: +#line 791 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1564 "dhcp4_parser.cc" +#line 1606 "dhcp4_parser.cc" break; - case 185: // outbound_interface_value: "same-as-inbound" -#line 791 "dhcp4_parser.yy" + case 185: +#line 796 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } -#line 1572 "dhcp4_parser.cc" +#line 1614 "dhcp4_parser.cc" break; - case 186: // outbound_interface_value: "use-routing" -#line 793 "dhcp4_parser.yy" + case 186: +#line 798 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } -#line 1580 "dhcp4_parser.cc" +#line 1622 "dhcp4_parser.cc" break; - case 187: // re_detect: "re-detect" ":" "boolean" -#line 797 "dhcp4_parser.yy" + case 187: +#line 802 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1590 "dhcp4_parser.cc" +#line 1632 "dhcp4_parser.cc" break; - case 188: // $@31: %empty -#line 804 "dhcp4_parser.yy" + case 188: +#line 809 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1598,22 +1640,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1602 "dhcp4_parser.cc" +#line 1644 "dhcp4_parser.cc" break; - case 189: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" -#line 810 "dhcp4_parser.yy" + case 189: +#line 815 "dhcp4_parser.yy" { // 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 1613 "dhcp4_parser.cc" +#line 1655 "dhcp4_parser.cc" break; - case 190: // $@32: %empty -#line 817 "dhcp4_parser.yy" + case 190: +#line 822 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1621,29 +1663,29 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1625 "dhcp4_parser.cc" +#line 1667 "dhcp4_parser.cc" break; - case 191: // sanity_checks: "sanity-checks" $@32 ":" "{" sanity_checks_params "}" -#line 823 "dhcp4_parser.yy" + case 191: +#line 828 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1634 "dhcp4_parser.cc" +#line 1676 "dhcp4_parser.cc" break; - case 195: // $@33: %empty -#line 833 "dhcp4_parser.yy" + case 195: +#line 838 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1643 "dhcp4_parser.cc" +#line 1685 "dhcp4_parser.cc" break; - case 196: // lease_checks: "lease-checks" $@33 ":" "constant string" -#line 836 "dhcp4_parser.yy" + case 196: +#line 841 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1659,11 +1701,11 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1663 "dhcp4_parser.cc" +#line 1705 "dhcp4_parser.cc" break; - case 197: // $@34: %empty -#line 852 "dhcp4_parser.yy" + case 197: +#line 857 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1671,22 +1713,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1675 "dhcp4_parser.cc" +#line 1717 "dhcp4_parser.cc" break; - case 198: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" -#line 858 "dhcp4_parser.yy" + case 198: +#line 863 "dhcp4_parser.yy" { // 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 1686 "dhcp4_parser.cc" +#line 1728 "dhcp4_parser.cc" break; - case 199: // $@35: %empty -#line 865 "dhcp4_parser.yy" + case 199: +#line 870 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1694,344 +1736,380 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1698 "dhcp4_parser.cc" +#line 1740 "dhcp4_parser.cc" break; - case 200: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" -#line 871 "dhcp4_parser.yy" + case 200: +#line 876 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1707 "dhcp4_parser.cc" +#line 1749 "dhcp4_parser.cc" break; - case 205: // $@36: %empty -#line 884 "dhcp4_parser.yy" + case 205: +#line 889 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1717 "dhcp4_parser.cc" +#line 1759 "dhcp4_parser.cc" break; - case 206: // database: "{" $@36 database_map_params "}" -#line 888 "dhcp4_parser.yy" + case 206: +#line 893 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1727 "dhcp4_parser.cc" +#line 1769 "dhcp4_parser.cc" break; - case 230: // $@37: %empty -#line 921 "dhcp4_parser.yy" + case 231: +#line 927 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1736 "dhcp4_parser.cc" +#line 1778 "dhcp4_parser.cc" break; - case 231: // database_type: "type" $@37 ":" db_type -#line 924 "dhcp4_parser.yy" + case 232: +#line 930 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1745 "dhcp4_parser.cc" +#line 1787 "dhcp4_parser.cc" break; - case 232: // db_type: "memfile" -#line 929 "dhcp4_parser.yy" + case 233: +#line 935 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1751 "dhcp4_parser.cc" +#line 1793 "dhcp4_parser.cc" break; - case 233: // db_type: "mysql" -#line 930 "dhcp4_parser.yy" + case 234: +#line 936 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1757 "dhcp4_parser.cc" +#line 1799 "dhcp4_parser.cc" break; - case 234: // db_type: "postgresql" -#line 931 "dhcp4_parser.yy" + case 235: +#line 937 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1763 "dhcp4_parser.cc" +#line 1805 "dhcp4_parser.cc" break; - case 235: // db_type: "cql" -#line 932 "dhcp4_parser.yy" + case 236: +#line 938 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1769 "dhcp4_parser.cc" +#line 1811 "dhcp4_parser.cc" break; - case 236: // $@38: %empty -#line 935 "dhcp4_parser.yy" + case 237: +#line 941 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1778 "dhcp4_parser.cc" +#line 1820 "dhcp4_parser.cc" break; - case 237: // user: "user" $@38 ":" "constant string" -#line 938 "dhcp4_parser.yy" + case 238: +#line 944 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1788 "dhcp4_parser.cc" +#line 1830 "dhcp4_parser.cc" break; - case 238: // $@39: %empty -#line 944 "dhcp4_parser.yy" + case 239: +#line 950 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1797 "dhcp4_parser.cc" +#line 1839 "dhcp4_parser.cc" break; - case 239: // password: "password" $@39 ":" "constant string" -#line 947 "dhcp4_parser.yy" + case 240: +#line 953 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1807 "dhcp4_parser.cc" +#line 1849 "dhcp4_parser.cc" break; - case 240: // $@40: %empty -#line 953 "dhcp4_parser.yy" + case 241: +#line 959 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1816 "dhcp4_parser.cc" +#line 1858 "dhcp4_parser.cc" break; - case 241: // host: "host" $@40 ":" "constant string" -#line 956 "dhcp4_parser.yy" + case 242: +#line 962 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1826 "dhcp4_parser.cc" +#line 1868 "dhcp4_parser.cc" break; - case 242: // port: "port" ":" "integer" -#line 962 "dhcp4_parser.yy" + case 243: +#line 968 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1836 "dhcp4_parser.cc" +#line 1878 "dhcp4_parser.cc" break; - case 243: // $@41: %empty -#line 968 "dhcp4_parser.yy" + case 244: +#line 974 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1845 "dhcp4_parser.cc" +#line 1887 "dhcp4_parser.cc" break; - case 244: // name: "name" $@41 ":" "constant string" -#line 971 "dhcp4_parser.yy" + case 245: +#line 977 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1855 "dhcp4_parser.cc" +#line 1897 "dhcp4_parser.cc" break; - case 245: // persist: "persist" ":" "boolean" -#line 977 "dhcp4_parser.yy" + case 246: +#line 983 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1865 "dhcp4_parser.cc" +#line 1907 "dhcp4_parser.cc" break; - case 246: // lfc_interval: "lfc-interval" ":" "integer" -#line 983 "dhcp4_parser.yy" + case 247: +#line 989 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1875 "dhcp4_parser.cc" +#line 1917 "dhcp4_parser.cc" break; - case 247: // readonly: "readonly" ":" "boolean" -#line 989 "dhcp4_parser.yy" + case 248: +#line 995 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1885 "dhcp4_parser.cc" +#line 1927 "dhcp4_parser.cc" break; - case 248: // connect_timeout: "connect-timeout" ":" "integer" -#line 995 "dhcp4_parser.yy" + case 249: +#line 1001 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1895 "dhcp4_parser.cc" +#line 1937 "dhcp4_parser.cc" break; - case 249: // request_timeout: "request-timeout" ":" "integer" -#line 1001 "dhcp4_parser.yy" + case 250: +#line 1007 "dhcp4_parser.yy" { ctx.unique("request-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1905 "dhcp4_parser.cc" +#line 1947 "dhcp4_parser.cc" break; - case 250: // tcp_keepalive: "tcp-keepalive" ":" "integer" -#line 1007 "dhcp4_parser.yy" + case 251: +#line 1013 "dhcp4_parser.yy" { ctx.unique("tcp-keepalive", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1915 "dhcp4_parser.cc" +#line 1957 "dhcp4_parser.cc" break; - case 251: // tcp_nodelay: "tcp-nodelay" ":" "boolean" -#line 1013 "dhcp4_parser.yy" + case 252: +#line 1019 "dhcp4_parser.yy" { ctx.unique("tcp-nodelay", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1925 "dhcp4_parser.cc" +#line 1967 "dhcp4_parser.cc" break; - case 252: // $@42: %empty -#line 1019 "dhcp4_parser.yy" + case 253: +#line 1025 "dhcp4_parser.yy" { ctx.unique("contact-points", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1934 "dhcp4_parser.cc" +#line 1976 "dhcp4_parser.cc" break; - case 253: // contact_points: "contact-points" $@42 ":" "constant string" -#line 1022 "dhcp4_parser.yy" + case 254: +#line 1028 "dhcp4_parser.yy" { ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1944 "dhcp4_parser.cc" +#line 1986 "dhcp4_parser.cc" break; - case 254: // $@43: %empty -#line 1028 "dhcp4_parser.yy" + case 255: +#line 1034 "dhcp4_parser.yy" { ctx.unique("keyspace", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1953 "dhcp4_parser.cc" +#line 1995 "dhcp4_parser.cc" break; - case 255: // keyspace: "keyspace" $@43 ":" "constant string" -#line 1031 "dhcp4_parser.yy" + case 256: +#line 1037 "dhcp4_parser.yy" { ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1963 "dhcp4_parser.cc" +#line 2005 "dhcp4_parser.cc" break; - case 256: // $@44: %empty -#line 1037 "dhcp4_parser.yy" + case 257: +#line 1043 "dhcp4_parser.yy" { ctx.unique("consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1972 "dhcp4_parser.cc" +#line 2014 "dhcp4_parser.cc" break; - case 257: // consistency: "consistency" $@44 ":" "constant string" -#line 1040 "dhcp4_parser.yy" + case 258: +#line 1046 "dhcp4_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1982 "dhcp4_parser.cc" +#line 2024 "dhcp4_parser.cc" break; - case 258: // $@45: %empty -#line 1046 "dhcp4_parser.yy" + case 259: +#line 1052 "dhcp4_parser.yy" { ctx.unique("serial-consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1991 "dhcp4_parser.cc" +#line 2033 "dhcp4_parser.cc" break; - case 259: // serial_consistency: "serial-consistency" $@45 ":" "constant string" -#line 1049 "dhcp4_parser.yy" + case 260: +#line 1055 "dhcp4_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 2001 "dhcp4_parser.cc" +#line 2043 "dhcp4_parser.cc" break; - case 260: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1055 "dhcp4_parser.yy" + case 261: +#line 1061 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2011 "dhcp4_parser.cc" +#line 2053 "dhcp4_parser.cc" break; - case 261: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1061 "dhcp4_parser.yy" + case 262: +#line 1067 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2021 "dhcp4_parser.cc" +#line 2063 "dhcp4_parser.cc" break; - case 262: // max_row_errors: "max-row-errors" ":" "integer" -#line 1067 "dhcp4_parser.yy" + case 263: +#line 1073 "dhcp4_parser.yy" + { + ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.DATABASE_ON_FAIL); +} +#line 2072 "dhcp4_parser.cc" + break; + + case 264: +#line 1076 "dhcp4_parser.yy" + { + ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); + ctx.leave(); +} +#line 2081 "dhcp4_parser.cc" + break; + + case 265: +#line 1081 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } +#line 2087 "dhcp4_parser.cc" + break; + + case 266: +#line 1082 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } +#line 2093 "dhcp4_parser.cc" + break; + + case 267: +#line 1083 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } +#line 2099 "dhcp4_parser.cc" + break; + + case 268: +#line 1086 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2031 "dhcp4_parser.cc" +#line 2109 "dhcp4_parser.cc" break; - case 263: // $@46: %empty -#line 1074 "dhcp4_parser.yy" + case 269: +#line 1093 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2039,65 +2117,65 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2043 "dhcp4_parser.cc" +#line 2121 "dhcp4_parser.cc" break; - case 264: // host_reservation_identifiers: "host-reservation-identifiers" $@46 ":" "[" host_reservation_identifiers_list "]" -#line 1080 "dhcp4_parser.yy" + case 270: +#line 1099 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2052 "dhcp4_parser.cc" +#line 2130 "dhcp4_parser.cc" break; - case 272: // duid_id: "duid" -#line 1096 "dhcp4_parser.yy" + case 278: +#line 1115 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2061 "dhcp4_parser.cc" +#line 2139 "dhcp4_parser.cc" break; - case 273: // hw_address_id: "hw-address" -#line 1101 "dhcp4_parser.yy" + case 279: +#line 1120 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2070 "dhcp4_parser.cc" +#line 2148 "dhcp4_parser.cc" break; - case 274: // circuit_id: "circuit-id" -#line 1106 "dhcp4_parser.yy" + case 280: +#line 1125 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 2079 "dhcp4_parser.cc" +#line 2157 "dhcp4_parser.cc" break; - case 275: // client_id: "client-id" -#line 1111 "dhcp4_parser.yy" + case 281: +#line 1130 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 2088 "dhcp4_parser.cc" +#line 2166 "dhcp4_parser.cc" break; - case 276: // flex_id: "flex-id" -#line 1116 "dhcp4_parser.yy" + case 282: +#line 1135 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2097 "dhcp4_parser.cc" +#line 2175 "dhcp4_parser.cc" break; - case 277: // $@47: %empty -#line 1123 "dhcp4_parser.yy" + case 283: +#line 1142 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2105,52 +2183,52 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2109 "dhcp4_parser.cc" +#line 2187 "dhcp4_parser.cc" break; - case 278: // dhcp_multi_threading: "multi-threading" $@47 ":" "{" multi_threading_params "}" -#line 1129 "dhcp4_parser.yy" + case 284: +#line 1148 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2120 "dhcp4_parser.cc" +#line 2198 "dhcp4_parser.cc" break; - case 287: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1148 "dhcp4_parser.yy" + case 293: +#line 1167 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2130 "dhcp4_parser.cc" +#line 2208 "dhcp4_parser.cc" break; - case 288: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1154 "dhcp4_parser.yy" + case 294: +#line 1173 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2140 "dhcp4_parser.cc" +#line 2218 "dhcp4_parser.cc" break; - case 289: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1160 "dhcp4_parser.yy" + case 295: +#line 1179 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2150 "dhcp4_parser.cc" +#line 2228 "dhcp4_parser.cc" break; - case 290: // $@48: %empty -#line 1166 "dhcp4_parser.yy" + case 296: +#line 1185 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2158,97 +2236,97 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2162 "dhcp4_parser.cc" +#line 2240 "dhcp4_parser.cc" break; - case 291: // hooks_libraries: "hooks-libraries" $@48 ":" "[" hooks_libraries_list "]" -#line 1172 "dhcp4_parser.yy" + case 297: +#line 1191 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2171 "dhcp4_parser.cc" +#line 2249 "dhcp4_parser.cc" break; - case 296: // $@49: %empty -#line 1185 "dhcp4_parser.yy" + case 302: +#line 1204 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2181 "dhcp4_parser.cc" +#line 2259 "dhcp4_parser.cc" break; - case 297: // hooks_library: "{" $@49 hooks_params "}" -#line 1189 "dhcp4_parser.yy" + case 303: +#line 1208 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2191 "dhcp4_parser.cc" +#line 2269 "dhcp4_parser.cc" break; - case 298: // $@50: %empty -#line 1195 "dhcp4_parser.yy" + case 304: +#line 1214 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2201 "dhcp4_parser.cc" +#line 2279 "dhcp4_parser.cc" break; - case 299: // sub_hooks_library: "{" $@50 hooks_params "}" -#line 1199 "dhcp4_parser.yy" + case 305: +#line 1218 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2211 "dhcp4_parser.cc" +#line 2289 "dhcp4_parser.cc" break; - case 305: // $@51: %empty -#line 1214 "dhcp4_parser.yy" + case 311: +#line 1233 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2220 "dhcp4_parser.cc" +#line 2298 "dhcp4_parser.cc" break; - case 306: // library: "library" $@51 ":" "constant string" -#line 1217 "dhcp4_parser.yy" + case 312: +#line 1236 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2230 "dhcp4_parser.cc" +#line 2308 "dhcp4_parser.cc" break; - case 307: // $@52: %empty -#line 1223 "dhcp4_parser.yy" + case 313: +#line 1242 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2239 "dhcp4_parser.cc" +#line 2317 "dhcp4_parser.cc" break; - case 308: // parameters: "parameters" $@52 ":" map_value -#line 1226 "dhcp4_parser.yy" + case 314: +#line 1245 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2248 "dhcp4_parser.cc" +#line 2326 "dhcp4_parser.cc" break; - case 309: // $@53: %empty -#line 1232 "dhcp4_parser.yy" + case 315: +#line 1251 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2256,81 +2334,81 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2260 "dhcp4_parser.cc" +#line 2338 "dhcp4_parser.cc" break; - case 310: // expired_leases_processing: "expired-leases-processing" $@53 ":" "{" expired_leases_params "}" -#line 1238 "dhcp4_parser.yy" + case 316: +#line 1257 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2270 "dhcp4_parser.cc" +#line 2348 "dhcp4_parser.cc" break; - case 319: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1256 "dhcp4_parser.yy" + case 325: +#line 1275 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2280 "dhcp4_parser.cc" +#line 2358 "dhcp4_parser.cc" break; - case 320: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1262 "dhcp4_parser.yy" + case 326: +#line 1281 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2290 "dhcp4_parser.cc" +#line 2368 "dhcp4_parser.cc" break; - case 321: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1268 "dhcp4_parser.yy" + case 327: +#line 1287 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2300 "dhcp4_parser.cc" +#line 2378 "dhcp4_parser.cc" break; - case 322: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1274 "dhcp4_parser.yy" + case 328: +#line 1293 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2310 "dhcp4_parser.cc" +#line 2388 "dhcp4_parser.cc" break; - case 323: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1280 "dhcp4_parser.yy" + case 329: +#line 1299 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2320 "dhcp4_parser.cc" +#line 2398 "dhcp4_parser.cc" break; - case 324: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1286 "dhcp4_parser.yy" + case 330: +#line 1305 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2330 "dhcp4_parser.cc" +#line 2408 "dhcp4_parser.cc" break; - case 325: // $@54: %empty -#line 1295 "dhcp4_parser.yy" + case 331: +#line 1314 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2338,30 +2416,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2342 "dhcp4_parser.cc" +#line 2420 "dhcp4_parser.cc" break; - case 326: // subnet4_list: "subnet4" $@54 ":" "[" subnet4_list_content "]" -#line 1301 "dhcp4_parser.yy" + case 332: +#line 1320 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2351 "dhcp4_parser.cc" +#line 2429 "dhcp4_parser.cc" break; - case 331: // $@55: %empty -#line 1321 "dhcp4_parser.yy" + case 337: +#line 1340 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2361 "dhcp4_parser.cc" +#line 2439 "dhcp4_parser.cc" break; - case 332: // subnet4: "{" $@55 subnet4_params "}" -#line 1325 "dhcp4_parser.yy" + case 338: +#line 1344 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2383,145 +2461,145 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2387 "dhcp4_parser.cc" +#line 2465 "dhcp4_parser.cc" break; - case 333: // $@56: %empty -#line 1347 "dhcp4_parser.yy" + case 339: +#line 1366 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2397 "dhcp4_parser.cc" +#line 2475 "dhcp4_parser.cc" break; - case 334: // sub_subnet4: "{" $@56 subnet4_params "}" -#line 1351 "dhcp4_parser.yy" + case 340: +#line 1370 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2407 "dhcp4_parser.cc" +#line 2485 "dhcp4_parser.cc" break; - case 382: // $@57: %empty -#line 1410 "dhcp4_parser.yy" + case 388: +#line 1429 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2416 "dhcp4_parser.cc" +#line 2494 "dhcp4_parser.cc" break; - case 383: // subnet: "subnet" $@57 ":" "constant string" -#line 1413 "dhcp4_parser.yy" + case 389: +#line 1432 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2426 "dhcp4_parser.cc" +#line 2504 "dhcp4_parser.cc" break; - case 384: // $@58: %empty -#line 1419 "dhcp4_parser.yy" + case 390: +#line 1438 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2435 "dhcp4_parser.cc" +#line 2513 "dhcp4_parser.cc" break; - case 385: // subnet_4o6_interface: "4o6-interface" $@58 ":" "constant string" -#line 1422 "dhcp4_parser.yy" + case 391: +#line 1441 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } -#line 2445 "dhcp4_parser.cc" +#line 2523 "dhcp4_parser.cc" break; - case 386: // $@59: %empty -#line 1428 "dhcp4_parser.yy" + case 392: +#line 1447 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2454 "dhcp4_parser.cc" +#line 2532 "dhcp4_parser.cc" break; - case 387: // subnet_4o6_interface_id: "4o6-interface-id" $@59 ":" "constant string" -#line 1431 "dhcp4_parser.yy" + case 393: +#line 1450 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } -#line 2464 "dhcp4_parser.cc" +#line 2542 "dhcp4_parser.cc" break; - case 388: // $@60: %empty -#line 1437 "dhcp4_parser.yy" + case 394: +#line 1456 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2473 "dhcp4_parser.cc" +#line 2551 "dhcp4_parser.cc" break; - case 389: // subnet_4o6_subnet: "4o6-subnet" $@60 ":" "constant string" -#line 1440 "dhcp4_parser.yy" + case 395: +#line 1459 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } -#line 2483 "dhcp4_parser.cc" +#line 2561 "dhcp4_parser.cc" break; - case 390: // $@61: %empty -#line 1446 "dhcp4_parser.yy" + case 396: +#line 1465 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2492 "dhcp4_parser.cc" +#line 2570 "dhcp4_parser.cc" break; - case 391: // interface: "interface" $@61 ":" "constant string" -#line 1449 "dhcp4_parser.yy" + case 397: +#line 1468 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2502 "dhcp4_parser.cc" +#line 2580 "dhcp4_parser.cc" break; - case 392: // $@62: %empty -#line 1455 "dhcp4_parser.yy" + case 398: +#line 1474 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2511 "dhcp4_parser.cc" +#line 2589 "dhcp4_parser.cc" break; - case 393: // client_class: "client-class" $@62 ":" "constant string" -#line 1458 "dhcp4_parser.yy" + case 399: +#line 1477 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2521 "dhcp4_parser.cc" +#line 2599 "dhcp4_parser.cc" break; - case 394: // $@63: %empty -#line 1464 "dhcp4_parser.yy" + case 400: +#line 1483 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2529,102 +2607,102 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2533 "dhcp4_parser.cc" +#line 2611 "dhcp4_parser.cc" break; - case 395: // require_client_classes: "require-client-classes" $@63 ":" list_strings -#line 1470 "dhcp4_parser.yy" + case 401: +#line 1489 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2542 "dhcp4_parser.cc" +#line 2620 "dhcp4_parser.cc" break; - case 396: // reservations_global: "reservations-global" ":" "boolean" -#line 1475 "dhcp4_parser.yy" + case 402: +#line 1494 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2552 "dhcp4_parser.cc" +#line 2630 "dhcp4_parser.cc" break; - case 397: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1481 "dhcp4_parser.yy" + case 403: +#line 1500 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2562 "dhcp4_parser.cc" +#line 2640 "dhcp4_parser.cc" break; - case 398: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1487 "dhcp4_parser.yy" + case 404: +#line 1506 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2572 "dhcp4_parser.cc" +#line 2650 "dhcp4_parser.cc" break; - case 399: // $@64: %empty -#line 1493 "dhcp4_parser.yy" + case 405: +#line 1512 "dhcp4_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2581 "dhcp4_parser.cc" +#line 2659 "dhcp4_parser.cc" break; - case 400: // reservation_mode: "reservation-mode" $@64 ":" hr_mode -#line 1496 "dhcp4_parser.yy" + case 406: +#line 1515 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2590 "dhcp4_parser.cc" +#line 2668 "dhcp4_parser.cc" break; - case 401: // hr_mode: "disabled" -#line 1501 "dhcp4_parser.yy" + case 407: +#line 1520 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2596 "dhcp4_parser.cc" +#line 2674 "dhcp4_parser.cc" break; - case 402: // hr_mode: "out-of-pool" -#line 1502 "dhcp4_parser.yy" + case 408: +#line 1521 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2602 "dhcp4_parser.cc" +#line 2680 "dhcp4_parser.cc" break; - case 403: // hr_mode: "global" -#line 1503 "dhcp4_parser.yy" + case 409: +#line 1522 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2608 "dhcp4_parser.cc" +#line 2686 "dhcp4_parser.cc" break; - case 404: // hr_mode: "all" -#line 1504 "dhcp4_parser.yy" + case 410: +#line 1523 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2614 "dhcp4_parser.cc" +#line 2692 "dhcp4_parser.cc" break; - case 405: // id: "id" ":" "integer" -#line 1507 "dhcp4_parser.yy" + case 411: +#line 1526 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2624 "dhcp4_parser.cc" +#line 2702 "dhcp4_parser.cc" break; - case 406: // $@65: %empty -#line 1515 "dhcp4_parser.yy" + case 412: +#line 1534 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2632,38 +2710,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2636 "dhcp4_parser.cc" +#line 2714 "dhcp4_parser.cc" break; - case 407: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" -#line 1521 "dhcp4_parser.yy" + case 413: +#line 1540 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2645 "dhcp4_parser.cc" +#line 2723 "dhcp4_parser.cc" break; - case 412: // $@66: %empty -#line 1536 "dhcp4_parser.yy" + case 418: +#line 1555 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2655 "dhcp4_parser.cc" +#line 2733 "dhcp4_parser.cc" break; - case 413: // shared_network: "{" $@66 shared_network_params "}" -#line 1540 "dhcp4_parser.yy" + case 419: +#line 1559 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 2663 "dhcp4_parser.cc" +#line 2741 "dhcp4_parser.cc" break; - case 456: // $@67: %empty -#line 1594 "dhcp4_parser.yy" + case 462: +#line 1613 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2671,47 +2749,47 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2675 "dhcp4_parser.cc" +#line 2753 "dhcp4_parser.cc" break; - case 457: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" -#line 1600 "dhcp4_parser.yy" + case 463: +#line 1619 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2684 "dhcp4_parser.cc" +#line 2762 "dhcp4_parser.cc" break; - case 458: // $@68: %empty -#line 1608 "dhcp4_parser.yy" + case 464: +#line 1627 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2693 "dhcp4_parser.cc" +#line 2771 "dhcp4_parser.cc" break; - case 459: // sub_option_def_list: "{" $@68 option_def_list "}" -#line 1611 "dhcp4_parser.yy" + case 465: +#line 1630 "dhcp4_parser.yy" { // parsing completed } -#line 2701 "dhcp4_parser.cc" +#line 2779 "dhcp4_parser.cc" break; - case 464: // $@69: %empty -#line 1627 "dhcp4_parser.yy" + case 470: +#line 1646 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2711 "dhcp4_parser.cc" +#line 2789 "dhcp4_parser.cc" break; - case 465: // option_def_entry: "{" $@69 option_def_params "}" -#line 1631 "dhcp4_parser.yy" + case 471: +#line 1650 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2719,21 +2797,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2723 "dhcp4_parser.cc" +#line 2801 "dhcp4_parser.cc" break; - case 466: // $@70: %empty -#line 1642 "dhcp4_parser.yy" + case 472: +#line 1661 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2733 "dhcp4_parser.cc" +#line 2811 "dhcp4_parser.cc" break; - case 467: // sub_option_def: "{" $@70 option_def_params "}" -#line 1646 "dhcp4_parser.yy" + case 473: +#line 1665 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2741,107 +2819,107 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2745 "dhcp4_parser.cc" +#line 2823 "dhcp4_parser.cc" break; - case 483: // code: "code" ":" "integer" -#line 1678 "dhcp4_parser.yy" + case 489: +#line 1697 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2755 "dhcp4_parser.cc" +#line 2833 "dhcp4_parser.cc" break; - case 485: // $@71: %empty -#line 1686 "dhcp4_parser.yy" + case 491: +#line 1705 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2764 "dhcp4_parser.cc" +#line 2842 "dhcp4_parser.cc" break; - case 486: // option_def_type: "type" $@71 ":" "constant string" -#line 1689 "dhcp4_parser.yy" + case 492: +#line 1708 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2774 "dhcp4_parser.cc" +#line 2852 "dhcp4_parser.cc" break; - case 487: // $@72: %empty -#line 1695 "dhcp4_parser.yy" + case 493: +#line 1714 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2783 "dhcp4_parser.cc" +#line 2861 "dhcp4_parser.cc" break; - case 488: // option_def_record_types: "record-types" $@72 ":" "constant string" -#line 1698 "dhcp4_parser.yy" + case 494: +#line 1717 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2793 "dhcp4_parser.cc" +#line 2871 "dhcp4_parser.cc" break; - case 489: // $@73: %empty -#line 1704 "dhcp4_parser.yy" + case 495: +#line 1723 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2802 "dhcp4_parser.cc" +#line 2880 "dhcp4_parser.cc" break; - case 490: // space: "space" $@73 ":" "constant string" -#line 1707 "dhcp4_parser.yy" + case 496: +#line 1726 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2812 "dhcp4_parser.cc" +#line 2890 "dhcp4_parser.cc" break; - case 492: // $@74: %empty -#line 1715 "dhcp4_parser.yy" + case 498: +#line 1734 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2821 "dhcp4_parser.cc" +#line 2899 "dhcp4_parser.cc" break; - case 493: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" -#line 1718 "dhcp4_parser.yy" + case 499: +#line 1737 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2831 "dhcp4_parser.cc" +#line 2909 "dhcp4_parser.cc" break; - case 494: // option_def_array: "array" ":" "boolean" -#line 1724 "dhcp4_parser.yy" + case 500: +#line 1743 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2841 "dhcp4_parser.cc" +#line 2919 "dhcp4_parser.cc" break; - case 495: // $@75: %empty -#line 1734 "dhcp4_parser.yy" + case 501: +#line 1753 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2849,97 +2927,97 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2853 "dhcp4_parser.cc" +#line 2931 "dhcp4_parser.cc" break; - case 496: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" -#line 1740 "dhcp4_parser.yy" + case 502: +#line 1759 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2862 "dhcp4_parser.cc" +#line 2940 "dhcp4_parser.cc" break; - case 501: // $@76: %empty -#line 1759 "dhcp4_parser.yy" + case 507: +#line 1778 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2872 "dhcp4_parser.cc" +#line 2950 "dhcp4_parser.cc" break; - case 502: // option_data_entry: "{" $@76 option_data_params "}" -#line 1763 "dhcp4_parser.yy" + case 508: +#line 1782 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2881 "dhcp4_parser.cc" +#line 2959 "dhcp4_parser.cc" break; - case 503: // $@77: %empty -#line 1771 "dhcp4_parser.yy" + case 509: +#line 1790 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2891 "dhcp4_parser.cc" +#line 2969 "dhcp4_parser.cc" break; - case 504: // sub_option_data: "{" $@77 option_data_params "}" -#line 1775 "dhcp4_parser.yy" + case 510: +#line 1794 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 2900 "dhcp4_parser.cc" +#line 2978 "dhcp4_parser.cc" break; - case 519: // $@78: %empty -#line 1808 "dhcp4_parser.yy" + case 525: +#line 1827 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2909 "dhcp4_parser.cc" +#line 2987 "dhcp4_parser.cc" break; - case 520: // option_data_data: "data" $@78 ":" "constant string" -#line 1811 "dhcp4_parser.yy" + case 526: +#line 1830 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2919 "dhcp4_parser.cc" +#line 2997 "dhcp4_parser.cc" break; - case 523: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1821 "dhcp4_parser.yy" + case 529: +#line 1840 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2929 "dhcp4_parser.cc" +#line 3007 "dhcp4_parser.cc" break; - case 524: // option_data_always_send: "always-send" ":" "boolean" -#line 1827 "dhcp4_parser.yy" + case 530: +#line 1846 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2939 "dhcp4_parser.cc" +#line 3017 "dhcp4_parser.cc" break; - case 525: // $@79: %empty -#line 1836 "dhcp4_parser.yy" + case 531: +#line 1855 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2947,87 +3025,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2951 "dhcp4_parser.cc" +#line 3029 "dhcp4_parser.cc" break; - case 526: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" -#line 1842 "dhcp4_parser.yy" + case 532: +#line 1861 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2960 "dhcp4_parser.cc" +#line 3038 "dhcp4_parser.cc" break; - case 531: // $@80: %empty -#line 1857 "dhcp4_parser.yy" + case 537: +#line 1876 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2970 "dhcp4_parser.cc" +#line 3048 "dhcp4_parser.cc" break; - case 532: // pool_list_entry: "{" $@80 pool_params "}" -#line 1861 "dhcp4_parser.yy" + case 538: +#line 1880 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2980 "dhcp4_parser.cc" +#line 3058 "dhcp4_parser.cc" break; - case 533: // $@81: %empty -#line 1867 "dhcp4_parser.yy" + case 539: +#line 1886 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2990 "dhcp4_parser.cc" +#line 3068 "dhcp4_parser.cc" break; - case 534: // sub_pool4: "{" $@81 pool_params "}" -#line 1871 "dhcp4_parser.yy" + case 540: +#line 1890 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3000 "dhcp4_parser.cc" +#line 3078 "dhcp4_parser.cc" break; - case 544: // $@82: %empty -#line 1890 "dhcp4_parser.yy" + case 550: +#line 1909 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3009 "dhcp4_parser.cc" +#line 3087 "dhcp4_parser.cc" break; - case 545: // pool_entry: "pool" $@82 ":" "constant string" -#line 1893 "dhcp4_parser.yy" + case 551: +#line 1912 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3019 "dhcp4_parser.cc" +#line 3097 "dhcp4_parser.cc" break; - case 546: // $@83: %empty -#line 1899 "dhcp4_parser.yy" + case 552: +#line 1918 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3027 "dhcp4_parser.cc" +#line 3105 "dhcp4_parser.cc" break; - case 547: // user_context: "user-context" $@83 ":" map_value -#line 1901 "dhcp4_parser.yy" + case 553: +#line 1920 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3050,19 +3128,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3054 "dhcp4_parser.cc" +#line 3132 "dhcp4_parser.cc" break; - case 548: // $@84: %empty -#line 1924 "dhcp4_parser.yy" + case 554: +#line 1943 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3062 "dhcp4_parser.cc" +#line 3140 "dhcp4_parser.cc" break; - case 549: // comment: "comment" $@84 ":" "constant string" -#line 1926 "dhcp4_parser.yy" + case 555: +#line 1945 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3087,11 +3165,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3091 "dhcp4_parser.cc" +#line 3169 "dhcp4_parser.cc" break; - case 550: // $@85: %empty -#line 1954 "dhcp4_parser.yy" + case 556: +#line 1973 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3099,134 +3177,134 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3103 "dhcp4_parser.cc" +#line 3181 "dhcp4_parser.cc" break; - case 551: // reservations: "reservations" $@85 ":" "[" reservations_list "]" -#line 1960 "dhcp4_parser.yy" + case 557: +#line 1979 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3112 "dhcp4_parser.cc" +#line 3190 "dhcp4_parser.cc" break; - case 556: // $@86: %empty -#line 1973 "dhcp4_parser.yy" + case 562: +#line 1992 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3122 "dhcp4_parser.cc" +#line 3200 "dhcp4_parser.cc" break; - case 557: // reservation: "{" $@86 reservation_params "}" -#line 1977 "dhcp4_parser.yy" + case 563: +#line 1996 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3131 "dhcp4_parser.cc" +#line 3209 "dhcp4_parser.cc" break; - case 558: // $@87: %empty -#line 1982 "dhcp4_parser.yy" + case 564: +#line 2001 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3141 "dhcp4_parser.cc" +#line 3219 "dhcp4_parser.cc" break; - case 559: // sub_reservation: "{" $@87 reservation_params "}" -#line 1986 "dhcp4_parser.yy" + case 565: +#line 2005 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3150 "dhcp4_parser.cc" +#line 3228 "dhcp4_parser.cc" break; - case 579: // $@88: %empty -#line 2017 "dhcp4_parser.yy" + case 585: +#line 2036 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3159 "dhcp4_parser.cc" +#line 3237 "dhcp4_parser.cc" break; - case 580: // next_server: "next-server" $@88 ":" "constant string" -#line 2020 "dhcp4_parser.yy" + case 586: +#line 2039 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } -#line 3169 "dhcp4_parser.cc" +#line 3247 "dhcp4_parser.cc" break; - case 581: // $@89: %empty -#line 2026 "dhcp4_parser.yy" + case 587: +#line 2045 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3178 "dhcp4_parser.cc" +#line 3256 "dhcp4_parser.cc" break; - case 582: // server_hostname: "server-hostname" $@89 ":" "constant string" -#line 2029 "dhcp4_parser.yy" + case 588: +#line 2048 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 3188 "dhcp4_parser.cc" +#line 3266 "dhcp4_parser.cc" break; - case 583: // $@90: %empty -#line 2035 "dhcp4_parser.yy" + case 589: +#line 2054 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3197 "dhcp4_parser.cc" +#line 3275 "dhcp4_parser.cc" break; - case 584: // boot_file_name: "boot-file-name" $@90 ":" "constant string" -#line 2038 "dhcp4_parser.yy" + case 590: +#line 2057 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } -#line 3207 "dhcp4_parser.cc" +#line 3285 "dhcp4_parser.cc" break; - case 585: // $@91: %empty -#line 2044 "dhcp4_parser.yy" + case 591: +#line 2063 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3216 "dhcp4_parser.cc" +#line 3294 "dhcp4_parser.cc" break; - case 586: // ip_address: "ip-address" $@91 ":" "constant string" -#line 2047 "dhcp4_parser.yy" + case 592: +#line 2066 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3226 "dhcp4_parser.cc" +#line 3304 "dhcp4_parser.cc" break; - case 587: // $@92: %empty -#line 2053 "dhcp4_parser.yy" + case 593: +#line 2072 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3234,134 +3312,134 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3238 "dhcp4_parser.cc" +#line 3316 "dhcp4_parser.cc" break; - case 588: // ip_addresses: "ip-addresses" $@92 ":" list_strings -#line 2059 "dhcp4_parser.yy" + case 594: +#line 2078 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3247 "dhcp4_parser.cc" +#line 3325 "dhcp4_parser.cc" break; - case 589: // $@93: %empty -#line 2064 "dhcp4_parser.yy" + case 595: +#line 2083 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3256 "dhcp4_parser.cc" +#line 3334 "dhcp4_parser.cc" break; - case 590: // duid: "duid" $@93 ":" "constant string" -#line 2067 "dhcp4_parser.yy" + case 596: +#line 2086 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3266 "dhcp4_parser.cc" +#line 3344 "dhcp4_parser.cc" break; - case 591: // $@94: %empty -#line 2073 "dhcp4_parser.yy" + case 597: +#line 2092 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3275 "dhcp4_parser.cc" +#line 3353 "dhcp4_parser.cc" break; - case 592: // hw_address: "hw-address" $@94 ":" "constant string" -#line 2076 "dhcp4_parser.yy" + case 598: +#line 2095 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3285 "dhcp4_parser.cc" +#line 3363 "dhcp4_parser.cc" break; - case 593: // $@95: %empty -#line 2082 "dhcp4_parser.yy" + case 599: +#line 2101 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3294 "dhcp4_parser.cc" +#line 3372 "dhcp4_parser.cc" break; - case 594: // client_id_value: "client-id" $@95 ":" "constant string" -#line 2085 "dhcp4_parser.yy" + case 600: +#line 2104 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 3304 "dhcp4_parser.cc" +#line 3382 "dhcp4_parser.cc" break; - case 595: // $@96: %empty -#line 2091 "dhcp4_parser.yy" + case 601: +#line 2110 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3313 "dhcp4_parser.cc" +#line 3391 "dhcp4_parser.cc" break; - case 596: // circuit_id_value: "circuit-id" $@96 ":" "constant string" -#line 2094 "dhcp4_parser.yy" + case 602: +#line 2113 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 3323 "dhcp4_parser.cc" +#line 3401 "dhcp4_parser.cc" break; - case 597: // $@97: %empty -#line 2100 "dhcp4_parser.yy" + case 603: +#line 2119 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3332 "dhcp4_parser.cc" +#line 3410 "dhcp4_parser.cc" break; - case 598: // flex_id_value: "flex-id" $@97 ":" "constant string" -#line 2103 "dhcp4_parser.yy" + case 604: +#line 2122 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3342 "dhcp4_parser.cc" +#line 3420 "dhcp4_parser.cc" break; - case 599: // $@98: %empty -#line 2109 "dhcp4_parser.yy" + case 605: +#line 2128 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3351 "dhcp4_parser.cc" +#line 3429 "dhcp4_parser.cc" break; - case 600: // hostname: "hostname" $@98 ":" "constant string" -#line 2112 "dhcp4_parser.yy" + case 606: +#line 2131 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3361 "dhcp4_parser.cc" +#line 3439 "dhcp4_parser.cc" break; - case 601: // $@99: %empty -#line 2118 "dhcp4_parser.yy" + case 607: +#line 2137 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3369,20 +3447,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3373 "dhcp4_parser.cc" +#line 3451 "dhcp4_parser.cc" break; - case 602: // reservation_client_classes: "client-classes" $@99 ":" list_strings -#line 2124 "dhcp4_parser.yy" + case 608: +#line 2143 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3382 "dhcp4_parser.cc" +#line 3460 "dhcp4_parser.cc" break; - case 603: // $@100: %empty -#line 2132 "dhcp4_parser.yy" + case 609: +#line 2151 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3390,20 +3468,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3394 "dhcp4_parser.cc" +#line 3472 "dhcp4_parser.cc" break; - case 604: // relay: "relay" $@100 ":" "{" relay_map "}" -#line 2138 "dhcp4_parser.yy" + case 610: +#line 2157 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3403 "dhcp4_parser.cc" +#line 3481 "dhcp4_parser.cc" break; - case 607: // $@101: %empty -#line 2150 "dhcp4_parser.yy" + case 613: +#line 2169 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3411,79 +3489,79 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3415 "dhcp4_parser.cc" +#line 3493 "dhcp4_parser.cc" break; - case 608: // client_classes: "client-classes" $@101 ":" "[" client_classes_list "]" -#line 2156 "dhcp4_parser.yy" + case 614: +#line 2175 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3424 "dhcp4_parser.cc" +#line 3502 "dhcp4_parser.cc" break; - case 611: // $@102: %empty -#line 2165 "dhcp4_parser.yy" + case 617: +#line 2184 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3434 "dhcp4_parser.cc" +#line 3512 "dhcp4_parser.cc" break; - case 612: // client_class_entry: "{" $@102 client_class_params "}" -#line 2169 "dhcp4_parser.yy" + case 618: +#line 2188 "dhcp4_parser.yy" { // 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 3444 "dhcp4_parser.cc" +#line 3522 "dhcp4_parser.cc" break; - case 632: // $@103: %empty -#line 2201 "dhcp4_parser.yy" + case 638: +#line 2220 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3453 "dhcp4_parser.cc" +#line 3531 "dhcp4_parser.cc" break; - case 633: // client_class_test: "test" $@103 ":" "constant string" -#line 2204 "dhcp4_parser.yy" + case 639: +#line 2223 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3463 "dhcp4_parser.cc" +#line 3541 "dhcp4_parser.cc" break; - case 634: // only_if_required: "only-if-required" ":" "boolean" -#line 2210 "dhcp4_parser.yy" + case 640: +#line 2229 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3473 "dhcp4_parser.cc" +#line 3551 "dhcp4_parser.cc" break; - case 635: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2218 "dhcp4_parser.yy" + case 641: +#line 2237 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3483 "dhcp4_parser.cc" +#line 3561 "dhcp4_parser.cc" break; - case 636: // $@104: %empty -#line 2226 "dhcp4_parser.yy" + case 642: +#line 2245 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3491,58 +3569,58 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3495 "dhcp4_parser.cc" +#line 3573 "dhcp4_parser.cc" break; - case 637: // control_socket: "control-socket" $@104 ":" "{" control_socket_params "}" -#line 2232 "dhcp4_parser.yy" + case 643: +#line 2251 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3504 "dhcp4_parser.cc" +#line 3582 "dhcp4_parser.cc" break; - case 645: // $@105: %empty -#line 2248 "dhcp4_parser.yy" + case 651: +#line 2267 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3513 "dhcp4_parser.cc" +#line 3591 "dhcp4_parser.cc" break; - case 646: // control_socket_type: "socket-type" $@105 ":" "constant string" -#line 2251 "dhcp4_parser.yy" + case 652: +#line 2270 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3523 "dhcp4_parser.cc" +#line 3601 "dhcp4_parser.cc" break; - case 647: // $@106: %empty -#line 2257 "dhcp4_parser.yy" + case 653: +#line 2276 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3532 "dhcp4_parser.cc" +#line 3610 "dhcp4_parser.cc" break; - case 648: // control_socket_name: "socket-name" $@106 ":" "constant string" -#line 2260 "dhcp4_parser.yy" + case 654: +#line 2279 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3542 "dhcp4_parser.cc" +#line 3620 "dhcp4_parser.cc" break; - case 649: // $@107: %empty -#line 2269 "dhcp4_parser.yy" + case 655: +#line 2288 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3550,79 +3628,79 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3554 "dhcp4_parser.cc" +#line 3632 "dhcp4_parser.cc" break; - case 650: // dhcp_queue_control: "dhcp-queue-control" $@107 ":" "{" queue_control_params "}" -#line 2275 "dhcp4_parser.yy" + case 656: +#line 2294 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3565 "dhcp4_parser.cc" +#line 3643 "dhcp4_parser.cc" break; - case 659: // enable_queue: "enable-queue" ":" "boolean" -#line 2294 "dhcp4_parser.yy" + case 665: +#line 2313 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3575 "dhcp4_parser.cc" +#line 3653 "dhcp4_parser.cc" break; - case 660: // $@108: %empty -#line 2300 "dhcp4_parser.yy" + case 666: +#line 2319 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3584 "dhcp4_parser.cc" +#line 3662 "dhcp4_parser.cc" break; - case 661: // queue_type: "queue-type" $@108 ":" "constant string" -#line 2303 "dhcp4_parser.yy" + case 667: +#line 2322 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 3594 "dhcp4_parser.cc" +#line 3672 "dhcp4_parser.cc" break; - case 662: // capacity: "capacity" ":" "integer" -#line 2309 "dhcp4_parser.yy" + case 668: +#line 2328 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3604 "dhcp4_parser.cc" +#line 3682 "dhcp4_parser.cc" break; - case 663: // $@109: %empty -#line 2315 "dhcp4_parser.yy" + case 669: +#line 2334 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3613 "dhcp4_parser.cc" +#line 3691 "dhcp4_parser.cc" break; - case 664: // arbitrary_map_entry: "constant string" $@109 ":" value -#line 2318 "dhcp4_parser.yy" + case 670: +#line 2337 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3622 "dhcp4_parser.cc" +#line 3700 "dhcp4_parser.cc" break; - case 665: // $@110: %empty -#line 2325 "dhcp4_parser.yy" + case 671: +#line 2344 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3630,283 +3708,283 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3634 "dhcp4_parser.cc" +#line 3712 "dhcp4_parser.cc" break; - case 666: // dhcp_ddns: "dhcp-ddns" $@110 ":" "{" dhcp_ddns_params "}" -#line 2331 "dhcp4_parser.yy" + case 672: +#line 2350 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3645 "dhcp4_parser.cc" +#line 3723 "dhcp4_parser.cc" break; - case 667: // $@111: %empty -#line 2338 "dhcp4_parser.yy" + case 673: +#line 2357 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3655 "dhcp4_parser.cc" +#line 3733 "dhcp4_parser.cc" break; - case 668: // sub_dhcp_ddns: "{" $@111 dhcp_ddns_params "}" -#line 2342 "dhcp4_parser.yy" + case 674: +#line 2361 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3665 "dhcp4_parser.cc" +#line 3743 "dhcp4_parser.cc" break; - case 689: // enable_updates: "enable-updates" ":" "boolean" -#line 2372 "dhcp4_parser.yy" + case 695: +#line 2391 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3675 "dhcp4_parser.cc" +#line 3753 "dhcp4_parser.cc" break; - case 690: // $@112: %empty -#line 2378 "dhcp4_parser.yy" + case 696: +#line 2397 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3684 "dhcp4_parser.cc" +#line 3762 "dhcp4_parser.cc" break; - case 691: // server_ip: "server-ip" $@112 ":" "constant string" -#line 2381 "dhcp4_parser.yy" + case 697: +#line 2400 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3694 "dhcp4_parser.cc" +#line 3772 "dhcp4_parser.cc" break; - case 692: // server_port: "server-port" ":" "integer" -#line 2387 "dhcp4_parser.yy" + case 698: +#line 2406 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3704 "dhcp4_parser.cc" +#line 3782 "dhcp4_parser.cc" break; - case 693: // $@113: %empty -#line 2393 "dhcp4_parser.yy" + case 699: +#line 2412 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3713 "dhcp4_parser.cc" +#line 3791 "dhcp4_parser.cc" break; - case 694: // sender_ip: "sender-ip" $@113 ":" "constant string" -#line 2396 "dhcp4_parser.yy" + case 700: +#line 2415 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3723 "dhcp4_parser.cc" +#line 3801 "dhcp4_parser.cc" break; - case 695: // sender_port: "sender-port" ":" "integer" -#line 2402 "dhcp4_parser.yy" + case 701: +#line 2421 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3733 "dhcp4_parser.cc" +#line 3811 "dhcp4_parser.cc" break; - case 696: // max_queue_size: "max-queue-size" ":" "integer" -#line 2408 "dhcp4_parser.yy" + case 702: +#line 2427 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3743 "dhcp4_parser.cc" +#line 3821 "dhcp4_parser.cc" break; - case 697: // $@114: %empty -#line 2414 "dhcp4_parser.yy" + case 703: +#line 2433 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 3752 "dhcp4_parser.cc" +#line 3830 "dhcp4_parser.cc" break; - case 698: // ncr_protocol: "ncr-protocol" $@114 ":" ncr_protocol_value -#line 2417 "dhcp4_parser.yy" + case 704: +#line 2436 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3761 "dhcp4_parser.cc" +#line 3839 "dhcp4_parser.cc" break; - case 699: // ncr_protocol_value: "udp" -#line 2423 "dhcp4_parser.yy" + case 705: +#line 2442 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3767 "dhcp4_parser.cc" +#line 3845 "dhcp4_parser.cc" break; - case 700: // ncr_protocol_value: "tcp" -#line 2424 "dhcp4_parser.yy" + case 706: +#line 2443 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3773 "dhcp4_parser.cc" +#line 3851 "dhcp4_parser.cc" break; - case 701: // $@115: %empty -#line 2427 "dhcp4_parser.yy" + case 707: +#line 2446 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 3782 "dhcp4_parser.cc" +#line 3860 "dhcp4_parser.cc" break; - case 702: // ncr_format: "ncr-format" $@115 ":" "JSON" -#line 2430 "dhcp4_parser.yy" + case 708: +#line 2449 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3792 "dhcp4_parser.cc" +#line 3870 "dhcp4_parser.cc" break; - case 703: // $@116: %empty -#line 2437 "dhcp4_parser.yy" + case 709: +#line 2456 "dhcp4_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3801 "dhcp4_parser.cc" +#line 3879 "dhcp4_parser.cc" break; - case 704: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" -#line 2440 "dhcp4_parser.yy" + case 710: +#line 2459 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3811 "dhcp4_parser.cc" +#line 3889 "dhcp4_parser.cc" break; - case 705: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2447 "dhcp4_parser.yy" + case 711: +#line 2466 "dhcp4_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3821 "dhcp4_parser.cc" +#line 3899 "dhcp4_parser.cc" break; - case 706: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2454 "dhcp4_parser.yy" + case 712: +#line 2473 "dhcp4_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3831 "dhcp4_parser.cc" +#line 3909 "dhcp4_parser.cc" break; - case 707: // $@117: %empty -#line 2461 "dhcp4_parser.yy" + case 713: +#line 2480 "dhcp4_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3840 "dhcp4_parser.cc" +#line 3918 "dhcp4_parser.cc" break; - case 708: // dep_replace_client_name: "replace-client-name" $@117 ":" ddns_replace_client_name_value -#line 2464 "dhcp4_parser.yy" + case 714: +#line 2483 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3849 "dhcp4_parser.cc" +#line 3927 "dhcp4_parser.cc" break; - case 709: // $@118: %empty -#line 2470 "dhcp4_parser.yy" + case 715: +#line 2489 "dhcp4_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3858 "dhcp4_parser.cc" +#line 3936 "dhcp4_parser.cc" break; - case 710: // dep_generated_prefix: "generated-prefix" $@118 ":" "constant string" -#line 2473 "dhcp4_parser.yy" + case 716: +#line 2492 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3868 "dhcp4_parser.cc" +#line 3946 "dhcp4_parser.cc" break; - case 711: // $@119: %empty -#line 2480 "dhcp4_parser.yy" + case 717: +#line 2499 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3877 "dhcp4_parser.cc" +#line 3955 "dhcp4_parser.cc" break; - case 712: // dep_hostname_char_set: "hostname-char-set" $@119 ":" "constant string" -#line 2483 "dhcp4_parser.yy" + case 718: +#line 2502 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 3887 "dhcp4_parser.cc" +#line 3965 "dhcp4_parser.cc" break; - case 713: // $@120: %empty -#line 2490 "dhcp4_parser.yy" + case 719: +#line 2509 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3896 "dhcp4_parser.cc" +#line 3974 "dhcp4_parser.cc" break; - case 714: // dep_hostname_char_replacement: "hostname-char-replacement" $@120 ":" "constant string" -#line 2493 "dhcp4_parser.yy" + case 720: +#line 2512 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 3906 "dhcp4_parser.cc" +#line 3984 "dhcp4_parser.cc" break; - case 715: // $@121: %empty -#line 2502 "dhcp4_parser.yy" + case 721: +#line 2521 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3914,40 +3992,40 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3918 "dhcp4_parser.cc" +#line 3996 "dhcp4_parser.cc" break; - case 716: // config_control: "config-control" $@121 ":" "{" config_control_params "}" -#line 2508 "dhcp4_parser.yy" + case 722: +#line 2527 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3928 "dhcp4_parser.cc" +#line 4006 "dhcp4_parser.cc" break; - case 717: // $@122: %empty -#line 2514 "dhcp4_parser.yy" + case 723: +#line 2533 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3938 "dhcp4_parser.cc" +#line 4016 "dhcp4_parser.cc" break; - case 718: // sub_config_control: "{" $@122 config_control_params "}" -#line 2518 "dhcp4_parser.yy" + case 724: +#line 2537 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 3947 "dhcp4_parser.cc" +#line 4025 "dhcp4_parser.cc" break; - case 723: // $@123: %empty -#line 2533 "dhcp4_parser.yy" + case 729: +#line 2552 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3955,30 +4033,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3959 "dhcp4_parser.cc" +#line 4037 "dhcp4_parser.cc" break; - case 724: // config_databases: "config-databases" $@123 ":" "[" database_list "]" -#line 2539 "dhcp4_parser.yy" + case 730: +#line 2558 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3968 "dhcp4_parser.cc" +#line 4046 "dhcp4_parser.cc" break; - case 725: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2544 "dhcp4_parser.yy" + case 731: +#line 2563 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 3978 "dhcp4_parser.cc" +#line 4056 "dhcp4_parser.cc" break; - case 726: // $@124: %empty -#line 2552 "dhcp4_parser.yy" + case 732: +#line 2571 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3986,67 +4064,67 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3990 "dhcp4_parser.cc" +#line 4068 "dhcp4_parser.cc" break; - case 727: // loggers: "loggers" $@124 ":" "[" loggers_entries "]" -#line 2558 "dhcp4_parser.yy" + case 733: +#line 2577 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3999 "dhcp4_parser.cc" +#line 4077 "dhcp4_parser.cc" break; - case 730: // $@125: %empty -#line 2570 "dhcp4_parser.yy" + case 736: +#line 2589 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4009 "dhcp4_parser.cc" +#line 4087 "dhcp4_parser.cc" break; - case 731: // logger_entry: "{" $@125 logger_params "}" -#line 2574 "dhcp4_parser.yy" + case 737: +#line 2593 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4017 "dhcp4_parser.cc" +#line 4095 "dhcp4_parser.cc" break; - case 741: // debuglevel: "debuglevel" ":" "integer" -#line 2591 "dhcp4_parser.yy" + case 747: +#line 2610 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4027 "dhcp4_parser.cc" +#line 4105 "dhcp4_parser.cc" break; - case 742: // $@126: %empty -#line 2597 "dhcp4_parser.yy" + case 748: +#line 2616 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4036 "dhcp4_parser.cc" +#line 4114 "dhcp4_parser.cc" break; - case 743: // severity: "severity" $@126 ":" "constant string" -#line 2600 "dhcp4_parser.yy" + case 749: +#line 2619 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4046 "dhcp4_parser.cc" +#line 4124 "dhcp4_parser.cc" break; - case 744: // $@127: %empty -#line 2606 "dhcp4_parser.yy" + case 750: +#line 2625 "dhcp4_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4054,106 +4132,106 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4058 "dhcp4_parser.cc" +#line 4136 "dhcp4_parser.cc" break; - case 745: // output_options_list: "output_options" $@127 ":" "[" output_options_list_content "]" -#line 2612 "dhcp4_parser.yy" + case 751: +#line 2631 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4067 "dhcp4_parser.cc" +#line 4145 "dhcp4_parser.cc" break; - case 748: // $@128: %empty -#line 2621 "dhcp4_parser.yy" + case 754: +#line 2640 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4077 "dhcp4_parser.cc" +#line 4155 "dhcp4_parser.cc" break; - case 749: // output_entry: "{" $@128 output_params_list "}" -#line 2625 "dhcp4_parser.yy" + case 755: +#line 2644 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4085 "dhcp4_parser.cc" +#line 4163 "dhcp4_parser.cc" break; - case 757: // $@129: %empty -#line 2640 "dhcp4_parser.yy" + case 763: +#line 2659 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4094 "dhcp4_parser.cc" +#line 4172 "dhcp4_parser.cc" break; - case 758: // output: "output" $@129 ":" "constant string" -#line 2643 "dhcp4_parser.yy" + case 764: +#line 2662 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4104 "dhcp4_parser.cc" +#line 4182 "dhcp4_parser.cc" break; - case 759: // flush: "flush" ":" "boolean" -#line 2649 "dhcp4_parser.yy" + case 765: +#line 2668 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4114 "dhcp4_parser.cc" +#line 4192 "dhcp4_parser.cc" break; - case 760: // maxsize: "maxsize" ":" "integer" -#line 2655 "dhcp4_parser.yy" + case 766: +#line 2674 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4124 "dhcp4_parser.cc" +#line 4202 "dhcp4_parser.cc" break; - case 761: // maxver: "maxver" ":" "integer" -#line 2661 "dhcp4_parser.yy" + case 767: +#line 2680 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4134 "dhcp4_parser.cc" +#line 4212 "dhcp4_parser.cc" break; - case 762: // $@130: %empty -#line 2667 "dhcp4_parser.yy" + case 768: +#line 2686 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4143 "dhcp4_parser.cc" +#line 4221 "dhcp4_parser.cc" break; - case 763: // pattern: "pattern" $@130 ":" "constant string" -#line 2670 "dhcp4_parser.yy" + case 769: +#line 2689 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4153 "dhcp4_parser.cc" +#line 4231 "dhcp4_parser.cc" break; -#line 4157 "dhcp4_parser.cc" +#line 4235 "dhcp4_parser.cc" default: break; @@ -4170,6 +4248,7 @@ namespace isc { namespace dhcp { YY_SYMBOL_PRINT ("-> $$ =", yylhs); yypop_ (yylen); yylen = 0; + YY_STACK_PRINT (); // Shift the result of the reduction. yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); @@ -4185,9 +4264,7 @@ namespace isc { namespace dhcp { if (!yyerrstatus_) { ++yynerrs_; - context yyctx (*this, yyla); - std::string msg = yysyntax_error_ (yyctx); - error (yyla.location, YY_MOVE (msg)); + error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); } @@ -4198,7 +4275,7 @@ namespace isc { namespace dhcp { error, discard it. */ // Return failure if at end of input. - if (yyla.kind () == symbol_kind::S_YYEOF) + if (yyla.type_get () == yyeof_) YYABORT; else if (!yyla.empty ()) { @@ -4224,7 +4301,6 @@ namespace isc { namespace dhcp { this YYERROR. */ yypop_ (yylen); yylen = 0; - YY_STACK_PRINT (); goto yyerrlab1; @@ -4233,33 +4309,31 @@ namespace isc { namespace dhcp { `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus_ = 3; // Each real token shifted decrements this. - // Pop stack until we find a state that shifts the error token. - for (;;) - { - yyn = yypact_[+yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - yyn += symbol_kind::S_YYerror; - if (0 <= yyn && yyn <= yylast_ - && yycheck_[yyn] == symbol_kind::S_YYerror) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - // Pop the current state because it cannot handle the error token. - if (yystack_.size () == 1) - YYABORT; - - yyerror_range[1].location = yystack_[0].location; - yy_destroy_ ("Error: popping", yystack_[0]); - yypop_ (); - YY_STACK_PRINT (); - } { stack_symbol_type error_token; + for (;;) + { + yyn = yypact_[+yystack_[0].state]; + if (!yy_pact_value_is_default_ (yyn)) + { + yyn += yy_error_token_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yy_error_token_) + { + yyn = yytable_[yyn]; + if (0 < yyn) + break; + } + } + + // Pop the current state because it cannot handle the error token. + if (yystack_.size () == 1) + YYABORT; + + yyerror_range[1].location = yystack_[0].location; + yy_destroy_ ("Error: popping", yystack_[0]); + yypop_ (); + YY_STACK_PRINT (); + } yyerror_range[2].location = yyla.location; YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); @@ -4297,7 +4371,6 @@ namespace isc { namespace dhcp { /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ yypop_ (yylen); - YY_STACK_PRINT (); while (1 < yystack_.size ()) { yy_destroy_ ("Cleanup: popping", yystack_[0]); @@ -4331,100 +4404,18 @@ namespace isc { namespace dhcp { error (yyexc.location, yyexc.what ()); } - /* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ - std::string - Dhcp4Parser::yytnamerr_ (const char *yystr) - { - if (*yystr == '"') - { - std::string yyr; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; - } - + // Generate an error message. std::string - Dhcp4Parser::symbol_name (symbol_kind_type yysymbol) + Dhcp4Parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const { - return yytnamerr_ (yytname_[yysymbol]); - } - - - - // Dhcp4Parser::context. - Dhcp4Parser::context::context (const Dhcp4Parser& yyparser, const symbol_type& yyla) - : yyparser_ (yyparser) - , yyla_ (yyla) - {} - - int - Dhcp4Parser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const - { - // Actual number of expected tokens - int yycount = 0; - - int yyn = yypact_[+yyparser_.yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - // Stay within bounds of both yycheck and yytname. - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror - && !yy_table_value_is_error_ (yytable_[yyx + yyn])) - { - if (!yyarg) - ++yycount; - else if (yycount == yyargn) - return 0; - else - yyarg[yycount++] = YY_CAST (symbol_kind_type, yyx); - } - } - - if (yyarg && yycount == 0 && 0 < yyargn) - yyarg[0] = symbol_kind::S_YYEMPTY; - return yycount; - } - - + // Number of reported tokens (one for the "unexpected", one per + // "expected"). + std::ptrdiff_t yycount = 0; + // Its maximum. + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + // Arguments of yyformat. + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int - Dhcp4Parser::yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const - { /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action @@ -4449,26 +4440,35 @@ namespace isc { namespace dhcp { one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ - - if (!yyctx.lookahead ().empty ()) + if (!yyla.empty ()) { - if (yyarg) - yyarg[0] = yyctx.token (); - int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1); - return yyn + 1; - } - return 0; - } + symbol_number_type yytoken = yyla.type_get (); + yyarg[yycount++] = yytname_[yytoken]; - // Generate an error message. - std::string - Dhcp4Parser::yysyntax_error_ (const context& yyctx) const - { - // Its maximum. - enum { YYARGS_MAX = 5 }; - // Arguments of yyformat. - symbol_kind_type yyarg[YYARGS_MAX]; - int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX); + int yyn = yypact_[+yystate]; + if (!yy_pact_value_is_default_ (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + // Stay within bounds of both yycheck and yytname. + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; + for (int yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck_[yyx + yyn] == yyx && yyx != yy_error_token_ + && !yy_table_value_is_error_ (yytable_[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + break; + } + else + yyarg[yycount++] = yytname_[yyx]; + } + } + } char const* yyformat = YY_NULLPTR; switch (yycount) @@ -4493,7 +4493,7 @@ namespace isc { namespace dhcp { for (char const* yyp = yyformat; *yyp; ++yyp) if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) { - yyres += symbol_name (yyarg[yyi++]); + yyres += yytnamerr_ (yyarg[yyi++]); ++yyp; } else @@ -4502,136 +4502,136 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -939; + const short Dhcp4Parser::yypact_ninf_ = -942; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 398, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, 31, 41, 33, 57, 68, 104, - 126, 154, 157, 161, 174, 184, 194, 198, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, 41, -161, 27, 220, 67, 605, - 61, 64, -37, 114, 176, -86, 226, 54, -939, 98, - 70, 212, 53, 216, -939, 215, -939, -939, -939, 221, - 228, 250, -939, -939, -939, -939, -939, -939, 267, 268, - 269, 297, 307, 316, 344, 348, 359, 362, 363, -939, - 364, 371, 389, 390, 393, -939, -939, -939, 394, 395, - 396, -939, -939, -939, -939, -939, -939, -939, 397, 399, - 401, -939, -939, -939, -939, -939, 402, -939, -939, -939, - -939, -939, -939, 403, -939, 404, -939, 69, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, 405, -939, 71, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, 407, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, 97, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, 99, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - 295, 310, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, 337, -939, -939, 408, -939, -939, - -939, 409, -939, -939, 410, 412, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, 413, - 415, -939, -939, -939, -939, 416, 418, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, 115, - -939, -939, -939, 419, -939, -939, 424, -939, 425, 426, - -939, -939, 427, 428, -939, -939, -939, -939, -939, -939, - -939, 127, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, 429, - 142, -939, -939, -939, -939, 41, 41, -939, 35, 431, - -939, 433, 435, 436, 205, 219, 245, 439, 440, 441, - 443, 449, 452, 263, 264, 265, 274, 275, 266, 276, - 277, 278, 280, 282, 475, 285, 288, 287, 289, 294, - 481, 489, 490, 298, 300, 301, 495, 497, 500, 501, - 502, 505, 508, 317, 320, 323, 509, 512, 518, 520, - 521, 333, 526, 527, 528, 531, 534, 539, 349, 541, - -939, 220, -939, 544, 545, 546, 358, 67, -939, 549, - 553, 555, 556, 588, 589, 400, 590, 592, 593, 605, - -939, 594, 61, -939, 595, 596, 597, 598, 600, 602, - 603, 606, -939, 64, -939, 607, 608, 414, 609, 610, - 611, 421, -939, 114, 612, 422, 423, -939, 176, 618, - 619, 15, -939, 430, 620, 621, 434, 622, 442, 446, - 624, 626, 447, 448, 632, 634, 639, 642, 226, -939, - 643, 453, 54, -939, -939, -939, 645, 644, 646, 647, - 652, -939, -939, -939, 456, 458, 466, 665, 666, 669, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, 491, -939, -939, -939, -939, -939, -112, 498, 499, - -939, -939, -939, 670, 684, 686, 689, 692, 506, 229, - -939, -939, -939, 697, 704, 705, 707, 710, -939, 712, - 713, 716, 717, 517, 532, -939, 720, -939, 722, 135, - 158, -939, -939, 536, 537, 543, 723, 547, 548, -939, - 722, 550, 731, -939, 551, -939, 722, 552, 554, 557, - 558, 559, 560, 561, -939, 562, 563, -939, 564, 565, - 566, -939, -939, 567, -939, -939, -939, 568, 692, -939, - -939, 579, 582, -939, 599, -939, -939, 10, 575, -939, - -939, -112, 601, 604, 614, -939, 735, -939, -939, 41, - 220, 54, 67, 719, -939, -939, -939, 522, 522, 740, - -939, -939, -939, -939, -939, -939, -939, -939, -939, 742, - 743, 780, 781, -939, -939, -939, -939, -939, -939, -939, - -939, 121, 782, 783, 787, 207, -2, 116, 122, 226, - -939, -939, 789, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, 790, -939, -939, -939, -939, 131, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, 740, -939, - 164, 172, 185, -939, 187, -939, -939, -939, -939, -939, - -939, 796, 797, 798, 799, 802, -939, -939, -939, -939, - 806, 807, 808, 809, 813, 814, -939, 191, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, 201, - -939, 815, 817, -939, -939, 818, 820, -939, -939, 819, - 823, -939, -939, 821, 825, -939, -939, 826, 828, -939, - -939, -939, -939, -939, -939, 78, -939, -939, -939, -939, - -939, -939, -939, 84, -939, -939, 827, 831, -939, -939, - 829, 833, -939, 834, 835, 836, 837, 838, 839, 214, - -939, -939, -939, -939, -939, -939, -939, 840, 841, 842, - -939, 225, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, 299, -939, -939, -939, 843, -939, 844, - -939, -939, -939, 306, -939, -939, -939, -939, -939, 309, - -939, 109, -939, 635, -939, 845, 846, -939, -939, -939, - -939, 847, 848, -939, -939, -939, 849, 719, -939, 852, - 853, 854, 855, 655, 640, 657, 663, 667, 857, 859, - 860, 861, 671, 672, 673, 674, 675, 676, 522, -939, - -939, 522, -939, 740, 605, -939, 742, 114, -939, 743, - 176, -939, 780, 706, -939, 781, 121, -939, 112, 782, - -939, 64, -939, 783, -86, -939, 787, 678, 679, 683, - 687, 690, 726, 207, -939, 682, 727, 746, -2, -939, - 866, 877, 116, -939, 695, 897, 753, 901, 122, -939, - -939, -47, 789, -939, -939, 911, 932, 61, -939, 790, - 934, -939, -939, 755, -939, 336, 762, 763, 816, -939, - -939, -939, -939, -939, 830, 832, 850, 851, -939, -939, - -939, -939, -939, -939, -939, 318, -939, 319, -939, 1004, - -939, 1005, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, 341, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, 1010, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, 1009, 1017, -939, -939, -939, -939, -939, 1013, -939, - 343, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, 856, 858, -939, -939, 862, -939, 41, - -939, -939, 1018, -939, -939, -939, -939, -939, 352, -939, - -939, -939, -939, -939, -939, 863, 353, -939, 722, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, 706, -939, 1019, 864, - -939, 112, -939, -939, -939, -939, -939, -939, 1021, 865, - 1023, -47, -939, -939, -939, -939, -939, 868, -939, -939, - 1024, -939, 870, -939, -939, 1025, -939, -939, 119, -939, - -23, 1025, -939, -939, 1026, 1027, 1029, -939, 356, -939, - -939, -939, -939, -939, -939, -939, 1030, 869, 873, 874, - 1031, -23, -939, 871, -939, -939, -939, 876, -939, -939, - -939 + 615, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 43, 41, 54, 82, 111, 139, + 141, 190, 192, 209, 245, 267, 271, 274, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 41, -161, 56, 112, 68, 601, + 203, 174, 16, 59, 115, -102, 589, 27, -942, 106, + 126, 118, 212, 269, -942, 283, -942, -942, -942, 289, + 290, 291, -942, -942, -942, -942, -942, -942, 304, 307, + 308, 314, 315, 317, 327, 328, 340, 347, 348, -942, + 351, 355, 356, 367, 369, -942, -942, -942, 370, 387, + 388, -942, -942, -942, -942, -942, -942, -942, 392, 393, + 394, -942, -942, -942, -942, -942, 395, -942, -942, -942, + -942, -942, -942, 396, -942, 402, -942, 39, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, 404, -942, 78, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, 405, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 89, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, 97, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + 334, 412, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 408, -942, -942, 414, -942, -942, + -942, 415, -942, -942, 413, 420, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, 425, + 426, -942, -942, -942, -942, 416, 428, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, 99, + -942, -942, -942, 429, -942, -942, 431, -942, 433, 435, + -942, -942, 436, 438, -942, -942, -942, -942, -942, -942, + -942, 107, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, 439, + 122, -942, -942, -942, -942, 41, 41, -942, 234, 440, + -942, 441, 443, 449, 255, 257, 258, 456, 459, 465, + 466, 468, 471, 278, 280, 284, 285, 286, 279, 293, + 294, 295, 287, 292, 493, 302, 305, 298, 311, 312, + 501, 502, 505, 313, 316, 319, 512, 518, 520, 521, + 524, 527, 528, 329, 341, 344, 531, 542, 544, 545, + 546, 354, 551, 552, 553, 555, 557, 576, 380, 578, + -942, 112, -942, 583, 584, 585, 389, 68, -942, 587, + 588, 590, 594, 595, 596, 403, 597, 600, 602, 601, + -942, 603, 203, -942, 604, 605, 606, 607, 608, 609, + 610, 611, -942, 174, -942, 614, 616, 427, 621, 628, + 629, 418, -942, 59, 630, 434, 437, -942, 115, 637, + 639, -81, -942, 444, 640, 642, 448, 644, 450, 451, + 647, 650, 458, 472, 656, 668, 670, 671, 589, -942, + 681, 490, 27, -942, -942, -942, 689, 586, 687, 692, + 693, -942, -942, -942, 504, 511, 513, 703, 705, 533, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, 519, -942, -942, -942, -942, -942, -116, 522, 525, + -942, -942, -942, 711, 714, 720, 721, 723, 529, 239, + -942, -942, -942, 726, 728, 729, 730, 731, -942, 732, + 733, 734, 735, 530, 538, -942, 751, -942, 752, 195, + 148, -942, -942, 539, 560, 561, 755, 563, 566, -942, + 752, 567, 759, -942, 569, -942, 752, 570, 571, 572, + 573, 574, 575, 579, -942, 580, 581, -942, 582, 591, + 592, -942, -942, 593, -942, -942, -942, 598, 723, -942, + -942, 599, 617, -942, 618, -942, -942, 31, 613, -942, + -942, -116, 619, 620, 622, -942, 771, -942, -942, 41, + 112, 27, 68, 758, -942, -942, -942, 526, 526, 776, + -942, -942, -942, -942, -942, -942, -942, -942, -942, 777, + 778, 779, 781, -942, -942, -942, -942, -942, -942, -942, + -942, -50, 785, 786, 787, 199, 213, 135, 119, 589, + -942, -942, 788, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 791, -942, -942, -942, -942, 101, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, 776, -942, + 125, 150, 151, -942, 164, -942, -942, -942, -942, -942, + -942, 809, 810, 815, 817, 818, -942, -942, -942, -942, + 819, 820, -942, 821, 822, 823, 824, -942, 226, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, 241, -942, 825, 826, -942, -942, 827, 829, -942, + -942, 828, 832, -942, -942, 830, 834, -942, -942, 833, + 835, -942, -942, -942, -942, -942, -942, 61, -942, -942, + -942, -942, -942, -942, -942, 76, -942, -942, 836, 837, + -942, -942, 838, 840, -942, 841, 842, 843, 844, 845, + 846, 242, -942, -942, -942, -942, -942, -942, -942, 847, + 848, 849, -942, 248, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 252, -942, -942, -942, 850, + -942, 851, -942, -942, -942, 256, -942, -942, -942, -942, + -942, 259, -942, 105, -942, 632, -942, 852, 853, -942, + -942, -942, -942, 854, 855, -942, -942, -942, 856, 758, + -942, 859, 860, 861, 862, 658, 666, 660, 667, 672, + 865, 866, 868, 869, 675, 676, 872, 678, 679, 680, + 683, 526, -942, -942, 526, -942, 776, 601, -942, 777, + 59, -942, 778, 115, -942, 779, 300, -942, 781, -50, + -942, 534, 785, -942, 174, -942, 786, -102, -942, 787, + 685, 686, 696, 704, 709, 725, 199, -942, 719, 739, + 742, 213, -942, 875, 884, 135, -942, 724, 900, 745, + 947, 119, -942, -942, 145, 788, -942, -942, 946, 956, + 203, -942, 791, 1009, -942, -942, 643, -942, 350, 762, + 831, 839, -942, -942, -942, -942, -942, 857, 858, 863, + 864, -942, -942, 339, -942, -942, -942, -942, -942, 265, + -942, 272, -942, 1007, -942, 1008, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + 281, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, 1013, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 1012, 1020, -942, -942, -942, + -942, -942, 1016, -942, 299, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, 867, 870, -942, + -942, 871, -942, 41, -942, -942, 1021, -942, -942, -942, + -942, -942, 306, -942, -942, -942, -942, -942, -942, 874, + 337, -942, 752, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 300, -942, 1022, 873, -942, 534, + -942, -942, -942, -942, -942, -942, 1023, 876, 1024, 145, + -942, -942, -942, -942, -942, 878, -942, -942, 1025, -942, + 879, -942, -942, 1026, -942, -942, 144, -942, -18, 1026, + -942, -942, 1027, 1028, 1030, -942, 338, -942, -942, -942, + -942, -942, -942, -942, 1031, 877, 880, 881, 1032, -18, + -942, 883, -942, -942, -942, 885, -942, -942, -942 }; const short @@ -4641,17 +4641,17 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 43, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 56, 5, 60, 7, 175, 9, 333, 11, 533, 13, - 558, 15, 458, 17, 466, 19, 503, 21, 298, 23, - 667, 25, 717, 27, 45, 39, 0, 0, 0, 0, - 0, 560, 0, 468, 505, 0, 0, 0, 47, 0, - 46, 0, 0, 40, 58, 0, 715, 164, 190, 0, - 0, 0, 579, 581, 583, 188, 197, 199, 0, 0, + 56, 5, 60, 7, 175, 9, 339, 11, 539, 13, + 564, 15, 464, 17, 472, 19, 509, 21, 304, 23, + 673, 25, 723, 27, 45, 39, 0, 0, 0, 0, + 0, 566, 0, 474, 511, 0, 0, 0, 47, 0, + 46, 0, 0, 40, 58, 0, 721, 164, 190, 0, + 0, 0, 585, 587, 589, 188, 197, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 143, 150, 152, 0, 0, - 0, 325, 456, 495, 406, 546, 548, 399, 0, 0, - 0, 263, 607, 550, 290, 309, 0, 277, 636, 649, - 665, 156, 158, 0, 726, 0, 123, 0, 62, 64, + 0, 331, 462, 501, 412, 552, 554, 405, 0, 0, + 0, 269, 613, 556, 296, 315, 0, 283, 642, 655, + 671, 156, 158, 0, 732, 0, 123, 0, 62, 64, 65, 66, 67, 68, 102, 103, 104, 105, 106, 69, 97, 86, 87, 88, 110, 111, 112, 113, 114, 115, 116, 117, 108, 109, 118, 119, 120, 122, 72, 73, @@ -4659,25 +4659,25 @@ namespace isc { namespace dhcp { 101, 98, 71, 78, 79, 92, 93, 95, 89, 90, 91, 77, 82, 83, 84, 85, 96, 107, 177, 179, 183, 0, 174, 0, 166, 168, 169, 170, 171, 172, - 173, 384, 386, 388, 525, 382, 390, 0, 394, 392, - 603, 381, 337, 338, 339, 340, 341, 365, 366, 367, - 368, 369, 355, 356, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 0, 335, 344, 360, 361, - 362, 345, 347, 348, 351, 352, 353, 350, 346, 342, - 343, 363, 364, 349, 357, 358, 359, 354, 544, 543, - 539, 540, 538, 0, 535, 537, 541, 542, 601, 589, - 591, 595, 593, 599, 597, 585, 578, 572, 576, 577, - 0, 561, 562, 573, 574, 575, 569, 564, 570, 566, - 567, 568, 571, 565, 0, 485, 243, 0, 489, 487, - 492, 0, 481, 482, 0, 469, 470, 472, 484, 473, - 474, 475, 491, 476, 477, 478, 479, 480, 519, 0, - 0, 517, 518, 521, 522, 0, 506, 507, 509, 510, - 511, 512, 513, 514, 515, 516, 305, 307, 302, 0, - 300, 303, 304, 0, 703, 690, 0, 693, 0, 0, - 697, 701, 0, 0, 707, 709, 711, 713, 688, 686, - 687, 0, 669, 671, 672, 673, 674, 675, 676, 677, - 678, 683, 679, 680, 681, 682, 684, 685, 723, 0, - 0, 719, 721, 722, 44, 0, 0, 37, 0, 0, + 173, 390, 392, 394, 531, 388, 396, 0, 400, 398, + 609, 387, 343, 344, 345, 346, 347, 371, 372, 373, + 374, 375, 361, 362, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 0, 341, 350, 366, 367, + 368, 351, 353, 354, 357, 358, 359, 356, 352, 348, + 349, 369, 370, 355, 363, 364, 365, 360, 550, 549, + 545, 546, 544, 0, 541, 543, 547, 548, 607, 595, + 597, 601, 599, 605, 603, 591, 584, 578, 582, 583, + 0, 567, 568, 579, 580, 581, 575, 570, 576, 572, + 573, 574, 577, 571, 0, 491, 244, 0, 495, 493, + 498, 0, 487, 488, 0, 475, 476, 478, 490, 479, + 480, 481, 497, 482, 483, 484, 485, 486, 525, 0, + 0, 523, 524, 527, 528, 0, 512, 513, 515, 516, + 517, 518, 519, 520, 521, 522, 311, 313, 308, 0, + 306, 309, 310, 0, 709, 696, 0, 699, 0, 0, + 703, 707, 0, 0, 713, 715, 717, 719, 694, 692, + 693, 0, 675, 677, 678, 679, 680, 681, 682, 683, + 684, 689, 685, 686, 687, 688, 690, 691, 729, 0, + 0, 725, 727, 728, 44, 0, 0, 37, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4686,638 +4686,642 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 61, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 334, 0, 0, 534, 0, 0, 0, 0, 0, 0, - 0, 0, 559, 0, 459, 0, 0, 0, 0, 0, - 0, 0, 467, 0, 0, 0, 0, 504, 0, 0, - 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 668, - 0, 0, 0, 718, 48, 41, 0, 0, 0, 0, + 340, 0, 0, 540, 0, 0, 0, 0, 0, 0, + 0, 0, 565, 0, 465, 0, 0, 0, 0, 0, + 0, 0, 473, 0, 0, 0, 0, 510, 0, 0, + 0, 0, 305, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, + 0, 0, 0, 724, 48, 41, 0, 0, 0, 0, 0, 137, 138, 139, 0, 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 0, 161, 162, 140, 141, 142, 0, 0, 0, 154, 155, 160, 0, 0, 0, 0, 0, 0, 0, - 396, 397, 398, 0, 0, 0, 0, 0, 635, 0, + 402, 403, 404, 0, 0, 0, 0, 0, 641, 0, 0, 0, 0, 0, 0, 163, 0, 63, 0, 0, - 0, 187, 167, 0, 0, 0, 0, 0, 0, 405, - 0, 0, 0, 336, 0, 536, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 0, 0, 483, 0, 0, - 0, 494, 471, 0, 523, 524, 508, 0, 0, 301, - 689, 0, 0, 692, 0, 695, 696, 0, 0, 705, - 706, 0, 0, 0, 0, 670, 0, 725, 720, 0, - 0, 0, 0, 0, 580, 582, 584, 0, 0, 201, - 136, 145, 146, 147, 148, 149, 144, 151, 153, 327, - 460, 497, 408, 38, 547, 549, 401, 402, 403, 404, - 400, 0, 0, 552, 292, 0, 0, 0, 0, 0, + 0, 187, 167, 0, 0, 0, 0, 0, 0, 411, + 0, 0, 0, 342, 0, 542, 0, 0, 0, 0, + 0, 0, 0, 0, 569, 0, 0, 489, 0, 0, + 0, 500, 477, 0, 529, 530, 514, 0, 0, 307, + 695, 0, 0, 698, 0, 701, 702, 0, 0, 711, + 712, 0, 0, 0, 0, 676, 0, 731, 726, 0, + 0, 0, 0, 0, 586, 588, 590, 0, 0, 201, + 136, 145, 146, 147, 148, 149, 144, 151, 153, 333, + 466, 503, 414, 38, 553, 555, 407, 408, 409, 410, + 406, 0, 0, 558, 298, 0, 0, 0, 0, 0, 157, 159, 0, 49, 178, 181, 182, 180, 185, 186, - 184, 385, 387, 389, 527, 383, 391, 395, 393, 0, - 545, 602, 590, 592, 596, 594, 600, 598, 586, 486, - 244, 490, 488, 493, 520, 306, 308, 704, 691, 694, - 699, 700, 698, 702, 708, 710, 712, 714, 201, 42, - 0, 0, 0, 195, 0, 192, 194, 230, 236, 238, - 240, 0, 0, 0, 0, 0, 252, 254, 256, 258, - 0, 0, 0, 0, 0, 0, 229, 0, 207, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 222, - 223, 224, 219, 225, 226, 227, 220, 221, 228, 0, - 205, 0, 202, 203, 331, 0, 328, 329, 464, 0, - 461, 462, 501, 0, 498, 499, 412, 0, 409, 410, - 272, 273, 274, 275, 276, 0, 265, 267, 268, 269, - 270, 271, 611, 0, 609, 556, 0, 553, 554, 296, - 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, - 311, 313, 314, 315, 316, 317, 318, 0, 0, 0, - 286, 0, 279, 281, 282, 283, 284, 285, 645, 647, - 644, 642, 643, 0, 638, 640, 641, 0, 660, 0, - 663, 656, 657, 0, 651, 653, 654, 655, 658, 0, - 730, 0, 728, 51, 531, 0, 528, 529, 587, 605, - 606, 0, 0, 59, 716, 165, 0, 0, 191, 0, + 184, 391, 393, 395, 533, 389, 397, 401, 399, 0, + 551, 608, 596, 598, 602, 600, 606, 604, 592, 492, + 245, 496, 494, 499, 526, 312, 314, 710, 697, 700, + 705, 706, 704, 708, 714, 716, 718, 720, 201, 42, + 0, 0, 0, 195, 0, 192, 194, 231, 237, 239, + 241, 0, 0, 0, 0, 0, 253, 255, 257, 259, + 0, 0, 263, 0, 0, 0, 0, 230, 0, 207, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 223, 224, 225, 219, 226, 227, 228, 220, 221, 222, + 229, 0, 205, 0, 202, 203, 337, 0, 334, 335, + 470, 0, 467, 468, 507, 0, 504, 505, 418, 0, + 415, 416, 278, 279, 280, 281, 282, 0, 271, 273, + 274, 275, 276, 277, 617, 0, 615, 562, 0, 559, + 560, 302, 0, 299, 300, 0, 0, 0, 0, 0, + 0, 0, 317, 319, 320, 321, 322, 323, 324, 0, + 0, 0, 292, 0, 285, 287, 288, 289, 290, 291, + 651, 653, 650, 648, 649, 0, 644, 646, 647, 0, + 666, 0, 669, 662, 663, 0, 657, 659, 660, 661, + 664, 0, 736, 0, 734, 51, 537, 0, 534, 535, + 593, 611, 612, 0, 0, 59, 722, 165, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, - 198, 0, 200, 0, 0, 326, 0, 468, 457, 0, - 505, 496, 0, 0, 407, 0, 0, 264, 613, 0, - 608, 560, 551, 0, 0, 291, 0, 0, 0, 0, - 0, 0, 0, 0, 310, 0, 0, 0, 0, 278, - 0, 0, 0, 637, 0, 0, 0, 0, 0, 650, - 666, 0, 0, 727, 53, 0, 52, 0, 526, 0, - 0, 604, 724, 0, 193, 0, 0, 0, 0, 242, - 245, 246, 247, 248, 0, 0, 0, 0, 260, 261, - 249, 250, 251, 262, 208, 0, 204, 0, 330, 0, - 463, 0, 500, 455, 434, 435, 436, 419, 420, 439, - 440, 441, 442, 443, 422, 423, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 416, 417, 418, - 432, 433, 429, 430, 431, 428, 0, 414, 421, 437, - 438, 424, 425, 426, 427, 411, 266, 632, 0, 627, - 628, 629, 630, 631, 620, 621, 625, 626, 622, 623, - 624, 0, 614, 615, 617, 618, 619, 610, 0, 555, - 0, 295, 319, 320, 321, 322, 323, 324, 312, 287, - 288, 289, 280, 0, 0, 639, 659, 0, 662, 0, - 652, 744, 0, 742, 740, 734, 738, 739, 0, 732, - 736, 737, 735, 729, 50, 0, 0, 530, 0, 196, - 232, 233, 234, 235, 231, 237, 239, 241, 253, 255, - 257, 259, 206, 332, 465, 502, 0, 413, 0, 0, - 612, 0, 557, 297, 646, 648, 661, 664, 0, 0, - 0, 0, 731, 54, 532, 588, 415, 0, 634, 616, - 0, 741, 0, 733, 633, 0, 743, 748, 0, 746, - 0, 0, 745, 757, 0, 0, 0, 762, 0, 750, - 752, 753, 754, 755, 756, 747, 0, 0, 0, 0, - 0, 0, 749, 0, 759, 760, 761, 0, 751, 758, - 763 + 0, 0, 189, 198, 0, 200, 0, 0, 332, 0, + 474, 463, 0, 511, 502, 0, 0, 413, 0, 0, + 270, 619, 0, 614, 566, 557, 0, 0, 297, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, + 0, 0, 284, 0, 0, 0, 643, 0, 0, 0, + 0, 0, 656, 672, 0, 0, 733, 53, 0, 52, + 0, 532, 0, 0, 610, 730, 0, 193, 0, 0, + 0, 0, 243, 246, 247, 248, 249, 0, 0, 0, + 0, 261, 262, 0, 250, 251, 252, 268, 208, 0, + 204, 0, 336, 0, 469, 0, 506, 461, 440, 441, + 442, 425, 426, 445, 446, 447, 448, 449, 428, 429, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 422, 423, 424, 438, 439, 435, 436, 437, 434, + 0, 420, 427, 443, 444, 430, 431, 432, 433, 417, + 272, 638, 0, 633, 634, 635, 636, 637, 626, 627, + 631, 632, 628, 629, 630, 0, 620, 621, 623, 624, + 625, 616, 0, 561, 0, 301, 325, 326, 327, 328, + 329, 330, 318, 293, 294, 295, 286, 0, 0, 645, + 665, 0, 668, 0, 658, 750, 0, 748, 746, 740, + 744, 745, 0, 738, 742, 743, 741, 735, 50, 0, + 0, 536, 0, 196, 233, 234, 235, 236, 232, 238, + 240, 242, 254, 256, 258, 260, 265, 266, 267, 264, + 206, 338, 471, 508, 0, 419, 0, 0, 618, 0, + 563, 303, 652, 654, 667, 670, 0, 0, 0, 0, + 737, 54, 538, 594, 421, 0, 640, 622, 0, 747, + 0, 739, 639, 0, 749, 754, 0, 752, 0, 0, + 751, 763, 0, 0, 0, 768, 0, 756, 758, 759, + 760, 761, 762, 753, 0, 0, 0, 0, 0, 0, + 755, 0, 765, 766, 767, 0, 757, 764, 769 }; const short Dhcp4Parser::yypgoto_[] = { - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -52, -939, -538, -939, 380, - -939, -939, -939, -939, -939, -939, -596, -939, -939, -939, - -67, -939, -939, -939, -939, -939, -939, 366, 569, -24, - 1, 11, -40, -28, -1, 19, 22, 26, 29, -939, - -939, -939, -939, 30, 32, 34, 37, 40, 44, -939, - 376, 45, -939, 47, -939, 48, 50, 51, -939, 52, - -939, 55, -939, -939, -939, -939, -939, 367, 570, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, 124, -939, -939, -939, -939, - -939, -939, 284, -939, 95, -939, -665, 105, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -63, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, 90, -939, -939, -939, -939, -939, -939, -939, -939, - 73, -939, -939, -939, -939, -939, -939, -939, 82, -939, - -939, -939, 85, 533, -939, -939, -939, -939, -939, -939, - -939, 80, -939, -939, -939, -939, -939, -939, -938, -939, - -939, -939, 113, -939, -939, -939, 111, 583, -939, -939, - -939, -939, -939, -939, -939, -939, -932, -939, -65, -939, - 66, -939, 58, 62, 63, 65, -939, -939, -939, -939, - -939, -939, -939, 103, -939, -939, -85, -46, -939, -939, - -939, -939, -939, 125, -939, -939, -939, 128, -939, 571, - -939, -42, -939, -939, -939, -939, -939, -36, -939, -939, - -939, -939, -939, -35, -939, -939, -939, 129, -939, -939, - -939, 123, -939, 572, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, 77, -939, -939, -939, 81, - 585, -939, -939, -51, -939, -11, -939, -25, -939, -939, - -939, 117, -939, -939, -939, 118, -939, 580, -55, -939, - 0, -939, 7, -939, 357, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -926, -939, -939, -939, -939, -939, 133, -939, - -939, -939, -79, -939, -939, -939, -939, -939, -939, -939, - -939, 106, -939, -939, -939, -939, -939, -939, -939, 107, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - 378, 573, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, -939, -939, -939, -939, -939, -939, -939, -939, -939, - -939, 432, 576, -939, -939, -939, -939, -939, -939, 93, - -939, -939, -75, -939, -939, -939, -939, -939, -939, -94, - -939, -939, -111, -939, -939, -939, -939, -939, -939, -939 + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -52, -942, -554, -942, 390, + -942, -942, -942, -942, -942, -942, -599, -942, -942, -942, + -67, -942, -942, -942, -942, -942, -942, 371, 568, -24, + 1, 11, -40, -28, -1, 19, 22, 26, 29, -942, + -942, -942, -942, 30, 32, 34, 37, 40, 44, -942, + 379, 45, -942, 47, -942, 48, 50, 51, -942, 52, + -942, 55, -942, -942, -942, -942, -942, 372, 565, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 124, -942, -942, -942, -942, + -942, -942, 288, -942, 102, -942, -665, 104, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -63, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 88, -942, -942, -942, -942, -942, + -942, -942, -942, 69, -942, -942, -942, -942, -942, -942, + -942, 80, -942, -942, -942, 84, 532, -942, -942, -942, + -942, -942, -942, -942, 81, -942, -942, -942, -942, -942, + -942, -941, -942, -942, -942, 103, -942, -942, -942, 113, + 626, -942, -942, -942, -942, -942, -942, -942, -942, -932, + -942, -65, -942, 66, -942, 58, 62, 63, 65, -942, + -942, -942, -942, -942, -942, -942, 96, -942, -942, -106, + -46, -942, -942, -942, -942, -942, 121, -942, -942, -942, + 109, -942, 550, -942, -42, -942, -942, -942, -942, -942, + -36, -942, -942, -942, -942, -942, -35, -942, -942, -942, + 127, -942, -942, -942, 114, -942, 577, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, 83, -942, + -942, -942, 64, 612, -942, -942, -51, -942, -11, -942, + -25, -942, -942, -942, 120, -942, -942, -942, 123, -942, + 623, -55, -942, 0, -942, 7, -942, 359, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -928, -942, -942, -942, -942, + -942, 108, -942, -942, -942, -85, -942, -942, -942, -942, + -942, -942, -942, -942, 132, -942, -942, -942, -942, -942, + -942, -942, 98, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, 381, 554, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, 422, 549, -942, -942, -942, -942, + -942, -942, 110, -942, -942, -83, -942, -942, -942, -942, + -942, -942, -105, -942, -942, -121, -942, -942, -942, -942, + -942, -942, -942 }; const short Dhcp4Parser::yydefgoto_[] = { - 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 36, 37, 38, 65, 694, - 82, 83, 39, 64, 79, 80, 714, 903, 995, 996, - 786, 41, 66, 85, 409, 43, 67, 147, 148, 149, + 82, 83, 39, 64, 79, 80, 714, 905, 998, 999, + 787, 41, 66, 85, 409, 43, 67, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 434, 161, 162, 163, 164, 165, 166, 167, 440, 686, 168, 441, 169, 442, 170, 171, 172, 466, 173, 467, 174, 175, 176, 177, 178, 412, 213, 214, 45, 68, 215, 473, 216, 474, 717, 217, 475, 720, 218, - 179, 420, 180, 413, 764, 765, 766, 916, 181, 421, - 182, 422, 811, 812, 813, 941, 787, 788, 789, 919, - 1144, 790, 920, 791, 921, 792, 922, 793, 794, 506, - 795, 796, 797, 798, 799, 800, 801, 802, 928, 803, - 929, 804, 930, 805, 931, 806, 807, 808, 183, 456, - 835, 836, 837, 838, 839, 840, 841, 184, 462, 871, - 872, 873, 874, 875, 185, 459, 850, 851, 852, 964, - 59, 75, 359, 360, 361, 519, 362, 520, 186, 460, - 859, 860, 861, 862, 863, 864, 865, 866, 187, 446, - 815, 816, 817, 944, 47, 69, 255, 256, 257, 483, - 258, 479, 259, 480, 260, 481, 261, 484, 262, 487, - 263, 486, 188, 189, 190, 191, 452, 700, 268, 192, - 449, 827, 828, 829, 953, 1066, 1067, 193, 447, 53, - 72, 819, 820, 821, 947, 55, 73, 324, 325, 326, - 327, 328, 329, 330, 505, 331, 509, 332, 508, 333, - 334, 510, 335, 194, 448, 823, 824, 825, 950, 57, - 74, 345, 346, 347, 348, 349, 514, 350, 351, 352, - 353, 270, 482, 905, 906, 907, 997, 49, 70, 283, - 284, 285, 491, 195, 450, 196, 451, 197, 458, 846, - 847, 848, 961, 51, 71, 300, 301, 302, 198, 417, - 199, 418, 200, 419, 306, 501, 910, 1000, 307, 495, - 308, 496, 309, 498, 310, 497, 311, 500, 312, 499, - 313, 494, 277, 488, 911, 201, 457, 843, 844, 958, - 1091, 1092, 1093, 1094, 1095, 1158, 1096, 202, 203, 463, - 883, 884, 885, 980, 886, 981, 204, 464, 893, 894, - 895, 896, 985, 897, 898, 987, 205, 465, 61, 76, - 381, 382, 383, 384, 525, 385, 386, 527, 387, 388, - 389, 530, 752, 390, 531, 391, 524, 392, 393, 394, - 534, 395, 535, 396, 536, 397, 537, 206, 411, 63, - 77, 400, 401, 402, 540, 403, 207, 469, 901, 902, - 991, 1128, 1129, 1130, 1131, 1170, 1132, 1168, 1188, 1189, - 1190, 1198, 1199, 1200, 1206, 1201, 1202, 1203, 1204, 1210 + 179, 420, 180, 413, 764, 765, 766, 918, 181, 421, + 182, 422, 813, 814, 815, 944, 788, 789, 790, 921, + 1148, 791, 922, 792, 923, 793, 924, 794, 795, 506, + 796, 797, 798, 799, 800, 801, 802, 803, 930, 804, + 931, 805, 932, 806, 933, 807, 808, 809, 936, 1159, + 810, 183, 456, 837, 838, 839, 840, 841, 842, 843, + 184, 462, 873, 874, 875, 876, 877, 185, 459, 852, + 853, 854, 967, 59, 75, 359, 360, 361, 519, 362, + 520, 186, 460, 861, 862, 863, 864, 865, 866, 867, + 868, 187, 446, 817, 818, 819, 947, 47, 69, 255, + 256, 257, 483, 258, 479, 259, 480, 260, 481, 261, + 484, 262, 487, 263, 486, 188, 189, 190, 191, 452, + 700, 268, 192, 449, 829, 830, 831, 956, 1070, 1071, + 193, 447, 53, 72, 821, 822, 823, 950, 55, 73, + 324, 325, 326, 327, 328, 329, 330, 505, 331, 509, + 332, 508, 333, 334, 510, 335, 194, 448, 825, 826, + 827, 953, 57, 74, 345, 346, 347, 348, 349, 514, + 350, 351, 352, 353, 270, 482, 907, 908, 909, 1000, + 49, 70, 283, 284, 285, 491, 195, 450, 196, 451, + 197, 458, 848, 849, 850, 964, 51, 71, 300, 301, + 302, 198, 417, 199, 418, 200, 419, 306, 501, 912, + 1003, 307, 495, 308, 496, 309, 498, 310, 497, 311, + 500, 312, 499, 313, 494, 277, 488, 913, 201, 457, + 845, 846, 961, 1095, 1096, 1097, 1098, 1099, 1166, 1100, + 202, 203, 463, 885, 886, 887, 983, 888, 984, 204, + 464, 895, 896, 897, 898, 988, 899, 900, 990, 205, + 465, 61, 76, 381, 382, 383, 384, 525, 385, 386, + 527, 387, 388, 389, 530, 752, 390, 531, 391, 524, + 392, 393, 394, 534, 395, 535, 396, 536, 397, 537, + 206, 411, 63, 77, 400, 401, 402, 540, 403, 207, + 469, 903, 904, 994, 1132, 1133, 1134, 1135, 1178, 1136, + 1176, 1196, 1197, 1198, 1206, 1207, 1208, 1214, 1209, 1210, + 1211, 1212, 1218 }; const short Dhcp4Parser::yytable_[] = { 146, 212, 231, 279, 296, 280, 322, 341, 358, 378, - 323, 342, 78, 809, 274, 1058, 303, 219, 271, 286, - 298, 1059, 336, 354, 727, 379, 314, 1074, 750, 235, - 731, 28, 343, 81, 269, 282, 297, 84, 344, 316, - 40, 236, 356, 357, 273, 232, 29, 122, 30, 693, - 31, 125, 126, 681, 682, 683, 684, 220, 272, 287, - 299, 407, 337, 355, 42, 380, 398, 399, 237, 275, - 233, 304, 471, 405, 477, 44, 276, 472, 305, 478, - 234, 956, 208, 209, 957, 685, 210, 959, 238, 211, - 960, 239, 92, 93, 94, 240, 125, 126, 241, 242, - 489, 243, 492, 244, 404, 490, 245, 493, 145, 246, - 693, 46, 992, 247, 248, 993, 249, 250, 521, 251, - 252, 253, 1191, 522, 254, 1192, 1121, 264, 1122, 1123, - 538, 265, 266, 48, 267, 539, 281, 867, 868, 869, - 92, 93, 94, 356, 357, 542, 123, 145, 315, 123, - 543, 1193, 715, 716, 1194, 1195, 1196, 1197, 278, 125, - 126, 50, 125, 126, 52, 125, 126, 471, 54, 98, - 99, 100, 913, 751, 228, 542, 288, 229, 718, 719, - 914, 56, 289, 290, 291, 292, 293, 294, 477, 295, - 917, 58, 145, 915, 938, 918, 122, 123, 316, 939, - 316, 60, 317, 318, 938, 62, 319, 320, 321, 940, - 125, 126, 125, 126, 125, 126, 406, 973, 1058, 408, - 125, 126, 974, 410, 1059, 414, 1077, 1078, 978, 546, - 1074, 86, 415, 979, 87, 32, 33, 34, 35, 830, - 831, 832, 833, 88, 834, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 416, 145, 295, 908, 145, 878, - 879, 145, 316, 338, 317, 318, 339, 340, 887, 888, - 889, 423, 424, 425, 125, 126, 1025, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 426, 982, 502, 122, 123, 145, 983, 145, 988, - 145, 427, 538, 503, 989, 124, 890, 990, 125, 126, - 428, 938, 489, 127, 125, 126, 1152, 1153, 128, 129, - 130, 131, 132, 696, 697, 698, 699, 133, 853, 854, - 855, 856, 857, 858, 1156, 504, 521, 134, 429, 1157, - 135, 1163, 430, 544, 545, 1171, 492, 136, 137, 1211, - 1172, 1174, 138, 431, 1212, 139, 432, 433, 435, 140, - 145, 1140, 1141, 1142, 1143, 436, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 141, - 142, 143, 144, 437, 438, 376, 377, 439, 443, 444, - 445, 453, 551, 454, 146, 455, 461, 468, 470, 476, - 212, 485, 507, 511, 145, 513, 552, 515, 512, 516, - 145, 518, 231, 523, 517, 279, 219, 280, 526, 528, - 529, 532, 533, 541, 274, 547, 296, 548, 271, 549, - 550, 286, 553, 554, 555, 556, 322, 557, 303, 235, - 323, 341, 298, 558, 269, 342, 559, 282, 560, 561, - 562, 236, 336, 565, 273, 232, 220, 354, 297, 563, - 564, 378, 566, 567, 568, 569, 343, 570, 272, 571, - 572, 287, 344, 573, 574, 577, 575, 379, 237, 275, - 233, 576, 299, 578, 579, 580, 276, 581, 582, 583, - 234, 584, 337, 304, 585, 586, 587, 355, 238, 588, - 305, 239, 589, 593, 590, 240, 594, 591, 241, 242, - 592, 243, 595, 244, 596, 597, 245, 380, 598, 246, - 599, 600, 601, 247, 248, 602, 249, 250, 603, 251, - 252, 253, 1175, 604, 254, 606, 605, 264, 608, 609, - 610, 265, 266, 613, 267, 611, 767, 614, 281, 615, - 616, 768, 769, 770, 771, 772, 773, 774, 775, 776, - 777, 778, 779, 780, 781, 782, 783, 784, 785, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 617, 618, 620, 619, 621, 622, 624, 626, - 627, 628, 629, 146, 630, 212, 631, 632, 316, 637, - 633, 635, 636, 638, 639, 640, 643, 759, 641, 644, - 645, 219, 647, 648, 651, 652, 654, 650, 657, 653, - 658, 90, 91, 92, 93, 94, 661, 655, 662, 870, - 880, 656, 378, 663, 659, 660, 664, 666, 667, 669, - 674, 670, 675, 671, 672, 876, 881, 891, 379, 673, - 676, 220, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 677, 678, 679, 689, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 680, 221, 222, 223, 690, - 123, 691, 687, 688, 692, 877, 882, 892, 380, 30, - 695, 224, 701, 125, 126, 225, 226, 227, 127, 702, - 703, 710, 704, 128, 129, 130, 145, 705, 228, 706, - 707, 229, 133, 708, 709, 712, 711, 713, 724, 230, - 721, 722, 90, 91, 92, 93, 94, 723, 729, 753, - 758, 725, 726, 763, 728, 730, 732, 810, 733, 814, - 818, 734, 735, 736, 737, 738, 739, 740, 741, 742, - 743, 744, 745, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 747, 141, 142, 748, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 822, 826, 842, - 845, 123, 316, 749, 849, 755, 900, 904, 756, 145, - 923, 924, 925, 926, 125, 126, 927, 226, 757, 127, - 932, 933, 934, 935, 128, 129, 130, 936, 937, 228, - 943, 942, 229, 946, 945, 948, 949, 951, 952, 994, - 230, 955, 954, 962, 963, 965, 966, 1010, 967, 968, - 969, 970, 971, 972, 975, 976, 977, 984, 986, 999, - 1009, 998, 1011, 1003, 1002, 1001, 1005, 1006, 1007, 1008, - 1012, 1014, 1013, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1113, 1023, 1022, 1102, 1103, 141, 142, 231, 1104, 1109, - 322, 1114, 1105, 341, 323, 1106, 1033, 342, 1060, 274, - 1057, 1079, 1116, 271, 296, 1083, 336, 358, 1071, 354, - 145, 1117, 1069, 1088, 235, 1119, 303, 1086, 343, 269, - 298, 870, 1084, 1037, 344, 880, 236, 1134, 1068, 273, - 232, 1107, 1110, 1085, 1124, 1038, 297, 876, 1125, 1034, - 279, 881, 280, 272, 1080, 1135, 337, 891, 1138, 355, - 1126, 1111, 1070, 237, 275, 233, 286, 1087, 1118, 1139, - 299, 276, 1039, 1072, 1035, 234, 1145, 1146, 1089, 1081, - 1073, 304, 282, 238, 1036, 1090, 239, 877, 305, 1082, - 240, 882, 1040, 241, 242, 1041, 243, 892, 244, 1042, - 1127, 245, 1043, 1044, 246, 1045, 287, 1046, 247, 248, - 1047, 249, 250, 1048, 251, 252, 253, 1049, 1050, 254, - 1051, 1052, 264, 1053, 1054, 1055, 265, 266, 1056, 267, - 1147, 1062, 1154, 1155, 1159, 1063, 1064, 1160, 1065, 1061, - 1161, 1162, 1169, 1177, 1148, 1180, 1149, 1182, 746, 1185, - 1207, 1208, 1187, 1209, 1213, 1217, 760, 754, 1026, 762, - 607, 1004, 912, 1024, 1150, 1151, 1076, 612, 1101, 1100, - 1164, 1112, 1165, 1108, 649, 1027, 1166, 1173, 1075, 1028, - 1181, 1178, 1184, 281, 1186, 1219, 1214, 1167, 1215, 1216, - 1220, 1176, 623, 1031, 1030, 1029, 1137, 625, 1136, 1098, - 1099, 1032, 1179, 634, 642, 1133, 909, 899, 1115, 1033, - 646, 1060, 1097, 1057, 1079, 1120, 1183, 1205, 1083, 0, - 1218, 1071, 0, 761, 1124, 1069, 1088, 0, 1125, 0, - 1086, 665, 0, 0, 0, 1084, 1037, 0, 668, 0, - 1126, 1068, 0, 0, 0, 0, 1085, 0, 1038, 0, - 0, 0, 1034, 0, 0, 0, 0, 1080, 0, 0, - 0, 0, 0, 0, 0, 1070, 0, 0, 0, 0, - 1087, 0, 0, 0, 0, 1039, 1072, 1035, 0, 0, - 1127, 1089, 1081, 1073, 0, 0, 0, 1036, 1090, 0, - 0, 0, 1082, 0, 0, 1040, 0, 0, 1041, 0, - 0, 0, 1042, 0, 0, 1043, 1044, 0, 1045, 0, - 1046, 0, 0, 1047, 0, 0, 1048, 0, 0, 0, - 1049, 1050, 0, 1051, 1052, 0, 1053, 1054, 1055, 0, - 0, 1056, 0, 0, 1062, 0, 0, 0, 1063, 1064, - 0, 1065, 1061 + 323, 342, 78, 811, 274, 1062, 303, 219, 271, 286, + 298, 727, 336, 354, 1063, 379, 314, 731, 1078, 235, + 356, 357, 343, 693, 269, 282, 297, 81, 344, 398, + 399, 236, 471, 28, 273, 232, 29, 472, 30, 750, + 31, 356, 357, 681, 682, 683, 684, 220, 272, 287, + 299, 40, 337, 355, 959, 380, 84, 960, 237, 275, + 233, 304, 832, 833, 834, 835, 276, 836, 305, 962, + 234, 477, 963, 208, 209, 685, 478, 210, 238, 42, + 211, 239, 489, 315, 693, 240, 145, 490, 241, 242, + 492, 243, 521, 244, 122, 493, 245, 522, 995, 246, + 538, 996, 404, 247, 248, 539, 249, 250, 44, 251, + 252, 253, 406, 86, 254, 542, 87, 264, 471, 405, + 543, 265, 266, 915, 267, 88, 281, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 46, 1199, 48, 316, + 1200, 317, 318, 542, 477, 319, 320, 321, 916, 917, + 1201, 125, 126, 1202, 1203, 1204, 1205, 919, 718, 719, + 125, 126, 920, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 50, 751, 52, + 122, 123, 92, 93, 94, 316, 338, 317, 318, 339, + 340, 124, 715, 716, 125, 126, 54, 125, 126, 127, + 407, 125, 126, 1062, 128, 129, 130, 131, 132, 941, + 295, 910, 1063, 133, 942, 316, 1078, 125, 126, 32, + 33, 34, 35, 134, 941, 976, 135, 125, 126, 943, + 977, 981, 56, 136, 137, 985, 982, 145, 138, 991, + 986, 139, 538, 123, 992, 140, 145, 993, 941, 889, + 890, 891, 408, 1160, 58, 489, 125, 126, 60, 1029, + 1161, 62, 880, 881, 1164, 141, 142, 143, 144, 1165, + 288, 410, 123, 414, 415, 416, 289, 290, 291, 292, + 293, 294, 521, 295, 278, 125, 126, 1171, 423, 1179, + 145, 424, 425, 145, 1180, 125, 126, 892, 426, 427, + 228, 428, 1125, 229, 1126, 1127, 90, 91, 92, 93, + 94, 429, 430, 145, 855, 856, 857, 858, 859, 860, + 492, 1219, 502, 145, 431, 1182, 1220, 696, 697, 698, + 699, 432, 433, 544, 545, 435, 869, 870, 871, 436, + 437, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 438, 145, 439, 443, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 1144, 1145, 1146, 1147, 123, + 316, 444, 445, 1156, 1157, 1158, 453, 454, 455, 461, + 468, 145, 125, 126, 146, 226, 470, 127, 476, 485, + 212, 145, 128, 129, 130, 503, 504, 228, 507, 511, + 229, 512, 231, 513, 517, 279, 219, 280, 230, 515, + 516, 518, 546, 523, 274, 526, 296, 528, 271, 529, + 532, 286, 533, 541, 547, 548, 322, 549, 303, 235, + 323, 341, 298, 550, 269, 342, 551, 282, 552, 553, + 554, 236, 336, 555, 273, 232, 220, 354, 297, 556, + 557, 378, 558, 141, 142, 559, 343, 560, 272, 561, + 565, 287, 344, 562, 563, 564, 569, 379, 237, 275, + 233, 570, 299, 566, 567, 568, 276, 571, 145, 574, + 234, 572, 337, 304, 573, 577, 578, 355, 238, 579, + 305, 239, 575, 576, 580, 240, 583, 581, 241, 242, + 582, 243, 584, 244, 585, 586, 245, 380, 587, 246, + 590, 588, 589, 247, 248, 593, 249, 250, 679, 251, + 252, 253, 591, 1183, 254, 592, 594, 264, 595, 596, + 597, 265, 266, 598, 267, 599, 600, 601, 281, 602, + 767, 603, 92, 93, 94, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 604, 605, 606, 783, 784, 785, 786, 608, 609, 610, + 611, 613, 614, 670, 615, 98, 99, 100, 616, 617, + 618, 620, 619, 146, 621, 212, 622, 624, 626, 627, + 628, 629, 630, 631, 632, 633, 316, 759, 635, 641, + 636, 219, 122, 123, 316, 638, 637, 90, 91, 92, + 93, 94, 639, 640, 643, 644, 125, 126, 645, 872, + 882, 647, 378, 648, 651, 650, 652, 653, 654, 655, + 656, 657, 1081, 1082, 658, 878, 883, 893, 379, 659, + 661, 220, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 662, 660, 663, 664, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 666, 221, 222, 223, 667, + 123, 125, 126, 669, 671, 879, 884, 894, 380, 672, + 673, 224, 674, 125, 126, 225, 226, 227, 127, 675, + 677, 676, 678, 128, 129, 130, 689, 680, 228, 690, + 687, 229, 133, 688, 145, 691, 692, 695, 710, 230, + 30, 701, 145, 702, 703, 704, 711, 721, 705, 706, + 707, 708, 709, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 712, 713, 722, 723, + 724, 725, 376, 377, 726, 728, 729, 730, 732, 733, + 734, 735, 736, 737, 141, 142, 758, 738, 739, 740, + 741, 753, 763, 812, 816, 820, 824, 145, 828, 742, + 743, 744, 844, 847, 851, 902, 745, 747, 906, 145, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 925, 926, 748, 749, 755, 756, 927, + 757, 928, 929, 934, 935, 937, 938, 939, 940, 946, + 997, 945, 949, 948, 951, 952, 954, 955, 958, 957, + 966, 1143, 965, 969, 968, 970, 971, 972, 973, 974, + 975, 978, 979, 980, 987, 989, 1002, 1012, 1001, 1014, + 1006, 1005, 1004, 1008, 1009, 1010, 1011, 1013, 1015, 1017, + 1018, 1016, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1117, + 231, 1026, 1027, 322, 1106, 1107, 341, 323, 1118, 1037, + 342, 1064, 274, 1061, 1083, 1108, 271, 296, 1087, 336, + 358, 1075, 354, 1109, 1121, 1073, 1092, 235, 1110, 303, + 1090, 343, 269, 298, 872, 1088, 1041, 344, 882, 236, + 1113, 1072, 273, 232, 1111, 1120, 1089, 1128, 1042, 297, + 878, 1129, 1038, 279, 883, 280, 272, 1084, 1114, 337, + 893, 1115, 355, 1130, 1122, 1074, 237, 275, 233, 286, + 1091, 1123, 1138, 299, 276, 1043, 1076, 1039, 234, 1139, + 1149, 1093, 1085, 1077, 304, 282, 238, 1040, 1094, 239, + 879, 305, 1086, 240, 884, 1044, 241, 242, 1045, 243, + 894, 244, 1046, 1131, 245, 1047, 1048, 246, 1049, 287, + 1050, 247, 248, 1051, 249, 250, 1052, 251, 252, 253, + 1053, 1054, 254, 1055, 1056, 264, 1057, 1058, 1059, 265, + 266, 1060, 267, 1142, 1066, 1162, 1163, 1167, 1067, 1068, + 1168, 1069, 1065, 1169, 1170, 1177, 1185, 1188, 1190, 1150, + 1193, 1215, 1216, 1195, 1217, 1221, 1225, 1151, 746, 607, + 754, 760, 612, 1007, 762, 1028, 914, 1080, 1030, 1105, + 1116, 1104, 1032, 649, 1079, 1152, 1153, 1112, 1184, 1033, + 1031, 1154, 1155, 642, 1140, 1172, 281, 1035, 1173, 1174, + 1101, 1175, 1181, 1034, 1186, 1189, 1192, 1194, 1222, 1223, + 1224, 1227, 1036, 1228, 1187, 1141, 1103, 1102, 911, 1124, + 901, 668, 665, 761, 1213, 646, 1191, 1037, 1226, 1064, + 0, 1061, 1083, 0, 625, 1137, 1087, 0, 0, 1075, + 0, 0, 1128, 1073, 1092, 623, 1129, 1119, 1090, 0, + 0, 0, 0, 1088, 1041, 0, 634, 0, 1130, 1072, + 0, 0, 0, 0, 1089, 0, 1042, 0, 0, 0, + 1038, 0, 0, 0, 0, 1084, 0, 0, 0, 0, + 0, 0, 0, 1074, 0, 0, 0, 0, 1091, 0, + 0, 0, 0, 1043, 1076, 1039, 0, 0, 1131, 1093, + 1085, 1077, 0, 0, 0, 1040, 1094, 0, 0, 0, + 1086, 0, 0, 1044, 0, 0, 1045, 0, 0, 0, + 1046, 0, 0, 1047, 1048, 0, 1049, 0, 1050, 0, + 0, 1051, 0, 0, 1052, 0, 0, 0, 1053, 1054, + 0, 1055, 1056, 0, 1057, 1058, 1059, 0, 0, 1060, + 0, 0, 1066, 0, 0, 0, 1067, 1068, 0, 1069, + 1065 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 70, 73, 74, 75, 76, - 73, 74, 64, 678, 69, 953, 71, 68, 69, 70, - 71, 953, 73, 74, 620, 76, 72, 953, 18, 69, - 626, 0, 74, 194, 69, 70, 71, 10, 74, 86, - 7, 69, 128, 129, 69, 69, 5, 84, 7, 587, - 9, 98, 99, 165, 166, 167, 168, 68, 69, 70, - 71, 8, 73, 74, 7, 76, 12, 13, 69, 69, - 69, 71, 3, 3, 3, 7, 69, 8, 71, 8, - 69, 3, 15, 16, 6, 197, 19, 3, 69, 22, - 6, 69, 28, 29, 30, 69, 98, 99, 69, 69, - 3, 69, 3, 69, 6, 8, 69, 8, 194, 69, - 648, 7, 3, 69, 69, 6, 69, 69, 3, 69, - 69, 69, 3, 8, 69, 6, 173, 69, 175, 176, - 3, 69, 69, 7, 69, 8, 70, 139, 140, 141, - 28, 29, 30, 128, 129, 3, 85, 194, 34, 85, - 8, 174, 17, 18, 177, 178, 179, 180, 97, 98, - 99, 7, 98, 99, 7, 98, 99, 3, 7, 57, - 58, 59, 8, 163, 113, 3, 112, 116, 20, 21, - 8, 7, 118, 119, 120, 121, 122, 123, 3, 125, - 3, 7, 194, 8, 3, 8, 84, 85, 86, 8, - 86, 7, 88, 89, 3, 7, 92, 93, 94, 8, - 98, 99, 98, 99, 98, 99, 4, 3, 1156, 3, - 98, 99, 8, 8, 1156, 4, 114, 115, 3, 194, - 1156, 11, 4, 8, 14, 194, 195, 196, 197, 118, - 119, 120, 121, 23, 123, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 4, 194, 125, 126, 194, 143, - 144, 194, 86, 87, 88, 89, 90, 91, 146, 147, - 148, 4, 4, 4, 98, 99, 941, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 4, 3, 8, 84, 85, 194, 8, 194, 3, - 194, 4, 3, 3, 8, 95, 194, 8, 98, 99, - 4, 3, 3, 103, 98, 99, 8, 8, 108, 109, - 110, 111, 112, 104, 105, 106, 107, 117, 131, 132, - 133, 134, 135, 136, 3, 8, 3, 127, 4, 8, - 130, 8, 4, 405, 406, 3, 3, 137, 138, 3, - 8, 8, 142, 4, 8, 145, 4, 4, 4, 149, - 194, 35, 36, 37, 38, 4, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 169, - 170, 171, 172, 4, 4, 169, 170, 4, 4, 4, - 4, 4, 197, 4, 471, 4, 4, 4, 4, 4, - 477, 4, 4, 4, 194, 3, 197, 4, 8, 4, - 194, 3, 489, 4, 8, 492, 477, 492, 4, 4, - 4, 4, 4, 4, 489, 4, 503, 4, 489, 4, - 4, 492, 197, 4, 4, 4, 513, 4, 503, 489, - 513, 518, 503, 4, 489, 518, 4, 492, 195, 195, - 195, 489, 513, 197, 489, 489, 477, 518, 503, 195, - 195, 538, 196, 196, 196, 195, 518, 195, 489, 4, - 195, 492, 518, 195, 197, 4, 197, 538, 489, 489, - 489, 197, 503, 4, 4, 197, 489, 197, 197, 4, - 489, 4, 513, 503, 4, 4, 4, 518, 489, 4, - 503, 489, 4, 4, 197, 489, 4, 197, 489, 489, - 197, 489, 4, 489, 4, 4, 489, 538, 195, 489, - 4, 4, 4, 489, 489, 4, 489, 489, 4, 489, - 489, 489, 1138, 4, 489, 4, 197, 489, 4, 4, - 4, 489, 489, 4, 489, 197, 34, 4, 492, 4, - 4, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 4, 4, 4, 195, 4, 4, 4, 4, - 4, 4, 4, 670, 4, 672, 4, 4, 86, 195, - 4, 4, 4, 4, 4, 4, 4, 669, 197, 197, - 197, 672, 4, 4, 4, 4, 4, 197, 4, 195, - 4, 26, 27, 28, 29, 30, 4, 195, 4, 706, - 707, 195, 709, 4, 197, 197, 4, 4, 195, 4, - 194, 7, 194, 7, 7, 706, 707, 708, 709, 7, - 194, 672, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 7, 7, 5, 5, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 194, 81, 82, 83, 5, - 85, 5, 194, 194, 5, 706, 707, 708, 709, 7, - 194, 96, 5, 98, 99, 100, 101, 102, 103, 5, - 5, 194, 5, 108, 109, 110, 194, 7, 113, 7, - 7, 116, 117, 7, 7, 5, 194, 5, 5, 124, - 194, 194, 26, 27, 28, 29, 30, 194, 7, 164, - 5, 194, 194, 24, 194, 194, 194, 7, 194, 7, - 7, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 194, 169, 170, 194, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 7, 7, 7, - 7, 85, 86, 194, 7, 194, 7, 7, 194, 194, - 4, 4, 4, 4, 98, 99, 4, 101, 194, 103, - 4, 4, 4, 4, 108, 109, 110, 4, 4, 113, - 3, 6, 116, 3, 6, 6, 3, 6, 3, 194, - 124, 3, 6, 6, 3, 6, 3, 197, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 195, 6, 195, 4, 6, 8, 4, 4, 4, 4, - 197, 4, 195, 4, 4, 4, 195, 195, 195, 195, - 4, 195, 197, 195, 195, 169, 170, 944, 195, 197, - 947, 4, 195, 950, 947, 195, 953, 950, 953, 944, - 953, 958, 197, 944, 961, 958, 947, 964, 953, 950, - 194, 4, 953, 958, 944, 4, 961, 958, 950, 944, - 961, 978, 958, 953, 950, 982, 944, 6, 953, 944, - 944, 195, 195, 958, 991, 953, 961, 978, 991, 953, - 997, 982, 997, 944, 958, 3, 947, 988, 4, 950, - 991, 195, 953, 944, 944, 944, 997, 958, 195, 194, - 961, 944, 953, 953, 953, 944, 194, 194, 958, 958, - 953, 961, 997, 944, 953, 958, 944, 978, 961, 958, - 944, 982, 953, 944, 944, 953, 944, 988, 944, 953, - 991, 944, 953, 953, 944, 953, 997, 953, 944, 944, - 953, 944, 944, 953, 944, 944, 944, 953, 953, 944, - 953, 953, 944, 953, 953, 953, 944, 944, 953, 944, - 194, 953, 8, 8, 4, 953, 953, 8, 953, 953, - 3, 8, 4, 4, 194, 4, 194, 4, 648, 5, - 4, 4, 7, 4, 4, 4, 670, 661, 943, 672, - 471, 917, 758, 938, 194, 194, 956, 477, 966, 964, - 194, 978, 194, 973, 521, 944, 194, 194, 955, 946, - 195, 197, 194, 997, 194, 194, 197, 1119, 195, 195, - 194, 1156, 489, 950, 949, 947, 999, 492, 997, 961, - 963, 952, 1161, 503, 513, 992, 729, 709, 982, 1156, - 518, 1156, 959, 1156, 1161, 988, 1171, 1191, 1161, -1, - 1211, 1156, -1, 671, 1171, 1156, 1161, -1, 1171, -1, - 1161, 538, -1, -1, -1, 1161, 1156, -1, 542, -1, - 1171, 1156, -1, -1, -1, -1, 1161, -1, 1156, -1, - -1, -1, 1156, -1, -1, -1, -1, 1161, -1, -1, - -1, -1, -1, -1, -1, 1156, -1, -1, -1, -1, - 1161, -1, -1, -1, -1, 1156, 1156, 1156, -1, -1, - 1171, 1161, 1161, 1156, -1, -1, -1, 1156, 1161, -1, - -1, -1, 1161, -1, -1, 1156, -1, -1, 1156, -1, - -1, -1, 1156, -1, -1, 1156, 1156, -1, 1156, -1, - 1156, -1, -1, 1156, -1, -1, 1156, -1, -1, -1, - 1156, 1156, -1, 1156, 1156, -1, 1156, 1156, 1156, -1, - -1, 1156, -1, -1, 1156, -1, -1, -1, 1156, 1156, - -1, 1156, 1156 + 73, 74, 64, 678, 69, 956, 71, 68, 69, 70, + 71, 620, 73, 74, 956, 76, 72, 626, 956, 69, + 132, 133, 74, 587, 69, 70, 71, 198, 74, 12, + 13, 69, 3, 0, 69, 69, 5, 8, 7, 18, + 9, 132, 133, 169, 170, 171, 172, 68, 69, 70, + 71, 7, 73, 74, 3, 76, 10, 6, 69, 69, + 69, 71, 122, 123, 124, 125, 69, 127, 71, 3, + 69, 3, 6, 15, 16, 201, 8, 19, 69, 7, + 22, 69, 3, 34, 648, 69, 198, 8, 69, 69, + 3, 69, 3, 69, 88, 8, 69, 8, 3, 69, + 3, 6, 6, 69, 69, 8, 69, 69, 7, 69, + 69, 69, 4, 11, 69, 3, 14, 69, 3, 3, + 8, 69, 69, 8, 69, 23, 70, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 7, 3, 7, 90, + 6, 92, 93, 3, 3, 96, 97, 98, 8, 8, + 178, 102, 103, 181, 182, 183, 184, 3, 20, 21, + 102, 103, 8, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 7, 167, 7, + 88, 89, 28, 29, 30, 90, 91, 92, 93, 94, + 95, 99, 17, 18, 102, 103, 7, 102, 103, 107, + 8, 102, 103, 1164, 112, 113, 114, 115, 116, 3, + 129, 130, 1164, 121, 8, 90, 1164, 102, 103, 198, + 199, 200, 201, 131, 3, 3, 134, 102, 103, 8, + 8, 3, 7, 141, 142, 3, 8, 198, 146, 3, + 8, 149, 3, 89, 8, 153, 198, 8, 3, 150, + 151, 152, 3, 8, 7, 3, 102, 103, 7, 944, + 8, 7, 147, 148, 3, 173, 174, 175, 176, 8, + 116, 8, 89, 4, 4, 4, 122, 123, 124, 125, + 126, 127, 3, 129, 101, 102, 103, 8, 4, 3, + 198, 4, 4, 198, 8, 102, 103, 198, 4, 4, + 117, 4, 177, 120, 179, 180, 26, 27, 28, 29, + 30, 4, 4, 198, 135, 136, 137, 138, 139, 140, + 3, 3, 8, 198, 4, 8, 8, 108, 109, 110, + 111, 4, 4, 405, 406, 4, 143, 144, 145, 4, + 4, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 4, 198, 4, 4, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 35, 36, 37, 38, 89, + 90, 4, 4, 54, 55, 56, 4, 4, 4, 4, + 4, 198, 102, 103, 471, 105, 4, 107, 4, 4, + 477, 198, 112, 113, 114, 3, 8, 117, 4, 4, + 120, 8, 489, 3, 8, 492, 477, 492, 128, 4, + 4, 3, 198, 4, 489, 4, 503, 4, 489, 4, + 4, 492, 4, 4, 4, 4, 513, 4, 503, 489, + 513, 518, 503, 4, 489, 518, 201, 492, 201, 201, + 4, 489, 513, 4, 489, 489, 477, 518, 503, 4, + 4, 538, 4, 173, 174, 4, 518, 199, 489, 199, + 201, 492, 518, 199, 199, 199, 199, 538, 489, 489, + 489, 199, 503, 200, 200, 200, 489, 4, 198, 201, + 489, 199, 513, 503, 199, 4, 4, 518, 489, 4, + 503, 489, 201, 201, 201, 489, 4, 201, 489, 489, + 201, 489, 4, 489, 4, 4, 489, 538, 4, 489, + 201, 4, 4, 489, 489, 4, 489, 489, 5, 489, + 489, 489, 201, 1142, 489, 201, 4, 489, 4, 4, + 4, 489, 489, 199, 489, 4, 4, 4, 492, 4, + 34, 4, 28, 29, 30, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 4, 201, 4, 57, 58, 59, 60, 4, 4, 4, + 201, 4, 4, 7, 4, 61, 62, 63, 4, 4, + 4, 4, 199, 670, 4, 672, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 90, 669, 4, 201, + 4, 672, 88, 89, 90, 4, 199, 26, 27, 28, + 29, 30, 4, 4, 4, 201, 102, 103, 201, 706, + 707, 4, 709, 4, 4, 201, 4, 199, 4, 199, + 199, 4, 118, 119, 4, 706, 707, 708, 709, 201, + 4, 672, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 4, 201, 4, 4, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 4, 85, 86, 87, 199, + 89, 102, 103, 4, 7, 706, 707, 708, 709, 7, + 7, 100, 198, 102, 103, 104, 105, 106, 107, 198, + 7, 198, 7, 112, 113, 114, 5, 198, 117, 5, + 198, 120, 121, 198, 198, 5, 5, 198, 198, 128, + 7, 5, 198, 5, 5, 5, 198, 198, 7, 7, + 7, 7, 7, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 5, 5, 198, 198, + 5, 198, 173, 174, 198, 198, 7, 198, 198, 198, + 198, 198, 198, 198, 173, 174, 5, 198, 198, 198, + 198, 168, 24, 7, 7, 7, 7, 198, 7, 198, + 198, 198, 7, 7, 7, 7, 198, 198, 7, 198, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 4, 4, 198, 198, 198, 198, 4, + 198, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 198, 6, 3, 6, 6, 3, 6, 3, 3, 6, + 3, 198, 6, 3, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 3, 199, 6, 199, + 4, 6, 8, 4, 4, 4, 4, 201, 201, 4, + 4, 199, 4, 4, 199, 199, 4, 199, 199, 4, + 947, 201, 199, 950, 199, 199, 953, 950, 4, 956, + 953, 956, 947, 956, 961, 199, 947, 964, 961, 950, + 967, 956, 953, 199, 4, 956, 961, 947, 199, 964, + 961, 953, 947, 964, 981, 961, 956, 953, 985, 947, + 201, 956, 947, 947, 199, 201, 961, 994, 956, 964, + 981, 994, 956, 1000, 985, 1000, 947, 961, 199, 950, + 991, 199, 953, 994, 199, 956, 947, 947, 947, 1000, + 961, 4, 6, 964, 947, 956, 956, 956, 947, 3, + 198, 961, 961, 956, 964, 1000, 947, 956, 961, 947, + 981, 964, 961, 947, 985, 956, 947, 947, 956, 947, + 991, 947, 956, 994, 947, 956, 956, 947, 956, 1000, + 956, 947, 947, 956, 947, 947, 956, 947, 947, 947, + 956, 956, 947, 956, 956, 947, 956, 956, 956, 947, + 947, 956, 947, 4, 956, 8, 8, 4, 956, 956, + 8, 956, 956, 3, 8, 4, 4, 4, 4, 198, + 5, 4, 4, 7, 4, 4, 4, 198, 648, 471, + 661, 670, 477, 919, 672, 941, 758, 959, 946, 969, + 981, 967, 949, 521, 958, 198, 198, 976, 1164, 950, + 947, 198, 198, 513, 1000, 198, 1000, 953, 198, 198, + 962, 1123, 198, 952, 201, 199, 198, 198, 201, 199, + 199, 198, 955, 198, 1169, 1002, 966, 964, 729, 991, + 709, 542, 538, 671, 1199, 518, 1179, 1164, 1219, 1164, + -1, 1164, 1169, -1, 492, 995, 1169, -1, -1, 1164, + -1, -1, 1179, 1164, 1169, 489, 1179, 985, 1169, -1, + -1, -1, -1, 1169, 1164, -1, 503, -1, 1179, 1164, + -1, -1, -1, -1, 1169, -1, 1164, -1, -1, -1, + 1164, -1, -1, -1, -1, 1169, -1, -1, -1, -1, + -1, -1, -1, 1164, -1, -1, -1, -1, 1169, -1, + -1, -1, -1, 1164, 1164, 1164, -1, -1, 1179, 1169, + 1169, 1164, -1, -1, -1, 1164, 1169, -1, -1, -1, + 1169, -1, -1, 1164, -1, -1, 1164, -1, -1, -1, + 1164, -1, -1, 1164, 1164, -1, 1164, -1, 1164, -1, + -1, 1164, -1, -1, 1164, -1, -1, -1, 1164, 1164, + -1, 1164, 1164, -1, 1164, 1164, 1164, -1, -1, 1164, + -1, -1, 1164, -1, -1, -1, 1164, 1164, -1, 1164, + 1164 }; const short Dhcp4Parser::yystos_[] = { - 0, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 0, 5, - 7, 9, 194, 195, 196, 197, 213, 214, 215, 220, - 7, 229, 7, 233, 7, 277, 7, 382, 7, 465, - 7, 481, 7, 417, 7, 423, 7, 447, 7, 358, - 7, 546, 7, 577, 221, 216, 230, 234, 278, 383, - 466, 482, 418, 424, 448, 359, 547, 578, 213, 222, - 223, 194, 218, 219, 10, 231, 11, 14, 23, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 84, 85, 95, 98, 99, 103, 108, 109, - 110, 111, 112, 117, 127, 130, 137, 138, 142, 145, - 149, 169, 170, 171, 172, 194, 228, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 250, 251, 252, 253, 254, 255, 256, 259, 261, - 263, 264, 265, 267, 269, 270, 271, 272, 273, 288, - 290, 296, 298, 336, 345, 352, 366, 376, 400, 401, - 402, 403, 407, 415, 441, 471, 473, 475, 486, 488, - 490, 513, 525, 526, 534, 544, 575, 584, 15, 16, - 19, 22, 228, 275, 276, 279, 281, 284, 287, 471, - 473, 81, 82, 83, 96, 100, 101, 102, 113, 116, - 124, 228, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 251, 252, 253, 254, 255, 256, 259, 261, - 263, 264, 265, 267, 269, 384, 385, 386, 388, 390, - 392, 394, 396, 398, 400, 401, 402, 403, 406, 441, - 459, 471, 473, 475, 486, 488, 490, 510, 97, 228, - 396, 398, 441, 467, 468, 469, 471, 473, 112, 118, - 119, 120, 121, 122, 123, 125, 228, 441, 471, 473, - 483, 484, 485, 486, 488, 490, 492, 496, 498, 500, - 502, 504, 506, 508, 415, 34, 86, 88, 89, 92, - 93, 94, 228, 316, 425, 426, 427, 428, 429, 430, - 431, 433, 435, 437, 438, 440, 471, 473, 87, 90, - 91, 228, 316, 429, 435, 449, 450, 451, 452, 453, - 455, 456, 457, 458, 471, 473, 128, 129, 228, 360, - 361, 362, 364, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 169, 170, 228, 471, - 473, 548, 549, 550, 551, 553, 554, 556, 557, 558, - 561, 563, 565, 566, 567, 569, 571, 573, 12, 13, - 579, 580, 581, 583, 6, 3, 4, 8, 3, 232, - 8, 576, 274, 291, 4, 4, 4, 487, 489, 491, - 289, 297, 299, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 249, 4, 4, 4, 4, 4, - 257, 260, 262, 4, 4, 4, 377, 416, 442, 408, - 472, 474, 404, 4, 4, 4, 337, 514, 476, 353, - 367, 4, 346, 527, 535, 545, 266, 268, 4, 585, - 4, 3, 8, 280, 282, 285, 4, 3, 8, 389, - 391, 393, 460, 387, 395, 4, 399, 397, 511, 3, - 8, 470, 3, 8, 509, 497, 499, 503, 501, 507, - 505, 493, 8, 3, 8, 432, 317, 4, 436, 434, - 439, 4, 8, 3, 454, 4, 4, 8, 3, 363, - 365, 3, 8, 4, 564, 552, 4, 555, 4, 4, - 559, 562, 4, 4, 568, 570, 572, 574, 3, 8, - 582, 4, 3, 8, 213, 213, 194, 4, 4, 4, - 4, 197, 197, 197, 4, 4, 4, 4, 4, 4, - 195, 195, 195, 195, 195, 197, 196, 196, 196, 195, - 195, 4, 195, 195, 197, 197, 197, 4, 4, 4, - 197, 197, 197, 4, 4, 4, 4, 4, 4, 4, - 197, 197, 197, 4, 4, 4, 4, 4, 195, 4, - 4, 4, 4, 4, 4, 197, 4, 236, 4, 4, - 4, 197, 276, 4, 4, 4, 4, 4, 4, 195, - 4, 4, 4, 385, 4, 468, 4, 4, 4, 4, - 4, 4, 4, 4, 485, 4, 4, 195, 4, 4, - 4, 197, 427, 4, 197, 197, 451, 4, 4, 361, - 197, 4, 4, 195, 4, 195, 195, 4, 4, 197, - 197, 4, 4, 4, 4, 549, 4, 195, 580, 4, - 7, 7, 7, 7, 194, 194, 194, 7, 7, 5, - 194, 165, 166, 167, 168, 197, 258, 194, 194, 5, - 5, 5, 5, 215, 217, 194, 104, 105, 106, 107, - 405, 5, 5, 5, 5, 7, 7, 7, 7, 7, - 194, 194, 5, 5, 224, 17, 18, 283, 20, 21, - 286, 194, 194, 194, 5, 194, 194, 224, 194, 7, - 194, 224, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 217, 194, 194, 194, - 18, 163, 560, 164, 258, 194, 194, 194, 5, 213, - 235, 579, 275, 24, 292, 293, 294, 34, 39, 40, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 0, 5, + 7, 9, 198, 199, 200, 201, 217, 218, 219, 224, + 7, 233, 7, 237, 7, 281, 7, 389, 7, 472, + 7, 488, 7, 424, 7, 430, 7, 454, 7, 365, + 7, 553, 7, 584, 225, 220, 234, 238, 282, 390, + 473, 489, 425, 431, 455, 366, 554, 585, 217, 226, + 227, 198, 222, 223, 10, 235, 11, 14, 23, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 88, 89, 99, 102, 103, 107, 112, 113, + 114, 115, 116, 121, 131, 134, 141, 142, 146, 149, + 153, 173, 174, 175, 176, 198, 232, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 254, 255, 256, 257, 258, 259, 260, 263, 265, + 267, 268, 269, 271, 273, 274, 275, 276, 277, 292, + 294, 300, 302, 343, 352, 359, 373, 383, 407, 408, + 409, 410, 414, 422, 448, 478, 480, 482, 493, 495, + 497, 520, 532, 533, 541, 551, 582, 591, 15, 16, + 19, 22, 232, 279, 280, 283, 285, 288, 291, 478, + 480, 85, 86, 87, 100, 104, 105, 106, 117, 120, + 128, 232, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 255, 256, 257, 258, 259, 260, 263, 265, + 267, 268, 269, 271, 273, 391, 392, 393, 395, 397, + 399, 401, 403, 405, 407, 408, 409, 410, 413, 448, + 466, 478, 480, 482, 493, 495, 497, 517, 101, 232, + 403, 405, 448, 474, 475, 476, 478, 480, 116, 122, + 123, 124, 125, 126, 127, 129, 232, 448, 478, 480, + 490, 491, 492, 493, 495, 497, 499, 503, 505, 507, + 509, 511, 513, 515, 422, 34, 90, 92, 93, 96, + 97, 98, 232, 320, 432, 433, 434, 435, 436, 437, + 438, 440, 442, 444, 445, 447, 478, 480, 91, 94, + 95, 232, 320, 436, 442, 456, 457, 458, 459, 460, + 462, 463, 464, 465, 478, 480, 132, 133, 232, 367, + 368, 369, 371, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 173, 174, 232, 478, + 480, 555, 556, 557, 558, 560, 561, 563, 564, 565, + 568, 570, 572, 573, 574, 576, 578, 580, 12, 13, + 586, 587, 588, 590, 6, 3, 4, 8, 3, 236, + 8, 583, 278, 295, 4, 4, 4, 494, 496, 498, + 293, 301, 303, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 253, 4, 4, 4, 4, 4, + 261, 264, 266, 4, 4, 4, 384, 423, 449, 415, + 479, 481, 411, 4, 4, 4, 344, 521, 483, 360, + 374, 4, 353, 534, 542, 552, 270, 272, 4, 592, + 4, 3, 8, 284, 286, 289, 4, 3, 8, 396, + 398, 400, 467, 394, 402, 4, 406, 404, 518, 3, + 8, 477, 3, 8, 516, 504, 506, 510, 508, 514, + 512, 500, 8, 3, 8, 439, 321, 4, 443, 441, + 446, 4, 8, 3, 461, 4, 4, 8, 3, 370, + 372, 3, 8, 4, 571, 559, 4, 562, 4, 4, + 566, 569, 4, 4, 575, 577, 579, 581, 3, 8, + 589, 4, 3, 8, 217, 217, 198, 4, 4, 4, + 4, 201, 201, 201, 4, 4, 4, 4, 4, 4, + 199, 199, 199, 199, 199, 201, 200, 200, 200, 199, + 199, 4, 199, 199, 201, 201, 201, 4, 4, 4, + 201, 201, 201, 4, 4, 4, 4, 4, 4, 4, + 201, 201, 201, 4, 4, 4, 4, 4, 199, 4, + 4, 4, 4, 4, 4, 201, 4, 240, 4, 4, + 4, 201, 280, 4, 4, 4, 4, 4, 4, 199, + 4, 4, 4, 392, 4, 475, 4, 4, 4, 4, + 4, 4, 4, 4, 492, 4, 4, 199, 4, 4, + 4, 201, 434, 4, 201, 201, 458, 4, 4, 368, + 201, 4, 4, 199, 4, 199, 199, 4, 4, 201, + 201, 4, 4, 4, 4, 556, 4, 199, 587, 4, + 7, 7, 7, 7, 198, 198, 198, 7, 7, 5, + 198, 169, 170, 171, 172, 201, 262, 198, 198, 5, + 5, 5, 5, 219, 221, 198, 108, 109, 110, 111, + 412, 5, 5, 5, 5, 7, 7, 7, 7, 7, + 198, 198, 5, 5, 228, 17, 18, 287, 20, 21, + 290, 198, 198, 198, 5, 198, 198, 228, 198, 7, + 198, 228, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 221, 198, 198, 198, + 18, 167, 567, 168, 262, 198, 198, 198, 5, 217, + 239, 586, 279, 24, 296, 297, 298, 34, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 228, 304, 305, 306, - 309, 311, 313, 315, 316, 318, 319, 320, 321, 322, - 323, 324, 325, 327, 329, 331, 333, 334, 335, 304, - 7, 300, 301, 302, 7, 378, 379, 380, 7, 419, - 420, 421, 7, 443, 444, 445, 7, 409, 410, 411, - 118, 119, 120, 121, 123, 338, 339, 340, 341, 342, - 343, 344, 7, 515, 516, 7, 477, 478, 479, 7, - 354, 355, 356, 131, 132, 133, 134, 135, 136, 368, - 369, 370, 371, 372, 373, 374, 375, 139, 140, 141, - 228, 347, 348, 349, 350, 351, 471, 473, 143, 144, - 228, 471, 473, 528, 529, 530, 532, 146, 147, 148, - 194, 471, 473, 536, 537, 538, 539, 541, 542, 548, - 7, 586, 587, 225, 7, 461, 462, 463, 126, 492, - 494, 512, 300, 8, 8, 8, 295, 3, 8, 307, - 310, 312, 314, 4, 4, 4, 4, 4, 326, 328, - 330, 332, 4, 4, 4, 4, 4, 4, 3, 8, - 8, 303, 6, 3, 381, 6, 3, 422, 6, 3, - 446, 6, 3, 412, 6, 3, 3, 6, 517, 3, - 6, 480, 6, 3, 357, 6, 3, 4, 4, 4, - 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, - 531, 533, 3, 8, 4, 540, 4, 543, 3, 8, - 8, 588, 3, 6, 194, 226, 227, 464, 6, 3, - 495, 8, 6, 4, 293, 4, 4, 4, 4, 195, - 197, 195, 197, 195, 4, 4, 4, 4, 195, 195, - 195, 195, 197, 195, 305, 304, 302, 384, 380, 425, - 421, 449, 445, 228, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 251, 252, 253, 254, 255, 256, - 259, 261, 263, 264, 265, 267, 269, 316, 376, 394, - 396, 398, 400, 401, 402, 403, 413, 414, 441, 471, - 473, 486, 488, 490, 510, 411, 339, 114, 115, 228, - 237, 238, 239, 316, 415, 441, 471, 473, 486, 488, - 490, 518, 519, 520, 521, 522, 524, 516, 483, 479, - 360, 356, 195, 195, 195, 195, 195, 195, 369, 197, - 195, 195, 348, 4, 4, 529, 197, 4, 195, 4, - 537, 173, 175, 176, 228, 316, 471, 473, 589, 590, - 591, 592, 594, 587, 6, 3, 467, 463, 4, 194, - 35, 36, 37, 38, 308, 194, 194, 194, 194, 194, - 194, 194, 8, 8, 8, 8, 3, 8, 523, 4, - 8, 3, 8, 8, 194, 194, 194, 213, 595, 4, - 593, 3, 8, 194, 8, 224, 414, 4, 197, 520, - 4, 195, 4, 590, 194, 5, 194, 7, 596, 597, - 598, 3, 6, 174, 177, 178, 179, 180, 599, 600, - 601, 603, 604, 605, 606, 597, 602, 4, 4, 4, - 607, 3, 8, 4, 197, 195, 195, 4, 600, 194, - 194 + 51, 52, 53, 57, 58, 59, 60, 232, 308, 309, + 310, 313, 315, 317, 319, 320, 322, 323, 324, 325, + 326, 327, 328, 329, 331, 333, 335, 337, 338, 339, + 342, 308, 7, 304, 305, 306, 7, 385, 386, 387, + 7, 426, 427, 428, 7, 450, 451, 452, 7, 416, + 417, 418, 122, 123, 124, 125, 127, 345, 346, 347, + 348, 349, 350, 351, 7, 522, 523, 7, 484, 485, + 486, 7, 361, 362, 363, 135, 136, 137, 138, 139, + 140, 375, 376, 377, 378, 379, 380, 381, 382, 143, + 144, 145, 232, 354, 355, 356, 357, 358, 478, 480, + 147, 148, 232, 478, 480, 535, 536, 537, 539, 150, + 151, 152, 198, 478, 480, 543, 544, 545, 546, 548, + 549, 555, 7, 593, 594, 229, 7, 468, 469, 470, + 130, 499, 501, 519, 304, 8, 8, 8, 299, 3, + 8, 311, 314, 316, 318, 4, 4, 4, 4, 4, + 330, 332, 334, 336, 4, 4, 340, 4, 4, 4, + 4, 3, 8, 8, 307, 6, 3, 388, 6, 3, + 429, 6, 3, 453, 6, 3, 419, 6, 3, 3, + 6, 524, 3, 6, 487, 6, 3, 364, 6, 3, + 4, 4, 4, 4, 4, 4, 3, 8, 4, 4, + 4, 3, 8, 538, 540, 3, 8, 4, 547, 4, + 550, 3, 8, 8, 595, 3, 6, 198, 230, 231, + 471, 6, 3, 502, 8, 6, 4, 297, 4, 4, + 4, 4, 199, 201, 199, 201, 199, 4, 4, 4, + 4, 199, 199, 4, 199, 199, 201, 199, 309, 308, + 306, 391, 387, 432, 428, 456, 452, 232, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 255, 256, + 257, 258, 259, 260, 263, 265, 267, 268, 269, 271, + 273, 320, 383, 401, 403, 405, 407, 408, 409, 410, + 420, 421, 448, 478, 480, 493, 495, 497, 517, 418, + 346, 118, 119, 232, 241, 242, 243, 320, 422, 448, + 478, 480, 493, 495, 497, 525, 526, 527, 528, 529, + 531, 523, 490, 486, 367, 363, 199, 199, 199, 199, + 199, 199, 376, 201, 199, 199, 355, 4, 4, 536, + 201, 4, 199, 4, 544, 177, 179, 180, 232, 320, + 478, 480, 596, 597, 598, 599, 601, 594, 6, 3, + 474, 470, 4, 198, 35, 36, 37, 38, 312, 198, + 198, 198, 198, 198, 198, 198, 54, 55, 56, 341, + 8, 8, 8, 8, 3, 8, 530, 4, 8, 3, + 8, 8, 198, 198, 198, 217, 602, 4, 600, 3, + 8, 198, 8, 228, 421, 4, 201, 527, 4, 199, + 4, 597, 198, 5, 198, 7, 603, 604, 605, 3, + 6, 178, 181, 182, 183, 184, 606, 607, 608, 610, + 611, 612, 613, 604, 609, 4, 4, 4, 614, 3, + 8, 4, 201, 199, 199, 4, 607, 198, 198 }; const short Dhcp4Parser::yyr1_[] = { - 0, 198, 200, 199, 201, 199, 202, 199, 203, 199, - 204, 199, 205, 199, 206, 199, 207, 199, 208, 199, - 209, 199, 210, 199, 211, 199, 212, 199, 213, 213, - 213, 213, 213, 213, 213, 214, 216, 215, 217, 218, - 218, 219, 219, 221, 220, 222, 222, 223, 223, 225, - 224, 226, 226, 227, 227, 228, 230, 229, 232, 231, - 234, 233, 235, 235, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 249, 248, 250, 251, 252, - 253, 254, 255, 257, 256, 258, 258, 258, 258, 258, - 260, 259, 262, 261, 263, 264, 266, 265, 268, 267, - 269, 270, 271, 272, 274, 273, 275, 275, 276, 276, - 276, 276, 276, 276, 276, 278, 277, 280, 279, 282, - 281, 283, 283, 285, 284, 286, 286, 287, 289, 288, - 291, 290, 292, 292, 293, 295, 294, 297, 296, 299, - 298, 300, 300, 301, 301, 303, 302, 304, 304, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 307, 306, 308, 308, 308, 308, 310, 309, 312, 311, - 314, 313, 315, 317, 316, 318, 319, 320, 321, 322, - 323, 324, 326, 325, 328, 327, 330, 329, 332, 331, - 333, 334, 335, 337, 336, 338, 338, 339, 339, 339, - 339, 339, 340, 341, 342, 343, 344, 346, 345, 347, - 347, 348, 348, 348, 348, 348, 348, 349, 350, 351, - 353, 352, 354, 354, 355, 355, 357, 356, 359, 358, - 360, 360, 360, 361, 361, 363, 362, 365, 364, 367, - 366, 368, 368, 369, 369, 369, 369, 369, 369, 370, - 371, 372, 373, 374, 375, 377, 376, 378, 378, 379, - 379, 381, 380, 383, 382, 384, 384, 385, 385, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 387, 386, 389, 388, 391, 390, 393, 392, - 395, 394, 397, 396, 399, 398, 400, 401, 402, 404, - 403, 405, 405, 405, 405, 406, 408, 407, 409, 409, - 410, 410, 412, 411, 413, 413, 414, 414, 414, 414, - 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, - 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, - 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, - 414, 414, 414, 414, 414, 414, 416, 415, 418, 417, - 419, 419, 420, 420, 422, 421, 424, 423, 425, 425, - 426, 426, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 428, 429, 430, 432, 431, 434, 433, 436, - 435, 437, 439, 438, 440, 442, 441, 443, 443, 444, - 444, 446, 445, 448, 447, 449, 449, 450, 450, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 452, 454, - 453, 455, 456, 457, 458, 460, 459, 461, 461, 462, - 462, 464, 463, 466, 465, 467, 467, 468, 468, 468, - 468, 468, 468, 468, 470, 469, 472, 471, 474, 473, - 476, 475, 477, 477, 478, 478, 480, 479, 482, 481, - 483, 483, 484, 484, 485, 485, 485, 485, 485, 485, - 485, 485, 485, 485, 485, 485, 485, 485, 485, 487, - 486, 489, 488, 491, 490, 493, 492, 495, 494, 497, - 496, 499, 498, 501, 500, 503, 502, 505, 504, 507, - 506, 509, 508, 511, 510, 512, 512, 514, 513, 515, - 515, 517, 516, 518, 518, 519, 519, 520, 520, 520, - 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, - 520, 521, 523, 522, 524, 525, 527, 526, 528, 528, - 529, 529, 529, 529, 529, 531, 530, 533, 532, 535, - 534, 536, 536, 537, 537, 537, 537, 537, 537, 538, - 540, 539, 541, 543, 542, 545, 544, 547, 546, 548, - 548, 549, 549, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 549, 549, 549, 549, 550, - 552, 551, 553, 555, 554, 556, 557, 559, 558, 560, - 560, 562, 561, 564, 563, 565, 566, 568, 567, 570, - 569, 572, 571, 574, 573, 576, 575, 578, 577, 579, - 579, 580, 580, 582, 581, 583, 585, 584, 586, 586, - 588, 587, 589, 589, 590, 590, 590, 590, 590, 590, - 590, 591, 593, 592, 595, 594, 596, 596, 598, 597, - 599, 599, 600, 600, 600, 600, 600, 602, 601, 603, - 604, 605, 607, 606 + 0, 202, 204, 203, 205, 203, 206, 203, 207, 203, + 208, 203, 209, 203, 210, 203, 211, 203, 212, 203, + 213, 203, 214, 203, 215, 203, 216, 203, 217, 217, + 217, 217, 217, 217, 217, 218, 220, 219, 221, 222, + 222, 223, 223, 225, 224, 226, 226, 227, 227, 229, + 228, 230, 230, 231, 231, 232, 234, 233, 236, 235, + 238, 237, 239, 239, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 253, 252, 254, 255, 256, + 257, 258, 259, 261, 260, 262, 262, 262, 262, 262, + 264, 263, 266, 265, 267, 268, 270, 269, 272, 271, + 273, 274, 275, 276, 278, 277, 279, 279, 280, 280, + 280, 280, 280, 280, 280, 282, 281, 284, 283, 286, + 285, 287, 287, 289, 288, 290, 290, 291, 293, 292, + 295, 294, 296, 296, 297, 299, 298, 301, 300, 303, + 302, 304, 304, 305, 305, 307, 306, 308, 308, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 311, 310, 312, 312, 312, 312, 314, 313, 316, + 315, 318, 317, 319, 321, 320, 322, 323, 324, 325, + 326, 327, 328, 330, 329, 332, 331, 334, 333, 336, + 335, 337, 338, 340, 339, 341, 341, 341, 342, 344, + 343, 345, 345, 346, 346, 346, 346, 346, 347, 348, + 349, 350, 351, 353, 352, 354, 354, 355, 355, 355, + 355, 355, 355, 356, 357, 358, 360, 359, 361, 361, + 362, 362, 364, 363, 366, 365, 367, 367, 367, 368, + 368, 370, 369, 372, 371, 374, 373, 375, 375, 376, + 376, 376, 376, 376, 376, 377, 378, 379, 380, 381, + 382, 384, 383, 385, 385, 386, 386, 388, 387, 390, + 389, 391, 391, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 394, 393, + 396, 395, 398, 397, 400, 399, 402, 401, 404, 403, + 406, 405, 407, 408, 409, 411, 410, 412, 412, 412, + 412, 413, 415, 414, 416, 416, 417, 417, 419, 418, + 420, 420, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 423, 422, 425, 424, 426, 426, 427, 427, + 429, 428, 431, 430, 432, 432, 433, 433, 434, 434, + 434, 434, 434, 434, 434, 434, 434, 434, 435, 436, + 437, 439, 438, 441, 440, 443, 442, 444, 446, 445, + 447, 449, 448, 450, 450, 451, 451, 453, 452, 455, + 454, 456, 456, 457, 457, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 459, 461, 460, 462, 463, 464, + 465, 467, 466, 468, 468, 469, 469, 471, 470, 473, + 472, 474, 474, 475, 475, 475, 475, 475, 475, 475, + 477, 476, 479, 478, 481, 480, 483, 482, 484, 484, + 485, 485, 487, 486, 489, 488, 490, 490, 491, 491, + 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, + 492, 492, 492, 492, 492, 494, 493, 496, 495, 498, + 497, 500, 499, 502, 501, 504, 503, 506, 505, 508, + 507, 510, 509, 512, 511, 514, 513, 516, 515, 518, + 517, 519, 519, 521, 520, 522, 522, 524, 523, 525, + 525, 526, 526, 527, 527, 527, 527, 527, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 528, 530, 529, + 531, 532, 534, 533, 535, 535, 536, 536, 536, 536, + 536, 538, 537, 540, 539, 542, 541, 543, 543, 544, + 544, 544, 544, 544, 544, 545, 547, 546, 548, 550, + 549, 552, 551, 554, 553, 555, 555, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 557, 559, 558, 560, 562, + 561, 563, 564, 566, 565, 567, 567, 569, 568, 571, + 570, 572, 573, 575, 574, 577, 576, 579, 578, 581, + 580, 583, 582, 585, 584, 586, 586, 587, 587, 589, + 588, 590, 592, 591, 593, 593, 595, 594, 596, 596, + 597, 597, 597, 597, 597, 597, 597, 598, 600, 599, + 602, 601, 603, 603, 605, 604, 606, 606, 607, 607, + 607, 607, 607, 609, 608, 610, 611, 612, 614, 613 }; const signed char @@ -5346,84 +5350,85 @@ namespace isc { namespace dhcp { 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 4, 3, 0, 4, 3, 3, 3, 3, 3, - 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, - 3, 3, 3, 0, 6, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 6, 1, - 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, + 1, 0, 4, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 3, 0, 4, 3, 3, 3, 3, + 3, 3, 3, 0, 4, 0, 4, 0, 4, 0, + 4, 3, 3, 0, 4, 1, 1, 1, 3, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 0, 6, 0, 1, + 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, + 1, 0, 4, 0, 4, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 3, 3, 3, 0, 4, 1, 1, 1, + 1, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 3, 3, 3, 0, - 4, 1, 1, 1, 1, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 4, 0, 1, 1, 3, + 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 0, 4, 0, 4, 0, 4, 1, 0, 4, + 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, + 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 1, 1, 3, + 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 6, 0, 1, + 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, - 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 0, 4, 0, 4, 0, - 4, 1, 0, 4, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 6, 1, 1, 0, 6, 1, - 3, 0, 4, 0, 1, 1, 3, 1, 1, 1, + 6, 1, 1, 0, 6, 1, 3, 0, 4, 0, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 3, 0, 6, 1, 3, 1, 1, 1, 1, + 1, 0, 4, 0, 4, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, + 4, 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 3, 3, 0, 6, 1, 3, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 3, 0, 4, 0, 6, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 3, 0, 4, 3, 3, 0, 4, 1, - 1, 0, 4, 0, 4, 3, 3, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 6, 0, 4, 1, - 3, 1, 1, 0, 6, 3, 0, 6, 1, 3, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 0, 4, 3, - 3, 3, 0, 4 + 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, + 4, 3, 3, 0, 4, 1, 1, 0, 4, 0, + 4, 3, 3, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 0, 4, 1, 3, 1, 1, 0, + 6, 3, 0, 6, 1, 3, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 3, 0, 4, + 0, 6, 1, 3, 0, 4, 1, 3, 1, 1, + 1, 1, 1, 0, 4, 3, 3, 3, 0, 4 }; -#if PARSER4_DEBUG || 1 + // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - // First, the terminals, then, starting at \a YYNTOKENS, nonterminals. + // First, the terminals, then, starting at \a yyntokens_, nonterminals. const char* const Dhcp4Parser::yytname_[] = { - "\"end of file\"", "error", "\"invalid token\"", "\",\"", "\":\"", - "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp4\"", - "\"config-control\"", "\"config-databases\"", - "\"config-fetch-wait-time\"", "\"interfaces-config\"", "\"interfaces\"", - "\"dhcp-socket-type\"", "\"raw\"", "\"udp\"", "\"outbound-interface\"", - "\"same-as-inbound\"", "\"use-routing\"", "\"re-detect\"", - "\"sanity-checks\"", "\"lease-checks\"", "\"echo-client-id\"", - "\"match-client-id\"", "\"authoritative\"", "\"next-server\"", - "\"server-hostname\"", "\"boot-file-name\"", "\"lease-database\"", - "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"", - "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", - "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", - "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"", - "\"keyspace\"", "\"consistency\"", "\"serial-consistency\"", - "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", + "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"", + "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp4\"", "\"config-control\"", + "\"config-databases\"", "\"config-fetch-wait-time\"", + "\"interfaces-config\"", "\"interfaces\"", "\"dhcp-socket-type\"", + "\"raw\"", "\"udp\"", "\"outbound-interface\"", "\"same-as-inbound\"", + "\"use-routing\"", "\"re-detect\"", "\"sanity-checks\"", + "\"lease-checks\"", "\"echo-client-id\"", "\"match-client-id\"", + "\"authoritative\"", "\"next-server\"", "\"server-hostname\"", + "\"boot-file-name\"", "\"lease-database\"", "\"hosts-database\"", + "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"", + "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"", + "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", + "\"connect-timeout\"", "\"contact-points\"", "\"keyspace\"", + "\"consistency\"", "\"serial-consistency\"", "\"max-reconnect-tries\"", + "\"reconnect-wait-time\"", "\"on-fail\"", "\"stop-retry-exit\"", + "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"request-timeout\"", "\"tcp-keepalive\"", "\"tcp-nodelay\"", "\"max-row-errors\"", "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"", @@ -5503,165 +5508,164 @@ namespace isc { namespace dhcp { "lfc_interval", "readonly", "connect_timeout", "request_timeout", "tcp_keepalive", "tcp_nodelay", "contact_points", "$@42", "keyspace", "$@43", "consistency", "$@44", "serial_consistency", "$@45", - "max_reconnect_tries", "reconnect_wait_time", "max_row_errors", - "host_reservation_identifiers", "$@46", + "max_reconnect_tries", "reconnect_wait_time", "on_fail", "$@46", + "on_fail_mode", "max_row_errors", "host_reservation_identifiers", "$@47", "host_reservation_identifiers_list", "host_reservation_identifier", "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id", - "dhcp_multi_threading", "$@47", "multi_threading_params", + "dhcp_multi_threading", "$@48", "multi_threading_params", "multi_threading_param", "enable_multi_threading", "thread_pool_size", - "packet_queue_size", "hooks_libraries", "$@48", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@49", - "sub_hooks_library", "$@50", "hooks_params", "hooks_param", "library", - "$@51", "parameters", "$@52", "expired_leases_processing", "$@53", + "packet_queue_size", "hooks_libraries", "$@49", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@50", + "sub_hooks_library", "$@51", "hooks_params", "hooks_param", "library", + "$@52", "parameters", "$@53", "expired_leases_processing", "$@54", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet4_list", "$@54", - "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@55", - "sub_subnet4", "$@56", "subnet4_params", "subnet4_param", "subnet", - "$@57", "subnet_4o6_interface", "$@58", "subnet_4o6_interface_id", - "$@59", "subnet_4o6_subnet", "$@60", "interface", "$@61", "client_class", - "$@62", "require_client_classes", "$@63", "reservations_global", + "unwarned_reclaim_cycles", "subnet4_list", "$@55", + "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@56", + "sub_subnet4", "$@57", "subnet4_params", "subnet4_param", "subnet", + "$@58", "subnet_4o6_interface", "$@59", "subnet_4o6_interface_id", + "$@60", "subnet_4o6_subnet", "$@61", "interface", "$@62", "client_class", + "$@63", "require_client_classes", "$@64", "reservations_global", "reservations_in_subnet", "reservations_out_of_pool", "reservation_mode", - "$@64", "hr_mode", "id", "shared_networks", "$@65", + "$@65", "hr_mode", "id", "shared_networks", "$@66", "shared_networks_content", "shared_networks_list", "shared_network", - "$@66", "shared_network_params", "shared_network_param", - "option_def_list", "$@67", "sub_option_def_list", "$@68", + "$@67", "shared_network_params", "shared_network_param", + "option_def_list", "$@68", "sub_option_def_list", "$@69", "option_def_list_content", "not_empty_option_def_list", - "option_def_entry", "$@69", "sub_option_def", "$@70", + "option_def_entry", "$@70", "sub_option_def", "$@71", "option_def_params", "not_empty_option_def_params", "option_def_param", - "option_def_name", "code", "option_def_code", "option_def_type", "$@71", - "option_def_record_types", "$@72", "space", "$@73", "option_def_space", - "option_def_encapsulate", "$@74", "option_def_array", "option_data_list", - "$@75", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@76", "sub_option_data", "$@77", + "option_def_name", "code", "option_def_code", "option_def_type", "$@72", + "option_def_record_types", "$@73", "space", "$@74", "option_def_space", + "option_def_encapsulate", "$@75", "option_def_array", "option_data_list", + "$@76", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@77", "sub_option_data", "$@78", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@78", + "option_data_param", "option_data_name", "option_data_data", "$@79", "option_data_code", "option_data_space", "option_data_csv_format", - "option_data_always_send", "pools_list", "$@79", "pools_list_content", - "not_empty_pools_list", "pool_list_entry", "$@80", "sub_pool4", "$@81", - "pool_params", "pool_param", "pool_entry", "$@82", "user_context", - "$@83", "comment", "$@84", "reservations", "$@85", "reservations_list", - "not_empty_reservations_list", "reservation", "$@86", "sub_reservation", - "$@87", "reservation_params", "not_empty_reservation_params", - "reservation_param", "next_server", "$@88", "server_hostname", "$@89", - "boot_file_name", "$@90", "ip_address", "$@91", "ip_addresses", "$@92", - "duid", "$@93", "hw_address", "$@94", "client_id_value", "$@95", - "circuit_id_value", "$@96", "flex_id_value", "$@97", "hostname", "$@98", - "reservation_client_classes", "$@99", "relay", "$@100", "relay_map", - "client_classes", "$@101", "client_classes_list", "client_class_entry", - "$@102", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@103", - "only_if_required", "dhcp4o6_port", "control_socket", "$@104", + "option_data_always_send", "pools_list", "$@80", "pools_list_content", + "not_empty_pools_list", "pool_list_entry", "$@81", "sub_pool4", "$@82", + "pool_params", "pool_param", "pool_entry", "$@83", "user_context", + "$@84", "comment", "$@85", "reservations", "$@86", "reservations_list", + "not_empty_reservations_list", "reservation", "$@87", "sub_reservation", + "$@88", "reservation_params", "not_empty_reservation_params", + "reservation_param", "next_server", "$@89", "server_hostname", "$@90", + "boot_file_name", "$@91", "ip_address", "$@92", "ip_addresses", "$@93", + "duid", "$@94", "hw_address", "$@95", "client_id_value", "$@96", + "circuit_id_value", "$@97", "flex_id_value", "$@98", "hostname", "$@99", + "reservation_client_classes", "$@100", "relay", "$@101", "relay_map", + "client_classes", "$@102", "client_classes_list", "client_class_entry", + "$@103", "client_class_params", "not_empty_client_class_params", + "client_class_param", "client_class_name", "client_class_test", "$@104", + "only_if_required", "dhcp4o6_port", "control_socket", "$@105", "control_socket_params", "control_socket_param", "control_socket_type", - "$@105", "control_socket_name", "$@106", "dhcp_queue_control", "$@107", + "$@106", "control_socket_name", "$@107", "dhcp_queue_control", "$@108", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@108", "capacity", "arbitrary_map_entry", "$@109", - "dhcp_ddns", "$@110", "sub_dhcp_ddns", "$@111", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@112", "server_port", - "sender_ip", "$@113", "sender_port", "max_queue_size", "ncr_protocol", - "$@114", "ncr_protocol_value", "ncr_format", "$@115", - "dep_qualifying_suffix", "$@116", "dep_override_no_update", - "dep_override_client_update", "dep_replace_client_name", "$@117", - "dep_generated_prefix", "$@118", "dep_hostname_char_set", "$@119", - "dep_hostname_char_replacement", "$@120", "config_control", "$@121", - "sub_config_control", "$@122", "config_control_params", - "config_control_param", "config_databases", "$@123", - "config_fetch_wait_time", "loggers", "$@124", "loggers_entries", - "logger_entry", "$@125", "logger_params", "logger_param", "debuglevel", - "severity", "$@126", "output_options_list", "$@127", - "output_options_list_content", "output_entry", "$@128", - "output_params_list", "output_params", "output", "$@129", "flush", - "maxsize", "maxver", "pattern", "$@130", YY_NULLPTR + "queue_type", "$@109", "capacity", "arbitrary_map_entry", "$@110", + "dhcp_ddns", "$@111", "sub_dhcp_ddns", "$@112", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@113", "server_port", + "sender_ip", "$@114", "sender_port", "max_queue_size", "ncr_protocol", + "$@115", "ncr_protocol_value", "ncr_format", "$@116", + "dep_qualifying_suffix", "$@117", "dep_override_no_update", + "dep_override_client_update", "dep_replace_client_name", "$@118", + "dep_generated_prefix", "$@119", "dep_hostname_char_set", "$@120", + "dep_hostname_char_replacement", "$@121", "config_control", "$@122", + "sub_config_control", "$@123", "config_control_params", + "config_control_param", "config_databases", "$@124", + "config_fetch_wait_time", "loggers", "$@125", "loggers_entries", + "logger_entry", "$@126", "logger_params", "logger_param", "debuglevel", + "severity", "$@127", "output_options_list", "$@128", + "output_options_list_content", "output_entry", "$@129", + "output_params_list", "output_params", "output", "$@130", "flush", + "maxsize", "maxver", "pattern", "$@131", YY_NULLPTR }; -#endif - #if PARSER4_DEBUG const short Dhcp4Parser::yyrline_[] = { - 0, 285, 285, 285, 286, 286, 287, 287, 288, 288, - 289, 289, 290, 290, 291, 291, 292, 292, 293, 293, - 294, 294, 295, 295, 296, 296, 297, 297, 305, 306, - 307, 308, 309, 310, 311, 314, 319, 319, 330, 333, - 334, 337, 342, 350, 350, 357, 358, 361, 365, 372, - 372, 379, 380, 383, 387, 398, 407, 407, 422, 422, - 439, 439, 448, 449, 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, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 516, 522, 528, 534, 540, 546, - 552, 558, 564, 570, 576, 582, 582, 591, 597, 603, - 609, 615, 621, 627, 627, 636, 639, 642, 645, 648, - 654, 654, 663, 663, 672, 678, 684, 684, 693, 693, - 702, 708, 714, 720, 726, 726, 738, 739, 742, 743, - 744, 745, 746, 747, 748, 751, 751, 760, 760, 771, - 771, 779, 780, 783, 783, 791, 793, 797, 804, 804, - 817, 817, 828, 829, 831, 833, 833, 852, 852, 865, - 865, 876, 877, 880, 881, 884, 884, 894, 895, 898, - 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, - 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, - 921, 921, 929, 930, 931, 932, 935, 935, 944, 944, - 953, 953, 962, 968, 968, 977, 983, 989, 995, 1001, - 1007, 1013, 1019, 1019, 1028, 1028, 1037, 1037, 1046, 1046, - 1055, 1061, 1067, 1074, 1074, 1085, 1086, 1089, 1090, 1091, - 1092, 1093, 1096, 1101, 1106, 1111, 1116, 1123, 1123, 1136, - 1137, 1140, 1141, 1142, 1143, 1144, 1145, 1148, 1154, 1160, - 1166, 1166, 1177, 1178, 1181, 1182, 1185, 1185, 1195, 1195, - 1205, 1206, 1207, 1210, 1211, 1214, 1214, 1223, 1223, 1232, - 1232, 1244, 1245, 1248, 1249, 1250, 1251, 1252, 1253, 1256, - 1262, 1268, 1274, 1280, 1286, 1295, 1295, 1309, 1310, 1313, - 1314, 1321, 1321, 1347, 1347, 1358, 1359, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, - 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, - 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, - 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1410, 1410, 1419, 1419, 1428, 1428, 1437, 1437, - 1446, 1446, 1455, 1455, 1464, 1464, 1475, 1481, 1487, 1493, - 1493, 1501, 1502, 1503, 1504, 1507, 1515, 1515, 1527, 1528, - 1532, 1533, 1536, 1536, 1544, 1545, 1548, 1549, 1550, 1551, - 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, - 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, - 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, - 1582, 1583, 1584, 1585, 1586, 1587, 1594, 1594, 1608, 1608, - 1617, 1618, 1621, 1622, 1627, 1627, 1642, 1642, 1656, 1657, - 1660, 1661, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1672, 1673, 1676, 1678, 1684, 1686, 1686, 1695, 1695, 1704, - 1704, 1713, 1715, 1715, 1724, 1734, 1734, 1747, 1748, 1753, - 1754, 1759, 1759, 1771, 1771, 1783, 1784, 1789, 1790, 1795, - 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1806, 1808, - 1808, 1817, 1819, 1821, 1827, 1836, 1836, 1849, 1850, 1853, - 1854, 1857, 1857, 1867, 1867, 1877, 1878, 1881, 1882, 1883, - 1884, 1885, 1886, 1887, 1890, 1890, 1899, 1899, 1924, 1924, - 1954, 1954, 1965, 1966, 1969, 1970, 1973, 1973, 1982, 1982, - 1991, 1992, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2017, - 2017, 2026, 2026, 2035, 2035, 2044, 2044, 2053, 2053, 2064, - 2064, 2073, 2073, 2082, 2082, 2091, 2091, 2100, 2100, 2109, - 2109, 2118, 2118, 2132, 2132, 2143, 2144, 2150, 2150, 2161, - 2162, 2165, 2165, 2175, 2176, 2179, 2180, 2183, 2184, 2185, - 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, - 2196, 2199, 2201, 2201, 2210, 2218, 2226, 2226, 2237, 2238, - 2241, 2242, 2243, 2244, 2245, 2248, 2248, 2257, 2257, 2269, - 2269, 2282, 2283, 2286, 2287, 2288, 2289, 2290, 2291, 2294, - 2300, 2300, 2309, 2315, 2315, 2325, 2325, 2338, 2338, 2348, - 2349, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, - 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2372, - 2378, 2378, 2387, 2393, 2393, 2402, 2408, 2414, 2414, 2423, - 2424, 2427, 2427, 2437, 2437, 2447, 2454, 2461, 2461, 2470, - 2470, 2480, 2480, 2490, 2490, 2502, 2502, 2514, 2514, 2524, - 2525, 2529, 2530, 2533, 2533, 2544, 2552, 2552, 2565, 2566, - 2570, 2570, 2578, 2579, 2582, 2583, 2584, 2585, 2586, 2587, - 2588, 2591, 2597, 2597, 2606, 2606, 2617, 2618, 2621, 2621, - 2629, 2630, 2633, 2634, 2635, 2636, 2637, 2640, 2640, 2649, - 2655, 2661, 2667, 2667 + 0, 290, 290, 290, 291, 291, 292, 292, 293, 293, + 294, 294, 295, 295, 296, 296, 297, 297, 298, 298, + 299, 299, 300, 300, 301, 301, 302, 302, 310, 311, + 312, 313, 314, 315, 316, 319, 324, 324, 335, 338, + 339, 342, 347, 355, 355, 362, 363, 366, 370, 377, + 377, 384, 385, 388, 392, 403, 412, 412, 427, 427, + 444, 444, 453, 454, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 521, 527, 533, 539, 545, 551, + 557, 563, 569, 575, 581, 587, 587, 596, 602, 608, + 614, 620, 626, 632, 632, 641, 644, 647, 650, 653, + 659, 659, 668, 668, 677, 683, 689, 689, 698, 698, + 707, 713, 719, 725, 731, 731, 743, 744, 747, 748, + 749, 750, 751, 752, 753, 756, 756, 765, 765, 776, + 776, 784, 785, 788, 788, 796, 798, 802, 809, 809, + 822, 822, 833, 834, 836, 838, 838, 857, 857, 870, + 870, 881, 882, 885, 886, 889, 889, 899, 900, 903, + 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 927, 927, 935, 936, 937, 938, 941, 941, 950, + 950, 959, 959, 968, 974, 974, 983, 989, 995, 1001, + 1007, 1013, 1019, 1025, 1025, 1034, 1034, 1043, 1043, 1052, + 1052, 1061, 1067, 1073, 1073, 1081, 1082, 1083, 1086, 1093, + 1093, 1104, 1105, 1108, 1109, 1110, 1111, 1112, 1115, 1120, + 1125, 1130, 1135, 1142, 1142, 1155, 1156, 1159, 1160, 1161, + 1162, 1163, 1164, 1167, 1173, 1179, 1185, 1185, 1196, 1197, + 1200, 1201, 1204, 1204, 1214, 1214, 1224, 1225, 1226, 1229, + 1230, 1233, 1233, 1242, 1242, 1251, 1251, 1263, 1264, 1267, + 1268, 1269, 1270, 1271, 1272, 1275, 1281, 1287, 1293, 1299, + 1305, 1314, 1314, 1328, 1329, 1332, 1333, 1340, 1340, 1366, + 1366, 1377, 1378, 1382, 1383, 1384, 1385, 1386, 1387, 1388, + 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1429, 1429, + 1438, 1438, 1447, 1447, 1456, 1456, 1465, 1465, 1474, 1474, + 1483, 1483, 1494, 1500, 1506, 1512, 1512, 1520, 1521, 1522, + 1523, 1526, 1534, 1534, 1546, 1547, 1551, 1552, 1555, 1555, + 1563, 1564, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, + 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, + 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, + 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1613, 1613, 1627, 1627, 1636, 1637, 1640, 1641, + 1646, 1646, 1661, 1661, 1675, 1676, 1679, 1680, 1683, 1684, + 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1695, 1697, + 1703, 1705, 1705, 1714, 1714, 1723, 1723, 1732, 1734, 1734, + 1743, 1753, 1753, 1766, 1767, 1772, 1773, 1778, 1778, 1790, + 1790, 1802, 1803, 1808, 1809, 1814, 1815, 1816, 1817, 1818, + 1819, 1820, 1821, 1822, 1825, 1827, 1827, 1836, 1838, 1840, + 1846, 1855, 1855, 1868, 1869, 1872, 1873, 1876, 1876, 1886, + 1886, 1896, 1897, 1900, 1901, 1902, 1903, 1904, 1905, 1906, + 1909, 1909, 1918, 1918, 1943, 1943, 1973, 1973, 1984, 1985, + 1988, 1989, 1992, 1992, 2001, 2001, 2010, 2011, 2014, 2015, + 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, + 2029, 2030, 2031, 2032, 2033, 2036, 2036, 2045, 2045, 2054, + 2054, 2063, 2063, 2072, 2072, 2083, 2083, 2092, 2092, 2101, + 2101, 2110, 2110, 2119, 2119, 2128, 2128, 2137, 2137, 2151, + 2151, 2162, 2163, 2169, 2169, 2180, 2181, 2184, 2184, 2194, + 2195, 2198, 2199, 2202, 2203, 2204, 2205, 2206, 2207, 2208, + 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2218, 2220, 2220, + 2229, 2237, 2245, 2245, 2256, 2257, 2260, 2261, 2262, 2263, + 2264, 2267, 2267, 2276, 2276, 2288, 2288, 2301, 2302, 2305, + 2306, 2307, 2308, 2309, 2310, 2313, 2319, 2319, 2328, 2334, + 2334, 2344, 2344, 2357, 2357, 2367, 2368, 2371, 2372, 2373, + 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, + 2384, 2385, 2386, 2387, 2388, 2391, 2397, 2397, 2406, 2412, + 2412, 2421, 2427, 2433, 2433, 2442, 2443, 2446, 2446, 2456, + 2456, 2466, 2473, 2480, 2480, 2489, 2489, 2499, 2499, 2509, + 2509, 2521, 2521, 2533, 2533, 2543, 2544, 2548, 2549, 2552, + 2552, 2563, 2571, 2571, 2584, 2585, 2589, 2589, 2597, 2598, + 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2610, 2616, 2616, + 2625, 2625, 2636, 2637, 2640, 2640, 2648, 2649, 2652, 2653, + 2654, 2655, 2656, 2659, 2659, 2668, 2674, 2680, 2686, 2686 }; + // Print the state stack on the debug stream. void - Dhcp4Parser::yy_stack_print_ () const + Dhcp4Parser::yystack_print_ () { *yycdebug_ << "Stack now"; for (stack_type::const_iterator @@ -5672,8 +5676,9 @@ namespace isc { namespace dhcp { *yycdebug_ << '\n'; } + // Report on the debug stream that the rule \a yyrule is going to be reduced. void - Dhcp4Parser::yy_reduce_print_ (int yyrule) const + Dhcp4Parser::yy_reduce_print_ (int yyrule) { int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; @@ -5690,9 +5695,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5694 "dhcp4_parser.cc" +#line 5699 "dhcp4_parser.cc" -#line 2676 "dhcp4_parser.yy" +#line 2695 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 84de6718dd..165693c280 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 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 @@ -38,9 +38,8 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. #ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED # define YY_PARSER4_DHCP4_PARSER_H_INCLUDED @@ -57,7 +56,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 61 "dhcp4_parser.h" +#line 60 "dhcp4_parser.h" # include # include // std::abort @@ -104,9 +103,9 @@ using namespace std; #endif # include "location.hh" #include -#ifndef PARSER4__ASSERT +#ifndef YY_ASSERT # include -# define PARSER4__ASSERT assert +# define YY_ASSERT assert #endif @@ -128,9 +127,9 @@ using namespace std; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) +# define YYUSE(E) ((void) (E)) #else -# define YY_USE(E) /* empty */ +# define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -200,7 +199,7 @@ using namespace std; #line 14 "dhcp4_parser.yy" namespace isc { namespace dhcp { -#line 204 "dhcp4_parser.h" +#line 203 "dhcp4_parser.h" @@ -232,21 +231,14 @@ namespace isc { namespace dhcp { semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (sizeof (T) <= size); new (yyas_ ()) T (YY_MOVE (t)); } -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - semantic_type (const self_type&) = delete; - /// Non copyable. - self_type& operator= (const self_type&) = delete; -#endif - /// Destruction, allowed only if empty. ~semantic_type () YY_NOEXCEPT { - PARSER4__ASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -255,8 +247,8 @@ namespace isc { namespace dhcp { T& emplace (U&&... u) { - PARSER4__ASSERT (!yytypeid_); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::forward (u)...); } @@ -266,8 +258,8 @@ namespace isc { namespace dhcp { T& emplace () { - PARSER4__ASSERT (!yytypeid_); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (); } @@ -277,8 +269,8 @@ namespace isc { namespace dhcp { T& emplace (const T& t) { - PARSER4__ASSERT (!yytypeid_); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (t); } @@ -307,9 +299,9 @@ namespace isc { namespace dhcp { T& as () YY_NOEXCEPT { - PARSER4__ASSERT (yytypeid_); - PARSER4__ASSERT (*yytypeid_ == typeid (T)); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -318,9 +310,9 @@ namespace isc { namespace dhcp { const T& as () const YY_NOEXCEPT { - PARSER4__ASSERT (yytypeid_); - PARSER4__ASSERT (*yytypeid_ == typeid (T)); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -336,8 +328,8 @@ namespace isc { namespace dhcp { void swap (self_type& that) YY_NOEXCEPT { - PARSER4__ASSERT (yytypeid_); - PARSER4__ASSERT (*yytypeid_ == *that.yytypeid_); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as (), that.as ()); } @@ -386,12 +378,9 @@ namespace isc { namespace dhcp { } private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - semantic_type (const self_type&); - /// Non copyable. + /// Prohibit blind copies. self_type& operator= (const self_type&); -#endif + semantic_type (const self_type&); /// Accessor to raw memory as \a T. template @@ -420,6 +409,7 @@ namespace isc { namespace dhcp { // socket_type // outbound_interface_value // db_type + // on_fail_mode // hr_mode // ncr_protocol_value char dummy1[sizeof (ElementPtr)]; @@ -477,849 +467,230 @@ namespace isc { namespace dhcp { location_type location; }; - /// Token kinds. + /// Tokens. struct token { - enum token_kind_type - { - TOKEN_PARSER4_EMPTY = -2, - TOKEN_END = 0, // "end of file" - TOKEN_PARSER4_error = 256, // error - TOKEN_PARSER4_UNDEF = 257, // "invalid token" - TOKEN_COMMA = 258, // "," - TOKEN_COLON = 259, // ":" - TOKEN_LSQUARE_BRACKET = 260, // "[" - TOKEN_RSQUARE_BRACKET = 261, // "]" - TOKEN_LCURLY_BRACKET = 262, // "{" - TOKEN_RCURLY_BRACKET = 263, // "}" - TOKEN_NULL_TYPE = 264, // "null" - TOKEN_DHCP4 = 265, // "Dhcp4" - TOKEN_CONFIG_CONTROL = 266, // "config-control" - TOKEN_CONFIG_DATABASES = 267, // "config-databases" - TOKEN_CONFIG_FETCH_WAIT_TIME = 268, // "config-fetch-wait-time" - TOKEN_INTERFACES_CONFIG = 269, // "interfaces-config" - TOKEN_INTERFACES = 270, // "interfaces" - TOKEN_DHCP_SOCKET_TYPE = 271, // "dhcp-socket-type" - TOKEN_RAW = 272, // "raw" - TOKEN_UDP = 273, // "udp" - TOKEN_OUTBOUND_INTERFACE = 274, // "outbound-interface" - TOKEN_SAME_AS_INBOUND = 275, // "same-as-inbound" - TOKEN_USE_ROUTING = 276, // "use-routing" - TOKEN_RE_DETECT = 277, // "re-detect" - TOKEN_SANITY_CHECKS = 278, // "sanity-checks" - TOKEN_LEASE_CHECKS = 279, // "lease-checks" - TOKEN_ECHO_CLIENT_ID = 280, // "echo-client-id" - TOKEN_MATCH_CLIENT_ID = 281, // "match-client-id" - TOKEN_AUTHORITATIVE = 282, // "authoritative" - TOKEN_NEXT_SERVER = 283, // "next-server" - TOKEN_SERVER_HOSTNAME = 284, // "server-hostname" - TOKEN_BOOT_FILE_NAME = 285, // "boot-file-name" - TOKEN_LEASE_DATABASE = 286, // "lease-database" - TOKEN_HOSTS_DATABASE = 287, // "hosts-database" - TOKEN_HOSTS_DATABASES = 288, // "hosts-databases" - TOKEN_TYPE = 289, // "type" - TOKEN_MEMFILE = 290, // "memfile" - TOKEN_MYSQL = 291, // "mysql" - TOKEN_POSTGRESQL = 292, // "postgresql" - TOKEN_CQL = 293, // "cql" - TOKEN_USER = 294, // "user" - TOKEN_PASSWORD = 295, // "password" - TOKEN_HOST = 296, // "host" - TOKEN_PORT = 297, // "port" - TOKEN_PERSIST = 298, // "persist" - TOKEN_LFC_INTERVAL = 299, // "lfc-interval" - TOKEN_READONLY = 300, // "readonly" - TOKEN_CONNECT_TIMEOUT = 301, // "connect-timeout" - TOKEN_CONTACT_POINTS = 302, // "contact-points" - TOKEN_KEYSPACE = 303, // "keyspace" - TOKEN_CONSISTENCY = 304, // "consistency" - TOKEN_SERIAL_CONSISTENCY = 305, // "serial-consistency" - TOKEN_MAX_RECONNECT_TRIES = 306, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 307, // "reconnect-wait-time" - TOKEN_REQUEST_TIMEOUT = 308, // "request-timeout" - TOKEN_TCP_KEEPALIVE = 309, // "tcp-keepalive" - TOKEN_TCP_NODELAY = 310, // "tcp-nodelay" - TOKEN_MAX_ROW_ERRORS = 311, // "max-row-errors" - TOKEN_VALID_LIFETIME = 312, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 313, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 314, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 315, // "renew-timer" - TOKEN_REBIND_TIMER = 316, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 317, // "calculate-tee-times" - TOKEN_T1_PERCENT = 318, // "t1-percent" - TOKEN_T2_PERCENT = 319, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 320, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 321, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 322, // "decline-probation-period" - TOKEN_SERVER_TAG = 323, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 324, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 325, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 326, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 327, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 328, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 329, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 330, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 331, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 332, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 333, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 334, // "store-extended-info" - TOKEN_SUBNET4 = 335, // "subnet4" - TOKEN_SUBNET_4O6_INTERFACE = 336, // "4o6-interface" - TOKEN_SUBNET_4O6_INTERFACE_ID = 337, // "4o6-interface-id" - TOKEN_SUBNET_4O6_SUBNET = 338, // "4o6-subnet" - TOKEN_OPTION_DEF = 339, // "option-def" - TOKEN_OPTION_DATA = 340, // "option-data" - TOKEN_NAME = 341, // "name" - TOKEN_DATA = 342, // "data" - TOKEN_CODE = 343, // "code" - TOKEN_SPACE = 344, // "space" - TOKEN_CSV_FORMAT = 345, // "csv-format" - TOKEN_ALWAYS_SEND = 346, // "always-send" - TOKEN_RECORD_TYPES = 347, // "record-types" - TOKEN_ENCAPSULATE = 348, // "encapsulate" - TOKEN_ARRAY = 349, // "array" - TOKEN_SHARED_NETWORKS = 350, // "shared-networks" - TOKEN_POOLS = 351, // "pools" - TOKEN_POOL = 352, // "pool" - TOKEN_USER_CONTEXT = 353, // "user-context" - TOKEN_COMMENT = 354, // "comment" - TOKEN_SUBNET = 355, // "subnet" - TOKEN_INTERFACE = 356, // "interface" - TOKEN_ID = 357, // "id" - TOKEN_RESERVATION_MODE = 358, // "reservation-mode" - TOKEN_DISABLED = 359, // "disabled" - TOKEN_OUT_OF_POOL = 360, // "out-of-pool" - TOKEN_GLOBAL = 361, // "global" - TOKEN_ALL = 362, // "all" - TOKEN_RESERVATIONS_GLOBAL = 363, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 364, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 365, // "reservations-out-of-pool" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 366, // "host-reservation-identifiers" - TOKEN_CLIENT_CLASSES = 367, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 368, // "require-client-classes" - TOKEN_TEST = 369, // "test" - TOKEN_ONLY_IF_REQUIRED = 370, // "only-if-required" - TOKEN_CLIENT_CLASS = 371, // "client-class" - TOKEN_RESERVATIONS = 372, // "reservations" - TOKEN_DUID = 373, // "duid" - TOKEN_HW_ADDRESS = 374, // "hw-address" - TOKEN_CIRCUIT_ID = 375, // "circuit-id" - TOKEN_CLIENT_ID = 376, // "client-id" - TOKEN_HOSTNAME = 377, // "hostname" - TOKEN_FLEX_ID = 378, // "flex-id" - TOKEN_RELAY = 379, // "relay" - TOKEN_IP_ADDRESS = 380, // "ip-address" - TOKEN_IP_ADDRESSES = 381, // "ip-addresses" - TOKEN_HOOKS_LIBRARIES = 382, // "hooks-libraries" - TOKEN_LIBRARY = 383, // "library" - TOKEN_PARAMETERS = 384, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 385, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 386, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 387, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 388, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 389, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 390, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 391, // "unwarned-reclaim-cycles" - TOKEN_DHCP4O6_PORT = 392, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 393, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 394, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 395, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 396, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 397, // "control-socket" - TOKEN_SOCKET_TYPE = 398, // "socket-type" - TOKEN_SOCKET_NAME = 399, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 400, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 401, // "enable-queue" - TOKEN_QUEUE_TYPE = 402, // "queue-type" - TOKEN_CAPACITY = 403, // "capacity" - TOKEN_DHCP_DDNS = 404, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 405, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 406, // "qualifying-suffix" - TOKEN_SERVER_IP = 407, // "server-ip" - TOKEN_SERVER_PORT = 408, // "server-port" - TOKEN_SENDER_IP = 409, // "sender-ip" - TOKEN_SENDER_PORT = 410, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 411, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 412, // "ncr-protocol" - TOKEN_NCR_FORMAT = 413, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 414, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 415, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 416, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 417, // "generated-prefix" - TOKEN_TCP = 418, // "tcp" - TOKEN_JSON = 419, // "JSON" - TOKEN_WHEN_PRESENT = 420, // "when-present" - TOKEN_NEVER = 421, // "never" - TOKEN_ALWAYS = 422, // "always" - TOKEN_WHEN_NOT_PRESENT = 423, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 424, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 425, // "hostname-char-replacement" - TOKEN_IP_RESERVATIONS_UNIQUE = 426, // "ip-reservations-unique" - TOKEN_LOGGERS = 427, // "loggers" - TOKEN_OUTPUT_OPTIONS = 428, // "output_options" - TOKEN_OUTPUT = 429, // "output" - TOKEN_DEBUGLEVEL = 430, // "debuglevel" - TOKEN_SEVERITY = 431, // "severity" - TOKEN_FLUSH = 432, // "flush" - TOKEN_MAXSIZE = 433, // "maxsize" - TOKEN_MAXVER = 434, // "maxver" - TOKEN_PATTERN = 435, // "pattern" - TOKEN_TOPLEVEL_JSON = 436, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 437, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 438, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 439, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 440, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 441, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 442, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 443, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 444, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 445, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 446, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 447, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 448, // SUB_CONFIG_CONTROL - TOKEN_STRING = 449, // "constant string" - TOKEN_INTEGER = 450, // "integer" - TOKEN_FLOAT = 451, // "floating point" - TOKEN_BOOLEAN = 452 // "boolean" + enum yytokentype + { + TOKEN_END = 0, + TOKEN_COMMA = 258, + TOKEN_COLON = 259, + TOKEN_LSQUARE_BRACKET = 260, + TOKEN_RSQUARE_BRACKET = 261, + TOKEN_LCURLY_BRACKET = 262, + TOKEN_RCURLY_BRACKET = 263, + TOKEN_NULL_TYPE = 264, + TOKEN_DHCP4 = 265, + TOKEN_CONFIG_CONTROL = 266, + TOKEN_CONFIG_DATABASES = 267, + TOKEN_CONFIG_FETCH_WAIT_TIME = 268, + TOKEN_INTERFACES_CONFIG = 269, + TOKEN_INTERFACES = 270, + TOKEN_DHCP_SOCKET_TYPE = 271, + TOKEN_RAW = 272, + TOKEN_UDP = 273, + TOKEN_OUTBOUND_INTERFACE = 274, + TOKEN_SAME_AS_INBOUND = 275, + TOKEN_USE_ROUTING = 276, + TOKEN_RE_DETECT = 277, + TOKEN_SANITY_CHECKS = 278, + TOKEN_LEASE_CHECKS = 279, + TOKEN_ECHO_CLIENT_ID = 280, + TOKEN_MATCH_CLIENT_ID = 281, + TOKEN_AUTHORITATIVE = 282, + TOKEN_NEXT_SERVER = 283, + TOKEN_SERVER_HOSTNAME = 284, + TOKEN_BOOT_FILE_NAME = 285, + TOKEN_LEASE_DATABASE = 286, + TOKEN_HOSTS_DATABASE = 287, + TOKEN_HOSTS_DATABASES = 288, + TOKEN_TYPE = 289, + TOKEN_MEMFILE = 290, + TOKEN_MYSQL = 291, + TOKEN_POSTGRESQL = 292, + TOKEN_CQL = 293, + TOKEN_USER = 294, + TOKEN_PASSWORD = 295, + TOKEN_HOST = 296, + TOKEN_PORT = 297, + TOKEN_PERSIST = 298, + TOKEN_LFC_INTERVAL = 299, + TOKEN_READONLY = 300, + TOKEN_CONNECT_TIMEOUT = 301, + TOKEN_CONTACT_POINTS = 302, + TOKEN_KEYSPACE = 303, + TOKEN_CONSISTENCY = 304, + TOKEN_SERIAL_CONSISTENCY = 305, + TOKEN_MAX_RECONNECT_TRIES = 306, + TOKEN_RECONNECT_WAIT_TIME = 307, + TOKEN_ON_FAIL = 308, + TOKEN_STOP_RETRY_EXIT = 309, + TOKEN_SERVE_RETRY_EXIT = 310, + TOKEN_SERVE_RETRY_CONTINUE = 311, + TOKEN_REQUEST_TIMEOUT = 312, + TOKEN_TCP_KEEPALIVE = 313, + TOKEN_TCP_NODELAY = 314, + TOKEN_MAX_ROW_ERRORS = 315, + TOKEN_VALID_LIFETIME = 316, + TOKEN_MIN_VALID_LIFETIME = 317, + TOKEN_MAX_VALID_LIFETIME = 318, + TOKEN_RENEW_TIMER = 319, + TOKEN_REBIND_TIMER = 320, + TOKEN_CALCULATE_TEE_TIMES = 321, + TOKEN_T1_PERCENT = 322, + TOKEN_T2_PERCENT = 323, + TOKEN_CACHE_THRESHOLD = 324, + TOKEN_CACHE_MAX_AGE = 325, + TOKEN_DECLINE_PROBATION_PERIOD = 326, + TOKEN_SERVER_TAG = 327, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 328, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 329, + TOKEN_DDNS_SEND_UPDATES = 330, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 331, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 332, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 333, + TOKEN_DDNS_GENERATED_PREFIX = 334, + TOKEN_DDNS_QUALIFYING_SUFFIX = 335, + TOKEN_DDNS_UPDATE_ON_RENEW = 336, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 337, + TOKEN_STORE_EXTENDED_INFO = 338, + TOKEN_SUBNET4 = 339, + TOKEN_SUBNET_4O6_INTERFACE = 340, + TOKEN_SUBNET_4O6_INTERFACE_ID = 341, + TOKEN_SUBNET_4O6_SUBNET = 342, + TOKEN_OPTION_DEF = 343, + TOKEN_OPTION_DATA = 344, + TOKEN_NAME = 345, + TOKEN_DATA = 346, + TOKEN_CODE = 347, + TOKEN_SPACE = 348, + TOKEN_CSV_FORMAT = 349, + TOKEN_ALWAYS_SEND = 350, + TOKEN_RECORD_TYPES = 351, + TOKEN_ENCAPSULATE = 352, + TOKEN_ARRAY = 353, + TOKEN_SHARED_NETWORKS = 354, + TOKEN_POOLS = 355, + TOKEN_POOL = 356, + TOKEN_USER_CONTEXT = 357, + TOKEN_COMMENT = 358, + TOKEN_SUBNET = 359, + TOKEN_INTERFACE = 360, + TOKEN_ID = 361, + TOKEN_RESERVATION_MODE = 362, + TOKEN_DISABLED = 363, + TOKEN_OUT_OF_POOL = 364, + TOKEN_GLOBAL = 365, + TOKEN_ALL = 366, + TOKEN_RESERVATIONS_GLOBAL = 367, + TOKEN_RESERVATIONS_IN_SUBNET = 368, + TOKEN_RESERVATIONS_OUT_OF_POOL = 369, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 370, + TOKEN_CLIENT_CLASSES = 371, + TOKEN_REQUIRE_CLIENT_CLASSES = 372, + TOKEN_TEST = 373, + TOKEN_ONLY_IF_REQUIRED = 374, + TOKEN_CLIENT_CLASS = 375, + TOKEN_RESERVATIONS = 376, + TOKEN_DUID = 377, + TOKEN_HW_ADDRESS = 378, + TOKEN_CIRCUIT_ID = 379, + TOKEN_CLIENT_ID = 380, + TOKEN_HOSTNAME = 381, + TOKEN_FLEX_ID = 382, + TOKEN_RELAY = 383, + TOKEN_IP_ADDRESS = 384, + TOKEN_IP_ADDRESSES = 385, + TOKEN_HOOKS_LIBRARIES = 386, + TOKEN_LIBRARY = 387, + TOKEN_PARAMETERS = 388, + TOKEN_EXPIRED_LEASES_PROCESSING = 389, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 390, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 391, + TOKEN_HOLD_RECLAIMED_TIME = 392, + TOKEN_MAX_RECLAIM_LEASES = 393, + TOKEN_MAX_RECLAIM_TIME = 394, + TOKEN_UNWARNED_RECLAIM_CYCLES = 395, + TOKEN_DHCP4O6_PORT = 396, + TOKEN_DHCP_MULTI_THREADING = 397, + TOKEN_ENABLE_MULTI_THREADING = 398, + TOKEN_THREAD_POOL_SIZE = 399, + TOKEN_PACKET_QUEUE_SIZE = 400, + TOKEN_CONTROL_SOCKET = 401, + TOKEN_SOCKET_TYPE = 402, + TOKEN_SOCKET_NAME = 403, + TOKEN_DHCP_QUEUE_CONTROL = 404, + TOKEN_ENABLE_QUEUE = 405, + TOKEN_QUEUE_TYPE = 406, + TOKEN_CAPACITY = 407, + TOKEN_DHCP_DDNS = 408, + TOKEN_ENABLE_UPDATES = 409, + TOKEN_QUALIFYING_SUFFIX = 410, + TOKEN_SERVER_IP = 411, + TOKEN_SERVER_PORT = 412, + TOKEN_SENDER_IP = 413, + TOKEN_SENDER_PORT = 414, + TOKEN_MAX_QUEUE_SIZE = 415, + TOKEN_NCR_PROTOCOL = 416, + TOKEN_NCR_FORMAT = 417, + TOKEN_OVERRIDE_NO_UPDATE = 418, + TOKEN_OVERRIDE_CLIENT_UPDATE = 419, + TOKEN_REPLACE_CLIENT_NAME = 420, + TOKEN_GENERATED_PREFIX = 421, + TOKEN_TCP = 422, + TOKEN_JSON = 423, + TOKEN_WHEN_PRESENT = 424, + TOKEN_NEVER = 425, + TOKEN_ALWAYS = 426, + TOKEN_WHEN_NOT_PRESENT = 427, + TOKEN_HOSTNAME_CHAR_SET = 428, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 429, + TOKEN_IP_RESERVATIONS_UNIQUE = 430, + TOKEN_LOGGERS = 431, + TOKEN_OUTPUT_OPTIONS = 432, + TOKEN_OUTPUT = 433, + TOKEN_DEBUGLEVEL = 434, + TOKEN_SEVERITY = 435, + TOKEN_FLUSH = 436, + TOKEN_MAXSIZE = 437, + TOKEN_MAXVER = 438, + TOKEN_PATTERN = 439, + TOKEN_TOPLEVEL_JSON = 440, + TOKEN_TOPLEVEL_DHCP4 = 441, + TOKEN_SUB_DHCP4 = 442, + TOKEN_SUB_INTERFACES4 = 443, + TOKEN_SUB_SUBNET4 = 444, + TOKEN_SUB_POOL4 = 445, + TOKEN_SUB_RESERVATION = 446, + TOKEN_SUB_OPTION_DEFS = 447, + TOKEN_SUB_OPTION_DEF = 448, + TOKEN_SUB_OPTION_DATA = 449, + TOKEN_SUB_HOOKS_LIBRARY = 450, + TOKEN_SUB_DHCP_DDNS = 451, + TOKEN_SUB_CONFIG_CONTROL = 452, + TOKEN_STRING = 453, + TOKEN_INTEGER = 454, + TOKEN_FLOAT = 455, + TOKEN_BOOLEAN = 456 }; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type yytokentype; }; - /// Token kind, as returned by yylex. - typedef token::yytokentype token_kind_type; + /// (External) token type, as returned by yylex. + typedef token::yytokentype token_type; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type token_type; + /// Symbol type: an internal symbol number. + typedef int symbol_number_type; - /// Symbol kinds. - struct symbol_kind - { - enum symbol_kind_type - { - YYNTOKENS = 198, ///< Number of tokens. - S_YYEMPTY = -2, - S_YYEOF = 0, // "end of file" - S_YYerror = 1, // error - S_YYUNDEF = 2, // "invalid token" - S_COMMA = 3, // "," - S_COLON = 4, // ":" - S_LSQUARE_BRACKET = 5, // "[" - S_RSQUARE_BRACKET = 6, // "]" - S_LCURLY_BRACKET = 7, // "{" - S_RCURLY_BRACKET = 8, // "}" - S_NULL_TYPE = 9, // "null" - S_DHCP4 = 10, // "Dhcp4" - S_CONFIG_CONTROL = 11, // "config-control" - S_CONFIG_DATABASES = 12, // "config-databases" - S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time" - S_INTERFACES_CONFIG = 14, // "interfaces-config" - S_INTERFACES = 15, // "interfaces" - S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type" - S_RAW = 17, // "raw" - S_UDP = 18, // "udp" - S_OUTBOUND_INTERFACE = 19, // "outbound-interface" - S_SAME_AS_INBOUND = 20, // "same-as-inbound" - S_USE_ROUTING = 21, // "use-routing" - S_RE_DETECT = 22, // "re-detect" - S_SANITY_CHECKS = 23, // "sanity-checks" - S_LEASE_CHECKS = 24, // "lease-checks" - S_ECHO_CLIENT_ID = 25, // "echo-client-id" - S_MATCH_CLIENT_ID = 26, // "match-client-id" - S_AUTHORITATIVE = 27, // "authoritative" - S_NEXT_SERVER = 28, // "next-server" - S_SERVER_HOSTNAME = 29, // "server-hostname" - S_BOOT_FILE_NAME = 30, // "boot-file-name" - S_LEASE_DATABASE = 31, // "lease-database" - S_HOSTS_DATABASE = 32, // "hosts-database" - S_HOSTS_DATABASES = 33, // "hosts-databases" - S_TYPE = 34, // "type" - S_MEMFILE = 35, // "memfile" - S_MYSQL = 36, // "mysql" - S_POSTGRESQL = 37, // "postgresql" - S_CQL = 38, // "cql" - S_USER = 39, // "user" - S_PASSWORD = 40, // "password" - S_HOST = 41, // "host" - S_PORT = 42, // "port" - S_PERSIST = 43, // "persist" - S_LFC_INTERVAL = 44, // "lfc-interval" - S_READONLY = 45, // "readonly" - S_CONNECT_TIMEOUT = 46, // "connect-timeout" - S_CONTACT_POINTS = 47, // "contact-points" - S_KEYSPACE = 48, // "keyspace" - S_CONSISTENCY = 49, // "consistency" - S_SERIAL_CONSISTENCY = 50, // "serial-consistency" - S_MAX_RECONNECT_TRIES = 51, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 52, // "reconnect-wait-time" - S_REQUEST_TIMEOUT = 53, // "request-timeout" - S_TCP_KEEPALIVE = 54, // "tcp-keepalive" - S_TCP_NODELAY = 55, // "tcp-nodelay" - S_MAX_ROW_ERRORS = 56, // "max-row-errors" - S_VALID_LIFETIME = 57, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 58, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 59, // "max-valid-lifetime" - S_RENEW_TIMER = 60, // "renew-timer" - S_REBIND_TIMER = 61, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 62, // "calculate-tee-times" - S_T1_PERCENT = 63, // "t1-percent" - S_T2_PERCENT = 64, // "t2-percent" - S_CACHE_THRESHOLD = 65, // "cache-threshold" - S_CACHE_MAX_AGE = 66, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 67, // "decline-probation-period" - S_SERVER_TAG = 68, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 69, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 70, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 71, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 72, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 73, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 74, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 75, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 76, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 77, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 78, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 79, // "store-extended-info" - S_SUBNET4 = 80, // "subnet4" - S_SUBNET_4O6_INTERFACE = 81, // "4o6-interface" - S_SUBNET_4O6_INTERFACE_ID = 82, // "4o6-interface-id" - S_SUBNET_4O6_SUBNET = 83, // "4o6-subnet" - S_OPTION_DEF = 84, // "option-def" - S_OPTION_DATA = 85, // "option-data" - S_NAME = 86, // "name" - S_DATA = 87, // "data" - S_CODE = 88, // "code" - S_SPACE = 89, // "space" - S_CSV_FORMAT = 90, // "csv-format" - S_ALWAYS_SEND = 91, // "always-send" - S_RECORD_TYPES = 92, // "record-types" - S_ENCAPSULATE = 93, // "encapsulate" - S_ARRAY = 94, // "array" - S_SHARED_NETWORKS = 95, // "shared-networks" - S_POOLS = 96, // "pools" - S_POOL = 97, // "pool" - S_USER_CONTEXT = 98, // "user-context" - S_COMMENT = 99, // "comment" - S_SUBNET = 100, // "subnet" - S_INTERFACE = 101, // "interface" - S_ID = 102, // "id" - S_RESERVATION_MODE = 103, // "reservation-mode" - S_DISABLED = 104, // "disabled" - S_OUT_OF_POOL = 105, // "out-of-pool" - S_GLOBAL = 106, // "global" - S_ALL = 107, // "all" - S_RESERVATIONS_GLOBAL = 108, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 109, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 110, // "reservations-out-of-pool" - S_HOST_RESERVATION_IDENTIFIERS = 111, // "host-reservation-identifiers" - S_CLIENT_CLASSES = 112, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 113, // "require-client-classes" - S_TEST = 114, // "test" - S_ONLY_IF_REQUIRED = 115, // "only-if-required" - S_CLIENT_CLASS = 116, // "client-class" - S_RESERVATIONS = 117, // "reservations" - S_DUID = 118, // "duid" - S_HW_ADDRESS = 119, // "hw-address" - S_CIRCUIT_ID = 120, // "circuit-id" - S_CLIENT_ID = 121, // "client-id" - S_HOSTNAME = 122, // "hostname" - S_FLEX_ID = 123, // "flex-id" - S_RELAY = 124, // "relay" - S_IP_ADDRESS = 125, // "ip-address" - S_IP_ADDRESSES = 126, // "ip-addresses" - S_HOOKS_LIBRARIES = 127, // "hooks-libraries" - S_LIBRARY = 128, // "library" - S_PARAMETERS = 129, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 130, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 131, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 132, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 133, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 134, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 135, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 136, // "unwarned-reclaim-cycles" - S_DHCP4O6_PORT = 137, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 138, // "multi-threading" - S_ENABLE_MULTI_THREADING = 139, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 140, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 141, // "packet-queue-size" - S_CONTROL_SOCKET = 142, // "control-socket" - S_SOCKET_TYPE = 143, // "socket-type" - S_SOCKET_NAME = 144, // "socket-name" - S_DHCP_QUEUE_CONTROL = 145, // "dhcp-queue-control" - S_ENABLE_QUEUE = 146, // "enable-queue" - S_QUEUE_TYPE = 147, // "queue-type" - S_CAPACITY = 148, // "capacity" - S_DHCP_DDNS = 149, // "dhcp-ddns" - S_ENABLE_UPDATES = 150, // "enable-updates" - S_QUALIFYING_SUFFIX = 151, // "qualifying-suffix" - S_SERVER_IP = 152, // "server-ip" - S_SERVER_PORT = 153, // "server-port" - S_SENDER_IP = 154, // "sender-ip" - S_SENDER_PORT = 155, // "sender-port" - S_MAX_QUEUE_SIZE = 156, // "max-queue-size" - S_NCR_PROTOCOL = 157, // "ncr-protocol" - S_NCR_FORMAT = 158, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 159, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 160, // "override-client-update" - S_REPLACE_CLIENT_NAME = 161, // "replace-client-name" - S_GENERATED_PREFIX = 162, // "generated-prefix" - S_TCP = 163, // "tcp" - S_JSON = 164, // "JSON" - S_WHEN_PRESENT = 165, // "when-present" - S_NEVER = 166, // "never" - S_ALWAYS = 167, // "always" - S_WHEN_NOT_PRESENT = 168, // "when-not-present" - S_HOSTNAME_CHAR_SET = 169, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 170, // "hostname-char-replacement" - S_IP_RESERVATIONS_UNIQUE = 171, // "ip-reservations-unique" - S_LOGGERS = 172, // "loggers" - S_OUTPUT_OPTIONS = 173, // "output_options" - S_OUTPUT = 174, // "output" - S_DEBUGLEVEL = 175, // "debuglevel" - S_SEVERITY = 176, // "severity" - S_FLUSH = 177, // "flush" - S_MAXSIZE = 178, // "maxsize" - S_MAXVER = 179, // "maxver" - S_PATTERN = 180, // "pattern" - S_TOPLEVEL_JSON = 181, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 182, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 183, // SUB_DHCP4 - S_SUB_INTERFACES4 = 184, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 185, // SUB_SUBNET4 - S_SUB_POOL4 = 186, // SUB_POOL4 - S_SUB_RESERVATION = 187, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 188, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 189, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 190, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 191, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 192, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 193, // SUB_CONFIG_CONTROL - S_STRING = 194, // "constant string" - S_INTEGER = 195, // "integer" - S_FLOAT = 196, // "floating point" - S_BOOLEAN = 197, // "boolean" - S_YYACCEPT = 198, // $accept - S_start = 199, // start - S_200_1 = 200, // $@1 - S_201_2 = 201, // $@2 - S_202_3 = 202, // $@3 - S_203_4 = 203, // $@4 - S_204_5 = 204, // $@5 - S_205_6 = 205, // $@6 - S_206_7 = 206, // $@7 - S_207_8 = 207, // $@8 - S_208_9 = 208, // $@9 - S_209_10 = 209, // $@10 - S_210_11 = 210, // $@11 - S_211_12 = 211, // $@12 - S_212_13 = 212, // $@13 - S_value = 213, // value - S_sub_json = 214, // sub_json - S_map2 = 215, // map2 - S_216_14 = 216, // $@14 - S_map_value = 217, // map_value - S_map_content = 218, // map_content - S_not_empty_map = 219, // not_empty_map - S_list_generic = 220, // list_generic - S_221_15 = 221, // $@15 - S_list_content = 222, // list_content - S_not_empty_list = 223, // not_empty_list - S_list_strings = 224, // list_strings - S_225_16 = 225, // $@16 - S_list_strings_content = 226, // list_strings_content - S_not_empty_list_strings = 227, // not_empty_list_strings - S_unknown_map_entry = 228, // unknown_map_entry - S_syntax_map = 229, // syntax_map - S_230_17 = 230, // $@17 - S_global_object = 231, // global_object - S_232_18 = 232, // $@18 - S_sub_dhcp4 = 233, // sub_dhcp4 - S_234_19 = 234, // $@19 - S_global_params = 235, // global_params - S_global_param = 236, // global_param - S_valid_lifetime = 237, // valid_lifetime - S_min_valid_lifetime = 238, // min_valid_lifetime - S_max_valid_lifetime = 239, // max_valid_lifetime - S_renew_timer = 240, // renew_timer - S_rebind_timer = 241, // rebind_timer - S_calculate_tee_times = 242, // calculate_tee_times - S_t1_percent = 243, // t1_percent - S_t2_percent = 244, // t2_percent - S_cache_threshold = 245, // cache_threshold - S_cache_max_age = 246, // cache_max_age - S_decline_probation_period = 247, // decline_probation_period - S_server_tag = 248, // server_tag - S_249_20 = 249, // $@20 - S_echo_client_id = 250, // echo_client_id - S_match_client_id = 251, // match_client_id - S_authoritative = 252, // authoritative - S_ddns_send_updates = 253, // ddns_send_updates - S_ddns_override_no_update = 254, // ddns_override_no_update - S_ddns_override_client_update = 255, // ddns_override_client_update - S_ddns_replace_client_name = 256, // ddns_replace_client_name - S_257_21 = 257, // $@21 - S_ddns_replace_client_name_value = 258, // ddns_replace_client_name_value - S_ddns_generated_prefix = 259, // ddns_generated_prefix - S_260_22 = 260, // $@22 - S_ddns_qualifying_suffix = 261, // ddns_qualifying_suffix - S_262_23 = 262, // $@23 - S_ddns_update_on_renew = 263, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 264, // ddns_use_conflict_resolution - S_hostname_char_set = 265, // hostname_char_set - S_266_24 = 266, // $@24 - S_hostname_char_replacement = 267, // hostname_char_replacement - S_268_25 = 268, // $@25 - S_store_extended_info = 269, // store_extended_info - S_statistic_default_sample_count = 270, // statistic_default_sample_count - S_statistic_default_sample_age = 271, // statistic_default_sample_age - S_ip_reservations_unique = 272, // ip_reservations_unique - S_interfaces_config = 273, // interfaces_config - S_274_26 = 274, // $@26 - S_interfaces_config_params = 275, // interfaces_config_params - S_interfaces_config_param = 276, // interfaces_config_param - S_sub_interfaces4 = 277, // sub_interfaces4 - S_278_27 = 278, // $@27 - S_interfaces_list = 279, // interfaces_list - S_280_28 = 280, // $@28 - S_dhcp_socket_type = 281, // dhcp_socket_type - S_282_29 = 282, // $@29 - S_socket_type = 283, // socket_type - S_outbound_interface = 284, // outbound_interface - S_285_30 = 285, // $@30 - S_outbound_interface_value = 286, // outbound_interface_value - S_re_detect = 287, // re_detect - S_lease_database = 288, // lease_database - S_289_31 = 289, // $@31 - S_sanity_checks = 290, // sanity_checks - S_291_32 = 291, // $@32 - S_sanity_checks_params = 292, // sanity_checks_params - S_sanity_checks_param = 293, // sanity_checks_param - S_lease_checks = 294, // lease_checks - S_295_33 = 295, // $@33 - S_hosts_database = 296, // hosts_database - S_297_34 = 297, // $@34 - S_hosts_databases = 298, // hosts_databases - S_299_35 = 299, // $@35 - S_database_list = 300, // database_list - S_not_empty_database_list = 301, // not_empty_database_list - S_database = 302, // database - S_303_36 = 303, // $@36 - S_database_map_params = 304, // database_map_params - S_database_map_param = 305, // database_map_param - S_database_type = 306, // database_type - S_307_37 = 307, // $@37 - S_db_type = 308, // db_type - S_user = 309, // user - S_310_38 = 310, // $@38 - S_password = 311, // password - S_312_39 = 312, // $@39 - S_host = 313, // host - S_314_40 = 314, // $@40 - S_port = 315, // port - S_name = 316, // name - S_317_41 = 317, // $@41 - S_persist = 318, // persist - S_lfc_interval = 319, // lfc_interval - S_readonly = 320, // readonly - S_connect_timeout = 321, // connect_timeout - S_request_timeout = 322, // request_timeout - S_tcp_keepalive = 323, // tcp_keepalive - S_tcp_nodelay = 324, // tcp_nodelay - S_contact_points = 325, // contact_points - S_326_42 = 326, // $@42 - S_keyspace = 327, // keyspace - S_328_43 = 328, // $@43 - S_consistency = 329, // consistency - S_330_44 = 330, // $@44 - S_serial_consistency = 331, // serial_consistency - S_332_45 = 332, // $@45 - S_max_reconnect_tries = 333, // max_reconnect_tries - S_reconnect_wait_time = 334, // reconnect_wait_time - S_max_row_errors = 335, // max_row_errors - S_host_reservation_identifiers = 336, // host_reservation_identifiers - S_337_46 = 337, // $@46 - S_host_reservation_identifiers_list = 338, // host_reservation_identifiers_list - S_host_reservation_identifier = 339, // host_reservation_identifier - S_duid_id = 340, // duid_id - S_hw_address_id = 341, // hw_address_id - S_circuit_id = 342, // circuit_id - S_client_id = 343, // client_id - S_flex_id = 344, // flex_id - S_dhcp_multi_threading = 345, // dhcp_multi_threading - S_346_47 = 346, // $@47 - S_multi_threading_params = 347, // multi_threading_params - S_multi_threading_param = 348, // multi_threading_param - S_enable_multi_threading = 349, // enable_multi_threading - S_thread_pool_size = 350, // thread_pool_size - S_packet_queue_size = 351, // packet_queue_size - S_hooks_libraries = 352, // hooks_libraries - S_353_48 = 353, // $@48 - S_hooks_libraries_list = 354, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 355, // not_empty_hooks_libraries_list - S_hooks_library = 356, // hooks_library - S_357_49 = 357, // $@49 - S_sub_hooks_library = 358, // sub_hooks_library - S_359_50 = 359, // $@50 - S_hooks_params = 360, // hooks_params - S_hooks_param = 361, // hooks_param - S_library = 362, // library - S_363_51 = 363, // $@51 - S_parameters = 364, // parameters - S_365_52 = 365, // $@52 - S_expired_leases_processing = 366, // expired_leases_processing - S_367_53 = 367, // $@53 - S_expired_leases_params = 368, // expired_leases_params - S_expired_leases_param = 369, // expired_leases_param - S_reclaim_timer_wait_time = 370, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 371, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 372, // hold_reclaimed_time - S_max_reclaim_leases = 373, // max_reclaim_leases - S_max_reclaim_time = 374, // max_reclaim_time - S_unwarned_reclaim_cycles = 375, // unwarned_reclaim_cycles - S_subnet4_list = 376, // subnet4_list - S_377_54 = 377, // $@54 - S_subnet4_list_content = 378, // subnet4_list_content - S_not_empty_subnet4_list = 379, // not_empty_subnet4_list - S_subnet4 = 380, // subnet4 - S_381_55 = 381, // $@55 - S_sub_subnet4 = 382, // sub_subnet4 - S_383_56 = 383, // $@56 - S_subnet4_params = 384, // subnet4_params - S_subnet4_param = 385, // subnet4_param - S_subnet = 386, // subnet - S_387_57 = 387, // $@57 - S_subnet_4o6_interface = 388, // subnet_4o6_interface - S_389_58 = 389, // $@58 - S_subnet_4o6_interface_id = 390, // subnet_4o6_interface_id - S_391_59 = 391, // $@59 - S_subnet_4o6_subnet = 392, // subnet_4o6_subnet - S_393_60 = 393, // $@60 - S_interface = 394, // interface - S_395_61 = 395, // $@61 - S_client_class = 396, // client_class - S_397_62 = 397, // $@62 - S_require_client_classes = 398, // require_client_classes - S_399_63 = 399, // $@63 - S_reservations_global = 400, // reservations_global - S_reservations_in_subnet = 401, // reservations_in_subnet - S_reservations_out_of_pool = 402, // reservations_out_of_pool - S_reservation_mode = 403, // reservation_mode - S_404_64 = 404, // $@64 - S_hr_mode = 405, // hr_mode - S_id = 406, // id - S_shared_networks = 407, // shared_networks - S_408_65 = 408, // $@65 - S_shared_networks_content = 409, // shared_networks_content - S_shared_networks_list = 410, // shared_networks_list - S_shared_network = 411, // shared_network - S_412_66 = 412, // $@66 - S_shared_network_params = 413, // shared_network_params - S_shared_network_param = 414, // shared_network_param - S_option_def_list = 415, // option_def_list - S_416_67 = 416, // $@67 - S_sub_option_def_list = 417, // sub_option_def_list - S_418_68 = 418, // $@68 - S_option_def_list_content = 419, // option_def_list_content - S_not_empty_option_def_list = 420, // not_empty_option_def_list - S_option_def_entry = 421, // option_def_entry - S_422_69 = 422, // $@69 - S_sub_option_def = 423, // sub_option_def - S_424_70 = 424, // $@70 - S_option_def_params = 425, // option_def_params - S_not_empty_option_def_params = 426, // not_empty_option_def_params - S_option_def_param = 427, // option_def_param - S_option_def_name = 428, // option_def_name - S_code = 429, // code - S_option_def_code = 430, // option_def_code - S_option_def_type = 431, // option_def_type - S_432_71 = 432, // $@71 - S_option_def_record_types = 433, // option_def_record_types - S_434_72 = 434, // $@72 - S_space = 435, // space - S_436_73 = 436, // $@73 - S_option_def_space = 437, // option_def_space - S_option_def_encapsulate = 438, // option_def_encapsulate - S_439_74 = 439, // $@74 - S_option_def_array = 440, // option_def_array - S_option_data_list = 441, // option_data_list - S_442_75 = 442, // $@75 - S_option_data_list_content = 443, // option_data_list_content - S_not_empty_option_data_list = 444, // not_empty_option_data_list - S_option_data_entry = 445, // option_data_entry - S_446_76 = 446, // $@76 - S_sub_option_data = 447, // sub_option_data - S_448_77 = 448, // $@77 - S_option_data_params = 449, // option_data_params - S_not_empty_option_data_params = 450, // not_empty_option_data_params - S_option_data_param = 451, // option_data_param - S_option_data_name = 452, // option_data_name - S_option_data_data = 453, // option_data_data - S_454_78 = 454, // $@78 - S_option_data_code = 455, // option_data_code - S_option_data_space = 456, // option_data_space - S_option_data_csv_format = 457, // option_data_csv_format - S_option_data_always_send = 458, // option_data_always_send - S_pools_list = 459, // pools_list - S_460_79 = 460, // $@79 - S_pools_list_content = 461, // pools_list_content - S_not_empty_pools_list = 462, // not_empty_pools_list - S_pool_list_entry = 463, // pool_list_entry - S_464_80 = 464, // $@80 - S_sub_pool4 = 465, // sub_pool4 - S_466_81 = 466, // $@81 - S_pool_params = 467, // pool_params - S_pool_param = 468, // pool_param - S_pool_entry = 469, // pool_entry - S_470_82 = 470, // $@82 - S_user_context = 471, // user_context - S_472_83 = 472, // $@83 - S_comment = 473, // comment - S_474_84 = 474, // $@84 - S_reservations = 475, // reservations - S_476_85 = 476, // $@85 - S_reservations_list = 477, // reservations_list - S_not_empty_reservations_list = 478, // not_empty_reservations_list - S_reservation = 479, // reservation - S_480_86 = 480, // $@86 - S_sub_reservation = 481, // sub_reservation - S_482_87 = 482, // $@87 - S_reservation_params = 483, // reservation_params - S_not_empty_reservation_params = 484, // not_empty_reservation_params - S_reservation_param = 485, // reservation_param - S_next_server = 486, // next_server - S_487_88 = 487, // $@88 - S_server_hostname = 488, // server_hostname - S_489_89 = 489, // $@89 - S_boot_file_name = 490, // boot_file_name - S_491_90 = 491, // $@90 - S_ip_address = 492, // ip_address - S_493_91 = 493, // $@91 - S_ip_addresses = 494, // ip_addresses - S_495_92 = 495, // $@92 - S_duid = 496, // duid - S_497_93 = 497, // $@93 - S_hw_address = 498, // hw_address - S_499_94 = 499, // $@94 - S_client_id_value = 500, // client_id_value - S_501_95 = 501, // $@95 - S_circuit_id_value = 502, // circuit_id_value - S_503_96 = 503, // $@96 - S_flex_id_value = 504, // flex_id_value - S_505_97 = 505, // $@97 - S_hostname = 506, // hostname - S_507_98 = 507, // $@98 - S_reservation_client_classes = 508, // reservation_client_classes - S_509_99 = 509, // $@99 - S_relay = 510, // relay - S_511_100 = 511, // $@100 - S_relay_map = 512, // relay_map - S_client_classes = 513, // client_classes - S_514_101 = 514, // $@101 - S_client_classes_list = 515, // client_classes_list - S_client_class_entry = 516, // client_class_entry - S_517_102 = 517, // $@102 - S_client_class_params = 518, // client_class_params - S_not_empty_client_class_params = 519, // not_empty_client_class_params - S_client_class_param = 520, // client_class_param - S_client_class_name = 521, // client_class_name - S_client_class_test = 522, // client_class_test - S_523_103 = 523, // $@103 - S_only_if_required = 524, // only_if_required - S_dhcp4o6_port = 525, // dhcp4o6_port - S_control_socket = 526, // control_socket - S_527_104 = 527, // $@104 - S_control_socket_params = 528, // control_socket_params - S_control_socket_param = 529, // control_socket_param - S_control_socket_type = 530, // control_socket_type - S_531_105 = 531, // $@105 - S_control_socket_name = 532, // control_socket_name - S_533_106 = 533, // $@106 - S_dhcp_queue_control = 534, // dhcp_queue_control - S_535_107 = 535, // $@107 - S_queue_control_params = 536, // queue_control_params - S_queue_control_param = 537, // queue_control_param - S_enable_queue = 538, // enable_queue - S_queue_type = 539, // queue_type - S_540_108 = 540, // $@108 - S_capacity = 541, // capacity - S_arbitrary_map_entry = 542, // arbitrary_map_entry - S_543_109 = 543, // $@109 - S_dhcp_ddns = 544, // dhcp_ddns - S_545_110 = 545, // $@110 - S_sub_dhcp_ddns = 546, // sub_dhcp_ddns - S_547_111 = 547, // $@111 - S_dhcp_ddns_params = 548, // dhcp_ddns_params - S_dhcp_ddns_param = 549, // dhcp_ddns_param - S_enable_updates = 550, // enable_updates - S_server_ip = 551, // server_ip - S_552_112 = 552, // $@112 - S_server_port = 553, // server_port - S_sender_ip = 554, // sender_ip - S_555_113 = 555, // $@113 - S_sender_port = 556, // sender_port - S_max_queue_size = 557, // max_queue_size - S_ncr_protocol = 558, // ncr_protocol - S_559_114 = 559, // $@114 - S_ncr_protocol_value = 560, // ncr_protocol_value - S_ncr_format = 561, // ncr_format - S_562_115 = 562, // $@115 - S_dep_qualifying_suffix = 563, // dep_qualifying_suffix - S_564_116 = 564, // $@116 - S_dep_override_no_update = 565, // dep_override_no_update - S_dep_override_client_update = 566, // dep_override_client_update - S_dep_replace_client_name = 567, // dep_replace_client_name - S_568_117 = 568, // $@117 - S_dep_generated_prefix = 569, // dep_generated_prefix - S_570_118 = 570, // $@118 - S_dep_hostname_char_set = 571, // dep_hostname_char_set - S_572_119 = 572, // $@119 - S_dep_hostname_char_replacement = 573, // dep_hostname_char_replacement - S_574_120 = 574, // $@120 - S_config_control = 575, // config_control - S_576_121 = 576, // $@121 - S_sub_config_control = 577, // sub_config_control - S_578_122 = 578, // $@122 - S_config_control_params = 579, // config_control_params - S_config_control_param = 580, // config_control_param - S_config_databases = 581, // config_databases - S_582_123 = 582, // $@123 - S_config_fetch_wait_time = 583, // config_fetch_wait_time - S_loggers = 584, // loggers - S_585_124 = 585, // $@124 - S_loggers_entries = 586, // loggers_entries - S_logger_entry = 587, // logger_entry - S_588_125 = 588, // $@125 - S_logger_params = 589, // logger_params - S_logger_param = 590, // logger_param - S_debuglevel = 591, // debuglevel - S_severity = 592, // severity - S_593_126 = 593, // $@126 - S_output_options_list = 594, // output_options_list - S_595_127 = 595, // $@127 - S_output_options_list_content = 596, // output_options_list_content - S_output_entry = 597, // output_entry - S_598_128 = 598, // $@128 - S_output_params_list = 599, // output_params_list - S_output_params = 600, // output_params - S_output = 601, // output - S_602_129 = 602, // $@129 - S_flush = 603, // flush - S_maxsize = 604, // maxsize - S_maxver = 605, // maxver - S_pattern = 606, // pattern - S_607_130 = 607 // $@130 - }; - }; + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; - /// (Internal) symbol kind. - typedef symbol_kind::symbol_kind_type symbol_kind_type; - - /// The number of tokens. - static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + /// Internal symbol number for tokens (subsumed by symbol_number_type). + typedef unsigned char token_number_type; /// A complete symbol. /// - /// Expects its Base type to provide access to the symbol kind - /// via kind (). + /// Expects its Base type to provide access to the symbol type + /// via type_get (). /// /// Provide access to semantic value and location. template @@ -1336,51 +707,13 @@ namespace isc { namespace dhcp { #if 201103L <= YY_CPLUSPLUS /// Move constructor. - basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } + basic_symbol (basic_symbol&& that); #endif /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructors for typed symbols. + /// 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) @@ -1392,7 +725,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) : Base (t) @@ -1406,7 +738,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1420,7 +751,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) : Base (t) @@ -1434,7 +764,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) : Base (t) @@ -1448,7 +777,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1470,45 +798,46 @@ namespace isc { namespace dhcp { } /// Destroy contents, and record that is empty. - void clear () YY_NOEXCEPT + void clear () { // User destructor. - symbol_kind_type yykind = this->kind (); + symbol_number_type yytype = this->type_get (); basic_symbol& yysym = *this; (void) yysym; - switch (yykind) + switch (yytype) { default: break; } - // Value type destructor. -switch (yykind) + // Type destructor. +switch (yytype) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.template destroy< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.template destroy< double > (); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.template destroy< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.template destroy< std::string > (); break; @@ -1519,15 +848,6 @@ switch (yykind) Base::clear (); } - /// The user-facing name of this symbol. - std::string name () const YY_NOEXCEPT - { - return Dhcp4Parser::symbol_name (this->kind ()); - } - - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; - /// Whether empty. bool empty () const YY_NOEXCEPT; @@ -1548,51 +868,46 @@ switch (yykind) }; /// Type access provider for token (enum) based symbols. - struct by_kind + struct by_type { /// Default constructor. - by_kind (); + by_type (); #if 201103L <= YY_CPLUSPLUS /// Move constructor. - by_kind (by_kind&& that); + by_type (by_type&& that); #endif /// Copy constructor. - by_kind (const by_kind& that); + by_type (const by_type& that); - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; + /// The symbol type as needed by the constructor. + typedef token_type kind_type; /// Constructor from (external) token numbers. - by_kind (kind_type t); + by_type (kind_type t); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); - /// Steal the symbol kind from \a that. - void move (by_kind& that); + /// Steal the symbol type from \a that. + void move (by_type& that); /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_kind_type kind () const YY_NOEXCEPT; - - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const YY_NOEXCEPT; - /// The symbol kind. - /// \a S_YYEMPTY when empty. - symbol_kind_type kind_; + /// The symbol type. + /// \a empty_symbol when empty. + /// An int, not token_number_type, to be able to store empty_symbol. + int type; }; - /// Backward compatibility for a private implementation detail (Bison 3.6). - typedef by_kind by_type; - /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol + struct symbol_type : basic_symbol { /// Superclass. - typedef basic_symbol super_type; + typedef basic_symbol super_type; /// Empty symbol. symbol_type () {} @@ -1601,67 +916,74 @@ switch (yykind) #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) -#endif { - PARSER4__ASSERT (tok == token::TOKEN_END - || (token::TOKEN_PARSER4_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL)); + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, bool v, location_type l) : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_BOOLEAN); + } #else symbol_type (int tok, const bool& v, const location_type& l) : super_type(token_type (tok), v, l) -#endif { - PARSER4__ASSERT (tok == token::TOKEN_BOOLEAN); + YY_ASSERT (tok == token::TOKEN_BOOLEAN); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, double v, location_type l) : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_FLOAT); + } #else symbol_type (int tok, const double& v, const location_type& l) : super_type(token_type (tok), v, l) -#endif { - PARSER4__ASSERT (tok == token::TOKEN_FLOAT); + YY_ASSERT (tok == token::TOKEN_FLOAT); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, int64_t v, location_type l) : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_INTEGER); + } #else symbol_type (int tok, const int64_t& v, const location_type& l) : super_type(token_type (tok), v, l) -#endif { - PARSER4__ASSERT (tok == token::TOKEN_INTEGER); + YY_ASSERT (tok == token::TOKEN_INTEGER); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_STRING); + } #else symbol_type (int tok, const std::string& v, const location_type& l) : super_type(token_type (tok), v, l) -#endif { - PARSER4__ASSERT (tok == token::TOKEN_STRING); + YY_ASSERT (tok == token::TOKEN_STRING); } +#endif }; /// Build a parser object. Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg); virtual ~Dhcp4Parser (); -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - Dhcp4Parser (const Dhcp4Parser&) = delete; - /// Non copyable. - Dhcp4Parser& operator= (const Dhcp4Parser&) = delete; -#endif - /// Parse. An alias for parse (). /// \returns 0 iff parsing succeeded. int operator() (); @@ -1692,10 +1014,6 @@ switch (yykind) /// Report a syntax error. void error (const syntax_error& err); - /// The user-facing name of the symbol whose (internal) number is - /// YYSYMBOL. No bounds checking. - static std::string symbol_name (symbol_kind_type yysymbol); - // Implementation of make_symbol for each symbol type. #if 201103L <= YY_CPLUSPLUS static @@ -1712,36 +1030,6 @@ switch (yykind) return symbol_type (token::TOKEN_END, l); } #endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER4_error (location_type l) - { - return symbol_type (token::TOKEN_PARSER4_error, std::move (l)); - } -#else - static - symbol_type - make_PARSER4_error (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER4_error, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER4_UNDEF (location_type l) - { - return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l)); - } -#else - static - symbol_type - make_PARSER4_UNDEF (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER4_UNDEF, l); - } -#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -2492,6 +1780,66 @@ switch (yykind) return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_ON_FAIL (location_type l) + { + return symbol_type (token::TOKEN_ON_FAIL, std::move (l)); + } +#else + static + symbol_type + make_ON_FAIL (const location_type& l) + { + return symbol_type (token::TOKEN_ON_FAIL, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_STOP_RETRY_EXIT (location_type l) + { + return symbol_type (token::TOKEN_STOP_RETRY_EXIT, std::move (l)); + } +#else + static + symbol_type + make_STOP_RETRY_EXIT (const location_type& l) + { + return symbol_type (token::TOKEN_STOP_RETRY_EXIT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SERVE_RETRY_EXIT (location_type l) + { + return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, std::move (l)); + } +#else + static + symbol_type + make_SERVE_RETRY_EXIT (const location_type& l) + { + return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SERVE_RETRY_CONTINUE (location_type l) + { + return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, std::move (l)); + } +#else + static + symbol_type + make_SERVE_RETRY_CONTINUE (const location_type& l) + { + return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -4669,43 +4017,20 @@ switch (yykind) #endif - class context - { - public: - context (const Dhcp4Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } - symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } - const location_type& location () const YY_NOEXCEPT { return yyla_.location; } - - /// Put in YYARG at most YYARGN of the expected tokens, and return the - /// number of tokens stored in YYARG. If YYARG is null, return the - /// number of expected tokens (guaranteed to be less than YYNTOKENS). - int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; - - private: - const Dhcp4Parser& yyparser_; - const symbol_type& yyla_; - }; - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. + /// This class is not copyable. Dhcp4Parser (const Dhcp4Parser&); - /// Non copyable. Dhcp4Parser& operator= (const Dhcp4Parser&); -#endif - /// Stored state numbers (used for stacks). typedef short state_type; - /// The arguments of the error message. - int yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const; - /// Generate an error message. - /// \param yyctx the context in which the error occurred. - virtual std::string yysyntax_error_ (const context& yyctx) const; + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack @@ -4722,17 +4047,10 @@ switch (yykind) static const short yypact_ninf_; static const signed char yytable_ninf_; - /// Convert a scanner token kind \a t to a symbol kind. - /// In theory \a t should be a token_kind_type, but character literals + /// Convert a scanner token number \a t to a symbol number. + /// In theory \a t should be a token_type, but character literals /// are valid, yet not members of the token_type enum. - static symbol_kind_type yytranslate_ (int t); - - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *yystr); - - /// For a symbol, its name in clear. - static const char* const yytname_[]; - + static token_number_type yytranslate_ (int t); // Tables. // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -4768,20 +4086,26 @@ switch (yykind) static const signed char yyr2_[]; + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + + + /// For a symbol, its name in clear. + static const char* const yytname_[]; #if PARSER4_DEBUG // YYRLINE[YYN] -- Source line where rule number YYN was defined. static const short yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r) const; + virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. - virtual void yy_stack_print_ () const; + virtual void yystack_print_ (); /// Debugging level. int yydebug_; /// Debug stream. std::ostream* yycdebug_; - /// \brief Display a symbol kind, value and location. + /// \brief Display a symbol type, value and location. /// \param yyo The output stream. /// \param yysym The symbol. template @@ -4802,7 +4126,7 @@ switch (yykind) /// Default constructor. by_state () YY_NOEXCEPT; - /// The symbol kind as needed by the constructor. + /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. @@ -4814,12 +4138,12 @@ switch (yykind) /// Record that this symbol is empty. void clear () YY_NOEXCEPT; - /// Steal the symbol kind from \a that. + /// Steal the symbol type from \a that. void move (by_state& that); - /// The symbol kind (corresponding to \a state). - /// \a symbol_kind::S_YYEMPTY when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. /// We use the initial state, as it does not have a value. @@ -4858,8 +4182,8 @@ switch (yykind) { public: // Hide our reversed order. - typedef typename S::iterator iterator; - typedef typename S::const_iterator const_iterator; + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; typedef typename S::size_type size_type; typedef typename std::ptrdiff_t index_type; @@ -4867,13 +4191,6 @@ switch (yykind) : seq_ (n) {} -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - stack (const stack&) = delete; - /// Non copyable. - stack& operator= (const stack&) = delete; -#endif - /// Random access. /// /// Index 0 returns the topmost element. @@ -4924,18 +4241,24 @@ switch (yykind) return index_type (seq_.size ()); } + std::ptrdiff_t + ssize () const YY_NOEXCEPT + { + return std::ptrdiff_t (size ()); + } + /// Iterator on top of the stack (going downwards). const_iterator begin () const YY_NOEXCEPT { - return seq_.begin (); + return seq_.rbegin (); } /// Bottom of the stack. const_iterator end () const YY_NOEXCEPT { - return seq_.end (); + return seq_.rend (); } /// Present a slice of the top of a stack. @@ -4959,12 +4282,8 @@ switch (yykind) }; private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. stack (const stack&); - /// Non copyable. stack& operator= (const stack&); -#endif /// The wrapped container. S seq_; }; @@ -4994,28 +4313,33 @@ switch (yykind) /// Pop \a n symbols from the stack. void yypop_ (int n = 1); + /// Some specific tokens. + static const token_number_type yy_error_token_ = 1; + static const token_number_type yy_undef_token_ = 2; + /// Constants. enum { - yylast_ = 1222, ///< Last index in yytable_. - yynnts_ = 410, ///< Number of nonterminal symbols. - yyfinal_ = 28 ///< Termination state number. + yyeof_ = 0, + yylast_ = 1230, ///< Last index in yytable_. + yynnts_ = 413, ///< Number of nonterminal symbols. + yyfinal_ = 28, ///< Termination state number. + yyntokens_ = 202 ///< Number of tokens. }; // User arguments. isc::dhcp::Parser4Context& ctx; - }; inline - Dhcp4Parser::symbol_kind_type + Dhcp4Parser::token_number_type Dhcp4Parser::yytranslate_ (int t) { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. static - const unsigned char + const token_number_type translate_table[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -5063,52 +4387,96 @@ switch (yykind) 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197 + 195, 196, 197, 198, 199, 200, 201 }; - // Last valid token kind. - const int code_max = 452; + const int user_token_number_max_ = 456; if (t <= 0) - return symbol_kind::S_YYEOF; - else if (t <= code_max) - return YY_CAST (symbol_kind_type, translate_table[t]); + return yyeof_; + else if (t <= user_token_number_max_) + return translate_table[t]; else - return symbol_kind::S_YYUNDEF; + return yy_undef_token_; } // basic_symbol. +#if 201103L <= YY_CPLUSPLUS + template + Dhcp4Parser::basic_symbol::basic_symbol (basic_symbol&& that) + : Base (std::move (that)) + , value () + , location (std::move (that.location)) + { + switch (this->type_get ()) + { + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value + value.move< ElementPtr > (std::move (that.value)); + break; + + case 201: // "boolean" + value.move< bool > (std::move (that.value)); + break; + + case 200: // "floating point" + value.move< double > (std::move (that.value)); + break; + + case 199: // "integer" + value.move< int64_t > (std::move (that.value)); + break; + + case 198: // "constant string" + value.move< std::string > (std::move (that.value)); + break; + + default: + break; + } + + } +#endif + template Dhcp4Parser::basic_symbol::basic_symbol (const basic_symbol& that) : Base (that) , value () , location (that.location) { - switch (this->kind ()) + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -5120,18 +4488,11 @@ switch (yykind) - template - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::basic_symbol::type_get () const YY_NOEXCEPT - { - return this->kind (); - } - template bool Dhcp4Parser::basic_symbol::empty () const YY_NOEXCEPT { - return this->kind () == symbol_kind::S_YYEMPTY; + return Base::type_get () == empty_symbol; } template @@ -5139,32 +4500,33 @@ switch (yykind) Dhcp4Parser::basic_symbol::move (basic_symbol& s) { super_type::move (s); - switch (this->kind ()) + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 217: // value + case 221: // map_value + case 262: // ddns_replace_client_name_value + case 287: // socket_type + case 290: // outbound_interface_value + case 312: // db_type + case 341: // on_fail_mode + case 412: // hr_mode + case 567: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 201: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 200: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 199: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 198: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -5175,63 +4537,57 @@ switch (yykind) location = YY_MOVE (s.location); } - // by_kind. + // by_type. inline - Dhcp4Parser::by_kind::by_kind () - : kind_ (symbol_kind::S_YYEMPTY) + Dhcp4Parser::by_type::by_type () + : type (empty_symbol) {} #if 201103L <= YY_CPLUSPLUS inline - Dhcp4Parser::by_kind::by_kind (by_kind&& that) - : kind_ (that.kind_) + Dhcp4Parser::by_type::by_type (by_type&& that) + : type (that.type) { that.clear (); } #endif inline - Dhcp4Parser::by_kind::by_kind (const by_kind& that) - : kind_ (that.kind_) + Dhcp4Parser::by_type::by_type (const by_type& that) + : type (that.type) {} inline - Dhcp4Parser::by_kind::by_kind (token_kind_type t) - : kind_ (yytranslate_ (t)) + Dhcp4Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) {} inline void - Dhcp4Parser::by_kind::clear () YY_NOEXCEPT + Dhcp4Parser::by_type::clear () { - kind_ = symbol_kind::S_YYEMPTY; + type = empty_symbol; } inline void - Dhcp4Parser::by_kind::move (by_kind& that) + Dhcp4Parser::by_type::move (by_type& that) { - kind_ = that.kind_; + type = that.type; that.clear (); } inline - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::by_kind::kind () const YY_NOEXCEPT - { - return kind_; - } - - inline - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::by_kind::type_get () const YY_NOEXCEPT + int + Dhcp4Parser::by_type::type_get () const YY_NOEXCEPT { - return this->kind (); + return type; } #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5235 "dhcp4_parser.h" +#line 4590 "dhcp4_parser.h" + diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 915e6678be..72951b2f6d 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -2,7 +2,7 @@ // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 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 diff --git a/src/bin/dhcp6/dhcp6_messages.cc b/src/bin/dhcp6/dhcp6_messages.cc index 541674cb9a..bc2f9badbe 100644 --- a/src/bin/dhcp6/dhcp6_messages.cc +++ b/src/bin/dhcp6/dhcp6_messages.cc @@ -186,7 +186,7 @@ const char* values[] = { "DHCP6_CONFIG_UPDATE", "updated configuration received: %1", "DHCP6_DB_BACKEND_STARTED", "lease database started (type: %1, name: %2)", "DHCP6_DB_RECONNECT_DISABLED", "database reconnect is disabled: max-reconnect-tries %1, reconnect-wait-time %2", - "DHCP6_DB_RECONNECT_FAILED", "maximum number of database reconnect attempts: %1, has been exhausted without success, server is shutting down!", + "DHCP6_DB_RECONNECT_FAILED", "maximum number of database reconnect attempts: %1, has been exhausted without success", "DHCP6_DB_RECONNECT_LOST_CONNECTION", "database connection lost.", "DHCP6_DB_RECONNECT_NO_DB_CTL", "unexpected error in database reconnect", "DHCP6_DB_RECONNECT_SUCCEEDED", "database connection recovered.", diff --git a/src/bin/dhcp6/dhcp6_messages.mes b/src/bin/dhcp6/dhcp6_messages.mes index 3b37ecf9d4..2ff13966a1 100644 --- a/src/bin/dhcp6/dhcp6_messages.mes +++ b/src/bin/dhcp6/dhcp6_messages.mes @@ -150,15 +150,17 @@ lease and other information. This is an informational message indicating that connectivity to either the lease or host database or both and that automatic reconnect is not enabled. -% DHCP6_DB_RECONNECT_FAILED maximum number of database reconnect attempts: %1, has been exhausted without success, server is shutting down! -This error indicates that the server is shutting down after failing to reconnect to -the lease and/or host database(s) after making the maximum configured number -of reconnect attempts. Loss of connectivity is typically a network or database -server issue. +% DHCP6_DB_RECONNECT_FAILED maximum number of database reconnect attempts: %1, has been exhausted without success +This error indicates that the server failed to reconnect to the lease and/or +host database(s) after making the maximum configured number of reconnect +attempts. This might cause the server to shut down as specified in the +configuration. Loss of connectivity is typically a network or database server +issue. % DHCP6_DB_RECONNECT_LOST_CONNECTION database connection lost. This info message indicates that the connection has been lost and the dhcp -service has been disabled in order to try to recover the connection. +service might have been disabled, as specified in the configuration, in order to +try to recover the connection. % DHCP6_DB_RECONNECT_NO_DB_CTL unexpected error in database reconnect This is an error message indicating a programmatic error that should not